[Top][All Lists]
[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: |
Blue Swirl |
Subject: |
Re: [Qemu-devel] [PATCH] Align file accesses with cache=off (O_DIRECT) |
Date: |
Tue, 6 May 2008 19:42:09 +0300 |
On 5/6/08, Kevin Wolf <address@hidden> wrote:
> 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.
Well, the patch looks OK. But I try to test the patches before I
commit and for this I don't know how. Could you give some example test
cases?