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

Re: [xen-devel][PATCH] PV driver compatibility



On Thu, 2010-01-21 at 23:04 +0000, Ky Srinivasan wrote: 
> 
> >>> On 1/21/2010 at  3:38 PM, in message
> <  1264106300.21707.57.camel@xxxxxxxxxxxxxxxxxxxxx  >, Ian Campbell
> <  Ian.Campbell@xxxxxxxxxx  > wrote: 
> > On Wed, 2010-01-20 at 16:07 +0000, Keir Fraser wrote: 
> >> On 20/01/2010 16:02, "Ky Srinivasan" <  ksrinivasan@xxxxxxxxxx  > wrote:
> >> 
> >> > The attached patch fixes what I believe is a typo and permits guests 
> > running
> >> > the latest PV drivers to correctly interact with older back-ends.
> >> > 
> >> > Signed-off-by: K. Y. Srinivasan <  ksrinivasan@xxxxxxxxxx  >
> >> 
> >> Ian,
> >> 
> >> You introduced the magic port value check, in xen-unstable:19964.
> > 
> > I'm guilty of pretty poor changelogging there, aren't I, I've no idea
> > how the unmodified drivers part of the change relates to the comment :-(
> > 
> >> Can you ack/nack this please?
> > 
> > What vintage of older back-ends are we talking about?

> We shipped sles11 on xen-3.3.1 and this is where we encountered the
> problem - hosting a sles11 sp1 (based on xen-4.0.0)  guest on a sles11
> host. 

OK, so not ancient.

> > 
> > What is their behaviour when reading from that port? Can we test for a
> > specific value instead of anything != MAGIC or is there some other way
> > to identify them? 
> 
> Looking at your documentation for this new protocol, I recall seeing
> that if the magic value was not read, it was ok to silently return to
> be compatible.

Which docs? i386-dm/README.hvm-pv-magic-ioport-disable in the qemu-xen
tree says:
1) When the drivers first come up, they check whether the unplug logic
   is available by reading a two-byte magic number from IO port 0x10.
   These should be 0x49d2.  If the magic number doesn't match, the
   drivers don't do anything.

I take that to mean the drivers should not load if the magic value
doesn't match.

> > Without some sort of unplugging mechanism we run the risk of having both
> > PV and Emulated disk controllers active, accessing the same virtual disk
> > and with drivers loaded in the guest, which is potentially very
> > dangerous for the user's data. Did those older backends implement some
> > alternative unplugging mechanism we should be trying?
> We have had a mechanism for disabling the emulation when the PV
> drivers are loaded for some time now.

What is the mechanism? Why doesn't your patch add support for that
mechanism instead of just nobbling the current one?

> > The whole point of this magic check is to ensure we are running on a
> > backend which is new enough to do the unplugging in a safe way, so I
> > think failing to switch to PV and sticking with emulated on such
> > platforms the safe approach.
> 
> This breaks the compatibility with systems that have already been
> shipped in the sense we cannot run the guests with PV drivers. The
> proposed patch fixes the problem.

The guest still work though, right? Just with emulated drivers.

If you add a module option override instead of just skipping the safety
latch which the current mechanism implements then this patch would be OK
and it would be a simple guest tweak to switch PV drivers back on if you
have arranged out-of-band for the emulated devices to be unplugged.

Ian.


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.