# Limitations

## Read/Write Speed Limitations

DMA devices can come in a wide range of speeds. For DMA cheating, we need high speed, low latency, and very good stability. Sadly, most cards on the market don't provide us with all three of these factors.&#x20;

You can expect about 1000 r/w TLPs per second. This is a really tight restriction for cheating, so we need to be smart about our read operations. If we can read 4096 bytes in one read operation, and from that get multiple pointers or values, that is more efficient than reading each value or pointer on its own.&#x20;

{% hint style="info" %}
Ulf Frisk discusses latency and speed on [this](https://github.com/ufrisk/pcileech/issues/56) git issue.
{% endhint %}

### See also:

{% content-ref url="/pages/-MfS3ZdYn0dkSFbuXUJj" %}
[Broken mention](broken://pages/-MfS3ZdYn0dkSFbuXUJj)
{% endcontent-ref %}

## IOMMU Limitation

The [IOMMU ](https://en.wikipedia.org/wiki/Input%E2%80%93output_memory_management_unit)is a middle man between our DMA device and the physical memory. In order for our DMA cards to work, this feature needs to be turned off.&#x20;

{% hint style="info" %}
Anticheats do not require IOMMU to be enabled yet.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://dma.lystic.dev/fpga-devices/limitations.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
