Hi All, I am having trouble understanding DMA window and actual amount of addressable DMA memory. I hope someone explains me. Let me put my understanding and doubts here: Let's say I am writing code for an ethernet device driver in the virtualisation(hypervisor) environment. Now, if the ethernet adapter requires certain amount of DMA memory, I need to allocate heap memory and dma map it and provide to the adapter. >From the hardware perspective, we have a 64GB DMA window. I am having trouble understanding this value. Does it mean i can allocate 64GB of RAM(Heap memory) and dma map it? As i understand there might be a table that translates bus address to physical(RAM) addresses. Each entry of such table points to a 4KB page. If the size of each entry is 8 bytes and there are 16M such entries( 16M * 4K = 64GB DMA window), the size of the table comes to around 128M Now do I have 64GB DMA memory or 128M DMA memory? I want to know what is the max amount of memory that I can allocate(heap), dma map and provide it to the adapter. I will be really thankful in all the help that I can get!! Thanks so much Best Regards, Marc -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html