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

RE: [RFC] Design changes for bidirectional interface compatibility.


  • To: "win-pv-devel@xxxxxxxxxxxxxxxxxxxx" <win-pv-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Martin Harvey <martin.harvey@xxxxxxxxxx>
  • Date: Tue, 30 Aug 2022 09:39:31 +0000
  • Accept-language: en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=/7MHMYeLWy7/6KyZgN7u5xFHY9OSeaJrpP8z7OqrjzY=; b=GZGDct/P6HZqKnxeCK5XLJUcvFSXe/mZovejxaobpektQohW3E2UzxnpoKC0FGPwIYUrk4kAxmbA0qpUTW4/xsH8lWpDf/exw4XqH7l0sR96qdT0PWutXMxIU/UvmabaocAoF54J3Suxs1iIrq7X/9FmxhAYu6KB2kmSib/c2/jOl+FZWC7oi+UD3JcbtecRQzrWzwGe5lYTjqqdyZjBjpwazfgUeFlTi32JbqLIILmRYGmCOWIRYOgGesy5aarRRMdGPzsp+3Z3pM0FVftz7oz3hdjrsJAdnhaRtErXsDRgc6XmEx+O6BbTxQ9bhvwrz10A1B33YHxruv8I3c8iCw==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Si9ut73mCPqEFe2pES+LaQ4uGt2XdMsty6N3XJ9mv2noWLgZb7Q6cPJ8bsAGu3gpUlA64JnwS+obPSEqdSwbuqtWmBYZyumDpwpdXFNMqQQlt9rtzWvD2/Sp7d19JugOm6KCz03sRwyB0mbf+Oob+pLURLM3IjSvupphBLBHWvebudfRfdJijSUYV9yepL9Yk+cH/LmWoBq4a36CbDbdMzxxiY7/oRs5Qs2aUcuJCPPenpkz02T3Nie5+Cv1uidQG6eH4HvL7LS5S5iIfl89QtBeHg2vryho25eD0dWwc+OHsfDaS6Q89Z4PWOUtZA6xv17Xmux+c0vP8sgnzVMh8g==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Delivery-date: Tue, 30 Aug 2022 09:39:48 +0000
  • Ironport-data: A9a23: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
  • List-id: Developer list for the Windows PV Drivers subproject <win-pv-devel.lists.xenproject.org>
  • Thread-index: Adi3zfZIeioY1WCfTXGZlPfbnnICHQBickCAAABL/4AAvn1/cA==
  • Thread-topic: [RFC] Design changes for bidirectional interface compatibility.


-----Original Message-----
From: win-pv-devel <win-pv-devel-bounces@xxxxxxxxxxxxxxxxxxxx> On Behalf Of 
Paul Durrant

> Can you send it to the list too? I don't see a problem statement in 
> your doc. What precisely is the problem with the current mechanism? 

Problem statement, and some of the issues we are seeing mentioned here:

https://citrix.sharefile.com/d-sa7ef342dad7b46c1a06f77436f282e64


> The currently implemented use of PDO names to match available 
> interface versions was very deliberately chosen to avoid the need for 
> any child driver to maintain compatibility with an older parent.

Prima facie, This seems to be a good idea. However, the point of device ID's is 
to indicate that the H/W (or virtualised H/W, or other discrete piece of kernel 
functionality) is fundamentally the same.

> As 
> long as the rule is followed (i.e a new interface combo in the parent 
> requires that the PDO rev is bumped) there really should not be any 
> compatibility problem to fix.

You're correct that there is not currently a compatibility problem at the 
moment, it's just that by bumping revisions, and changing the H/W ID's, windows 
is not able to determine that the device that's been added to the system is 
fundamentally the same as the previous device that was in the system, just with 
some tweaks to the kernel software.

We have two fundamental problems (as elaborated in the doc above).

- Net connection configuration settings get lost when we bump the rev ID.
- We would like windows update to be able to update drivers in pretty much any 
order as it find them.

> I guess I should elaborate by saying *if* a new child driver is installed in 
> system that requires an interface
> that the parent can't provide (because it is older) then the PDO naming 
> should mean that it does not load
> (yet), and the older version of the child driver currently running in the 
> system continues to be used. 

Well, that's one way of solving the problem. The whole point of compatibility 
code is that it should be perfectly possible to get the newer driver to load in 
some "reduced functionality" mode.

This does not exclude the possibility that for interface changes which are 
bugfixes where compatibility is not possible (or reasonable), of course we can 
still bump the RevID in such cases.

My document contains a review of all the interface chances for the interfaces 
currently supported between drivers, and they are not that many or large (in 
the grand scheme of things).

I should add from a "management" perspective, we now have more people in the 
trenches here, including a couple of new developers and some excellent 
dedicated test engineers, and if we need a 2k more lines of code, and a cpl of 
guys running upgrade / downgrade / siedegrade regression tests (possibly with 
results posted to this list), then that's not a problem for us.

If you wanted us to run internally with the changes for a couple of months as 
well, just to be quite sure things will work, then that's possible too.

MH.



 


Rackspace

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