|
From: | Avi Kivity |
Subject: | Re: [Qemu-devel] [PATCH] honor IDE_DMA_BUF_SECTORS |
Date: | Thu, 26 Mar 2009 12:57:36 +0200 |
User-agent: | Thunderbird 2.0.0.21 (X11/20090320) |
Stefano Stabellini wrote:
Unfortunately that is not really helpful: after the split done by cpu_physical_memory_map the iovector is converted in a buffer in bdrv_aio_rw_vector and then the full length of the buffer is passed on to the bdrv_aio_write\read for the dma operation. I need a way to set a maximum limit for the total number of sectors in the dma operation, much like blk_queue_max_phys_segments in the kernel. This could also be useful to make sure that we don't allocate bounce buffers bigger than a predetermined limit.
If cpu_physical_memory_map() returns NULL, then dma-helpers.c will stop collecting sg entries and submit the I/O. Tuning that will control how vectored requests are submitted.
If you problem is specifically with the bdrv_aio_rw_vector bounce buffer, then note that this is a temporary measure until vectored aio is in place, through preadv/pwritev and/or linux-aio IO_CMD_PREADV. You should either convert to that when it is merged, or implement request splitting in bdrv_aio_rw_vector.
Can you explain your problem in more detail? -- error compiling committee.c: too many arguments to function
[Prev in Thread] | Current Thread | [Next in Thread] |