Stefan Hajnoczi wrote: > On Wed, May 12, 2010 at 10:42 AM, Jamie Lokier <ja...@shareable.org> wrote: > > Stefan Hajnoczi wrote: > >> Why add a nop AIO operation instead of setting > >> BlockDriverState->enable_write_cache to zero? In that case no write > >> cache would be reported to the guest (just like cache=writethrough). > > > > Hmm. If the guest sees write cache absent, that prevents changing the > > cache policy on the host later (from not flushing to flushing), which > > you might want to do after an OS install has finished and booted up. > > Right. There are 3 cases from the guest perspective: > > 1. Disable write cache or no write cache. Flushing not needed. > 2. Disable flushing but leave write cache enabled. > 3. Enable write cache and use flushing. > > When we don't report a write cache at all, the guest is always stuck at 1. > > If you're going to do this for installs and other temporary workloads, > then enabling the write cache again isn't an issue. After installing > successfully, restart the guest with a sane cache= mode.
That only works if you're happy to reboot the guest after the process finishes. I guess that is usually fine, but it is a restriction. Is it possible via QMP to request that the guest is paused when it next reboots, so that QMP operations to change the cache= mode can be done (as it's not safe to change the guest-visible disk write cache availability when it's running, and probably a request to do so should be denied). -- Jamie