On 09/12/2010 05:42 AM, Avi Kivity wrote:
 On 09/11/2010 05:04 PM, Anthony Liguori wrote:
This fixes a couple nasty problems relating to live migration.

1) When dealing with shared storage with weak coherence (i.e. NFS), even if we re-read, we may end up with undesired caching. By delaying any reads until we absolutely have to, we decrease the likelihood of any undesirable
    caching.

2) When dealing with copy-on-read, the local storage acts as a cache. We need
    to make sure to avoid any reads to avoid polluting the local cache.

+
  static void ide_identify(IDEState *s)
  {
      uint16_t *p;
@@ -105,6 +132,8 @@ static void ide_identify(IDEState *s)
      return;
      }

+    guess_geometry(s);
+

This can cause a disk read, no?  Shouldn't it be made asynchronous?

Yes, it should. I'm not sure there's an easy way to make it asynchronous though not because of the block layer but because of how these functions are called.


Or just move it to just before the guest starts?

We don't really have a notion of "guest starts" today although maybe we should.

Regards,

Anthony Liguori


Reply via email to