# 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="broken-reference" %}
[Broken link](https://dma.lystic.dev/fpga-devices/broken-reference)
{% 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 %}
