On 01/12/2010 01:47 PM, Andreas Dilger wrote:
On 2010-01-12, at 08:30, Michal Novotny wrote:
On 01/12/2010 01:23 PM, Christoph Hellwig wrote:
So to get things staigt: you're using e2fsprogs to manipulate a life
filesystem and thing using O_DIRECT saves your ass? I think you
need to
rething your model of operation fundamentally in that case.
Not really, pygrub doesn't do any manipulation with file system and
also, it's not working on a life file system. It's called before the
guest boots up to read information about grub.conf/initrd and kernel
for PV guest and after this is read and selected in pygrub then the
guest is booted using the kernel and initrd extracted from the image
(after which the file is closed). Once again, nothing uses write
support and it was added just to make it use O_DIRECT for both read
and write operations but only pygrub uses only read support and
O_DIRECT passed here is the only way to make it use non-cached data.
Michal, I think the thing that is confusing everyone is that if you
are not accessing a live filesystem, and you are not doing the writes
yourself, then why is it bad to read cached data? How is it that the
cached data becomes stale if pygrub isn't modifying it, and there is
nothing else mounting the filesystem?
Hi Andreas,
it really is bad because the host have data about grub.conf, kernel and
initrd cached but if you run the guest, update kernel or grub.conf etc.,
you need to see the changes here to boot the new/updated kernel now. Not
the old, cached one. This is why it is bad to read cached data. Pygrub
isn't modifying it but the guest can modify the data itself...
Thanks,
Michal
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html