[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v2 0/7] Implement forced unplug and forced activation
The goal of these two features is to simplify driver servicing and avoid requiring storing driver state in Registry. Forced unplug, as name implies, forcefully unplugs emulated devices when a driver is present, rather than when it's active. It defines a Registry key at CurrentControlSet\XEN\ForceUnplug. Drivers can opt into forced unplug by creating an appropriate value (DISKS/NICS) in this key. Forced activation is the companion to forced unplug. It aims to make activation of Xenbus FDOs deterministic and stateless, using a precedence mapping based on device IDs, prioritizing the vendor device over the generic ones. This avoids situations where the wrong FDO is activated, which will prevent Windows Update from working. With forced activation, Xenfilt is now installed via INF on top of the current installation routines. This means PV drivers can be injected offline without needing another reboot to be reconfigured. To avoid affecting older drivers, the two features are conditioned behind new build variables FORCE_UNPLUG and FORCE_ACTIVATE. The following scenarios have been successfully tested, both requiring only one reboot: * Offline driver installation via DISM * Toggling vendor device Tu Dinh (7): Add forced unplug support xenfilt: Add Xenbus device precedence mechanism Add EMULATED v3 xenbus: Use nonpaged pool in FdoQueryId Use EMULATED v3 to force activate Xenbus FDOs Enable Xenbus precedence Install Xenfilt with INF AddReg include/emulated_interface.h | 52 ++++++++++++--- include/revision.h | 3 +- scripts/genfiles.ps1 | 2 + src/xen/driver.c | 79 ++++++++++++++++++----- src/xen/driver.h | 5 ++ src/xen/unplug.c | 13 +++- src/xenbus.inf | 11 ++++ src/xenbus/fdo.c | 122 +++++++++++++++++++++++++---------- src/xenfilt/driver.c | 51 ++++++++++++++- src/xenfilt/driver.h | 7 ++ src/xenfilt/emulated.c | 62 ++++++++++++++++-- src/xenfilt/emulated.h | 1 + src/xenfilt/fdo.c | 25 ++++++- src/xenfilt/pdo.c | 80 +++++++++++++++++++---- src/xenfilt/pdo.h | 10 ++- 15 files changed, 435 insertions(+), 88 deletions(-) -- 2.50.1.windows.1 Ngoc Tu Dinh | Vates XCP-ng Developer XCP-ng & Xen Orchestra - Vates solutions web: https://vates.tech
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |