|
From: | Avi Kivity |
Subject: | Re: [Qemu-devel] [PATCH 4/4] Reallocate dma buffers in read/write path if needed |
Date: | Sun, 05 Oct 2008 07:29:17 +0200 |
User-agent: | Thunderbird 2.0.0.16 (X11/20080723) |
Ryan Harper wrote:
I'd rather avoid any additional accounting overhead of a pool.
The accounting overhead is noise compared to copying hundreds of megabytes per second.
If 4MBis a reasonable limit, lets make that the new max.
The real max is the dma buffer size multiplied by the number of concurrent requests. With a queue depth of 64, the buffers become 4 MB * 64 = 256 MB. That can double the size of a small guest, and using just one disk, too.
I can do some testing to see where we drop off on performance improvements. We'd have a default buffer size (smaller than the previous 64, and now 128k buf size) that is used when we allocate scsi requests; scanning through send_command() provides a good idea of other scsi command buf usage; and on reads and writes, keep the capping logic we've had all along, but bump the max size up to something like 4MB -- or whatever tests resultsshow as being ideal.
We know what the ideal is: dropping the scatter/gather buffer completely. -- I have a truly marvellous patch that fixes the bug which this signature is too narrow to contain.
[Prev in Thread] | Current Thread | [Next in Thread] |