qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] Align file accesses with cache=off (O_DIRECT)


From: Kevin Wolf
Subject: Re: [Qemu-devel] [PATCH] Align file accesses with cache=off (O_DIRECT)
Date: Tue, 06 May 2008 10:44:33 +0200
User-agent: Thunderbird 2.0.0.12 (X11/20071114)

Kevin Wolf schrieb:
Am Donnerstag, 1. Mai 2008 16:35:51 schrieb Blue Swirl:
On 5/1/08, Kevin Wolf <address@hidden> wrote:
Am Mittwoch, 30. April 2008 16:30:27 schrieb Blue Swirl:
Maybe the alignment could be handled like AIO and synchronous IO

 > emulation layers are added in bdrv_register, but at open stage?

You mean to preserve the original pread if the file is opened without
O_DIRECT and replace it by the emulation function only if O_DIRECT is
really used?
Right.

Maybe it's slightly faster that way and it would be closer to how
other block emulations are handled. It's just an idea.

Maybe I'm missing something but AFAIK this pread pointer exists once for each block driver, i.e. every raw image uses the original pread or every raw image uses the emulating one. The difference between the O_DIRECT case and the AIO/sync emulation is that AIO/sync is the same for all devices of one driver while O_DIRECT can differ between images of the same driver.

So you would need to have one common pread which in turn calls a function pointer stored in the BlockDriverState. I doubt that this is much cheaper than an if in pread. And it wouldn't get too close to other emulations anyway because of the driver/device difference.

Should I change the patch now (even if I think it doesn't help anything) or will you apply the patch as it is? It is quite frustrating to get no answer at all.

Kevin




reply via email to

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