qemu-devel
[Top][All Lists]
Advanced

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

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


From: Andrea Arcangeli
Subject: Re: [Qemu-devel] Re: [PATCH][v2] Align file accesses with cache=off (O_DIRECT)
Date: Wed, 21 May 2008 20:08:52 +0200

On Wed, May 21, 2008 at 12:53:52PM -0500, Anthony Liguori wrote:
> MAP_SHARED cannot be done transparently to the guest, that's the motivating 
> reason behind MAP_PRIVATE.

Could you elaborate on what means 'done transparently'? The only
difference is for writes. When guest writes MAP_PRIVATE will
copy-on-write. How can it be good if guest generates many
copy-on-writes and eliminates the cache from the mapping and replaces
it with anonymous memory?

I can't see how MAP_PRIVATE could replace O_DIRECT, there's no way to
write anything to disk with MAP_PRIVATE, msync on a MAP_PRIVATE is a
pure overhead noop for example, only MAP_SHARED has a chance to modify
any bit present on disk and it'll require msync at least every time
the host OS waits for I/O completion and assumes the journal
metadata/data is written on disk.

The real good thing I see of MAP_PRIVATE/MAP_SHARED vs O_DIRECT, is
that the guest would boot the second time without triggering reads
from disks. But after guest is booted, the runtime of the guest is
likely going to be better with O_DIRECT, the guest has its own
filesystem caches in the guest memory, replicating them shouldn't pay
off significantly for the guest runtime even on a laptop, and it
provides disavantages in the host by polluting host caches already
existing in the guest, and it'll decrease fairness of the system,
without mentioning the need of msync for journaling. So besides the
initial boot time I don't see many advantages for
MAP_PRIVATE/MAP_SHARED at least unless you're running msdos ;).




reply via email to

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