[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.
|