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

Re: [libvirt] PATCH: Disable QEMU drive caching



Daniel P. Berrange wrote:
On Wed, Oct 08, 2008 at 11:06:27AM -0500, Anthony Liguori wrote:
Sorry, it was mistakenly private - fixed now.
Xen does use O_DIRECT for paravirt driver case  - blktap is using the combo
of AIO+O_DIRECT.

You have to use O_DIRECT with linux-aio. And blktap is well known to have terrible performance. Most serious users use blkback/blkfront and blkback does not avoid the host page cache. It maintains data integrity by passing through barriers from the guest to the host. You can approximate this in userspace by using fdatasync.

The issue the bug addresses, iozone performs better than native, can be addressed in the following way:

1) For IDE, you have to disable write-caching in the guest. This should force an fdatasync in the host. 2) For virtio-blk, we need to implement barrier support. This is what blkfront/blkback do. 3) For SCSI, we should support ordered queuing which would result in an fdatasync when barriers are injected.

This would result in write performance being what was expected in the guest while still letting the host coalesce IO requests, perform scheduling with other guests (while respecting each guest's own ordering requirements).

Regards,

Anthony LIguori

QEMU code is only used for the IDE emulation case which isn't interesting from a performance POV.

Daniel


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