qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC 1/2] pci-dma-api-v1


From: Anthony Liguori
Subject: Re: [Qemu-devel] [RFC 1/2] pci-dma-api-v1
Date: Sun, 30 Nov 2008 16:33:22 -0600
User-agent: Thunderbird 2.0.0.17 (X11/20080925)

Blue Swirl wrote:
On 11/27/08, Andrea Arcangeli <address@hidden> wrote:
Hello everyone,

 Once we finish fixing storage performance with a real
 bdrv_aio_readv/writev (now a blocker issue), a pci_dma_single can be
 added for zero copy networking (one NIC per VM, or VMDq, IOV
 etc..). The DMA API should allow for that too.

The previous similar attempt by Anthony for generic DMA using vectored
IO was abandoned because the malloc/free overhead was more than the
performance gain. Have you made any performance measurements? How does
this version compare to the previous ones?

No, I never measured any malloc/free overhead. I think people are more concerned with that than warranted. A good malloc implementation will usually have O(1) complexity for similar sized allocs so malloc/free should not be the bottleneck.

My attempt was abandoned because the API is complex and at the time, zero copy wasn't the bottle neck we needed to overcome. Fortunately, enough has progressed since then that it is now the bottle neck :-).

Regards,

Anthony Liguori

I think the pci_ prefix can be removed, there is little PCI specific.

For Sparc32 IOMMU (and probably other IOMMUS), it should be possible
to register a function used in place of  cpu_physical_memory_rw,
c_p_m_can_dma etc. The goal is that it should be possible to stack the
DMA resolvers (think of devices behind a number of buses).







reply via email to

[Prev in Thread] Current Thread [Next in Thread]