* [PATCH] mshv: add vmbus dependency
@ 2026-05-20 7:40 Arnd Bergmann
2026-05-20 13:46 ` Michael Kelley
2026-05-20 17:15 ` Jork Loeser
0 siblings, 2 replies; 6+ messages in thread
From: Arnd Bergmann @ 2026-05-20 7:40 UTC (permalink / raw)
To: K. Y. Srinivasan, Haiyang Zhang, Wei Liu, Dexuan Cui, Long Li,
Anirudh Rayabharam (Microsoft), Jork Loeser,
Stanislav Kinsburskii
Cc: Arnd Bergmann, linux-hyperv, linux-kernel
From: Arnd Bergmann <arnd@arndb.de>
When the vmbus driver is not part of the kernel, the mvhv_root
driver now fails to link:
ERROR: modpost: "hv_vmbus_exists" [drivers/hv/mshv_root.ko] undefined!
Avoid this by adding an explicit Kconfig dependency. Note that
stubbing out the hv_vmbus_exists() based on configuration would
also work for some cases, but not with MSHV_ROOT=y and HYPERV_VMBUS=m.
Fixes: f1a9e67c1138 ("mshv: limit SynIC management to MSHV-owned resources")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
drivers/hv/Kconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/hv/Kconfig b/drivers/hv/Kconfig
index 52af086fdeb2..21193b571a80 100644
--- a/drivers/hv/Kconfig
+++ b/drivers/hv/Kconfig
@@ -75,6 +75,7 @@ config MSHV_ROOT
# e.g. When withdrawing memory, the hypervisor gives back 4k pages in
# no particular order, making it impossible to reassemble larger pages
depends on PAGE_SIZE_4KB
+ depends on HYPERV_VMBUS
select EVENTFD
select VIRT_XFER_TO_GUEST_WORK
select HMM_MIRROR
--
2.39.5
^ permalink raw reply related [flat|nested] 6+ messages in thread* RE: [PATCH] mshv: add vmbus dependency 2026-05-20 7:40 [PATCH] mshv: add vmbus dependency Arnd Bergmann @ 2026-05-20 13:46 ` Michael Kelley 2026-05-20 13:51 ` Arnd Bergmann 2026-05-20 17:15 ` Jork Loeser 1 sibling, 1 reply; 6+ messages in thread From: Michael Kelley @ 2026-05-20 13:46 UTC (permalink / raw) To: Arnd Bergmann, K. Y. Srinivasan, Haiyang Zhang, Wei Liu, Dexuan Cui, Long Li, Anirudh Rayabharam (Microsoft), Jork Loeser, Stanislav Kinsburskii Cc: Arnd Bergmann, linux-hyperv@vger.kernel.org, linux-kernel@vger.kernel.org From: Arnd Bergmann <arnd@kernel.org> Sent: Wednesday, May 20, 2026 12:40 AM > > When the vmbus driver is not part of the kernel, the mvhv_root > driver now fails to link: > > ERROR: modpost: "hv_vmbus_exists" [drivers/hv/mshv_root.ko] undefined! > > Avoid this by adding an explicit Kconfig dependency. Note that > stubbing out the hv_vmbus_exists() based on configuration would > also work for some cases, but not with MSHV_ROOT=y and HYPERV_VMBUS=m. Conceptually, the MSHV root code should not have a dependency on VMBus. The "does VMBus exist?" question should handled differently by setting up a boolean in the core Hyper-V code that defaults to "false". If the VMBus driver loads, it would set the boolean to "true". MSHV root code would query the boolean. Michael > > Fixes: f1a9e67c1138 ("mshv: limit SynIC management to MSHV-owned resources") > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > --- > drivers/hv/Kconfig | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/hv/Kconfig b/drivers/hv/Kconfig > index 52af086fdeb2..21193b571a80 100644 > --- a/drivers/hv/Kconfig > +++ b/drivers/hv/Kconfig > @@ -75,6 +75,7 @@ config MSHV_ROOT > # e.g. When withdrawing memory, the hypervisor gives back 4k pages in > # no particular order, making it impossible to reassemble larger pages > depends on PAGE_SIZE_4KB > + depends on HYPERV_VMBUS > select EVENTFD > select VIRT_XFER_TO_GUEST_WORK > select HMM_MIRROR > -- > 2.39.5 > ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] mshv: add vmbus dependency 2026-05-20 13:46 ` Michael Kelley @ 2026-05-20 13:51 ` Arnd Bergmann 2026-05-20 17:13 ` Jork Loeser 0 siblings, 1 reply; 6+ messages in thread From: Arnd Bergmann @ 2026-05-20 13:51 UTC (permalink / raw) To: Michael Kelley, Arnd Bergmann, K. Y. Srinivasan, Haiyang Zhang, Wei Liu, Dexuan Cui, Long Li, Anirudh Rayabharam (Microsoft), Jork Loeser, Stanislav Kinsburskii Cc: linux-hyperv@vger.kernel.org, linux-kernel@vger.kernel.org On Wed, May 20, 2026, at 15:46, Michael Kelley wrote: > From: Arnd Bergmann <arnd@kernel.org> Sent: Wednesday, May 20, 2026 12:40 AM >> >> When the vmbus driver is not part of the kernel, the mvhv_root >> driver now fails to link: >> >> ERROR: modpost: "hv_vmbus_exists" [drivers/hv/mshv_root.ko] undefined! >> >> Avoid this by adding an explicit Kconfig dependency. Note that >> stubbing out the hv_vmbus_exists() based on configuration would >> also work for some cases, but not with MSHV_ROOT=y and HYPERV_VMBUS=m. > > Conceptually, the MSHV root code should not have a dependency on > VMBus. The "does VMBus exist?" question should handled differently > by setting up a boolean in the core Hyper-V code that defaults to "false". > If the VMBus driver loads, it would set the boolean to "true". MSHV > root code would query the boolean. That makes sense to me, but it's outside of my area for a drive-by build fix. Please treat my patch as a 'Reported-by' then, I expect this can easily be addressed by Jork or someone else in the hyperv team. Arnd ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] mshv: add vmbus dependency 2026-05-20 13:51 ` Arnd Bergmann @ 2026-05-20 17:13 ` Jork Loeser 0 siblings, 0 replies; 6+ messages in thread From: Jork Loeser @ 2026-05-20 17:13 UTC (permalink / raw) To: Arnd Bergmann Cc: Michael Kelley, Arnd Bergmann, K. Y. Srinivasan, Haiyang Zhang, Wei Liu, Dexuan Cui, Long Li, Anirudh Rayabharam (Microsoft), Stanislav Kinsburskii, linux-hyperv@vger.kernel.org, linux-kernel@vger.kernel.org On Wed, 20 May 2026, Arnd Bergmann wrote: > On Wed, May 20, 2026, at 15:46, Michael Kelley wrote: >> From: Arnd Bergmann <arnd@kernel.org> Sent: Wednesday, May 20, 2026 12:40 AM >>> >>> When the vmbus driver is not part of the kernel, the mvhv_root >>> driver now fails to link: >>> >>> ERROR: modpost: "hv_vmbus_exists" [drivers/hv/mshv_root.ko] undefined! >>> >>> Avoid this by adding an explicit Kconfig dependency. Note that >>> stubbing out the hv_vmbus_exists() based on configuration would >>> also work for some cases, but not with MSHV_ROOT=y and HYPERV_VMBUS=m. >> >> Conceptually, the MSHV root code should not have a dependency on >> VMBus. The "does VMBus exist?" question should handled differently >> by setting up a boolean in the core Hyper-V code that defaults to "false". >> If the VMBus driver loads, it would set the boolean to "true". MSHV >> root code would query the boolean. > > That makes sense to me, but it's outside of my area for a drive-by > build fix. Please treat my patch as a 'Reported-by' then, I expect > this can easily be addressed by Jork or someone else in the > hyperv team. Apologies for letting this linger - we were looking for the best fix internally. While Michael is correct that conceptually the dependency is not ideal, I think it's the right fix *for now*. Yes, this would not allow MSHV root without VMBUS, which is relevant for MSHV root only, which misses a few other components. For L1VH it is the right fix that also enforces module load order. Ultimately (and this is planned), we need a SYNIC driver, and the hv_vmbus_exists() will vanish for this usecase. It is a hack even now. Best, Jork ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] mshv: add vmbus dependency 2026-05-20 7:40 [PATCH] mshv: add vmbus dependency Arnd Bergmann 2026-05-20 13:46 ` Michael Kelley @ 2026-05-20 17:15 ` Jork Loeser 2026-05-21 15:56 ` Michael Kelley 1 sibling, 1 reply; 6+ messages in thread From: Jork Loeser @ 2026-05-20 17:15 UTC (permalink / raw) To: Arnd Bergmann Cc: K. Y. Srinivasan, Haiyang Zhang, Wei Liu, Dexuan Cui, Long Li, Anirudh Rayabharam (Microsoft), Stanislav Kinsburskii, Arnd Bergmann, linux-hyperv, linux-kernel On Wed, 20 May 2026, Arnd Bergmann wrote: > From: Arnd Bergmann <arnd@arndb.de> > > When the vmbus driver is not part of the kernel, the mvhv_root > driver now fails to link: > > ERROR: modpost: "hv_vmbus_exists" [drivers/hv/mshv_root.ko] undefined! > > Avoid this by adding an explicit Kconfig dependency. Note that > stubbing out the hv_vmbus_exists() based on configuration would > also work for some cases, but not with MSHV_ROOT=y and HYPERV_VMBUS=m. > > Fixes: f1a9e67c1138 ("mshv: limit SynIC management to MSHV-owned resources") > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > --- > drivers/hv/Kconfig | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/hv/Kconfig b/drivers/hv/Kconfig > index 52af086fdeb2..21193b571a80 100644 > --- a/drivers/hv/Kconfig > +++ b/drivers/hv/Kconfig > @@ -75,6 +75,7 @@ config MSHV_ROOT > # e.g. When withdrawing memory, the hypervisor gives back 4k pages in > # no particular order, making it impossible to reassemble larger pages > depends on PAGE_SIZE_4KB > + depends on HYPERV_VMBUS > select EVENTFD > select VIRT_XFER_TO_GUEST_WORK > select HMM_MIRROR > -- > 2.39.5 > Yes, this is the right short-term fix. We will need to solve the root case (no VMBUS required) with a separate SYNIC driver abstraction. Reviewed-by: Jork Loeser <jloeser@linux.microsoft.com> Thank you! Jork ^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: [PATCH] mshv: add vmbus dependency 2026-05-20 17:15 ` Jork Loeser @ 2026-05-21 15:56 ` Michael Kelley 0 siblings, 0 replies; 6+ messages in thread From: Michael Kelley @ 2026-05-21 15:56 UTC (permalink / raw) To: Jork Loeser, Arnd Bergmann Cc: K. Y. Srinivasan, Haiyang Zhang, Wei Liu, Dexuan Cui, Long Li, Anirudh Rayabharam (Microsoft), Stanislav Kinsburskii, Arnd Bergmann, linux-hyperv@vger.kernel.org, linux-kernel@vger.kernel.org From: Jork Loeser <jloeser@linux.microsoft.com> Sent: Wednesday, May 20, 2026 10:16 AM > > On Wed, 20 May 2026, Arnd Bergmann wrote: > > > From: Arnd Bergmann <arnd@arndb.de> > > > > When the vmbus driver is not part of the kernel, the mvhv_root > > driver now fails to link: > > > > ERROR: modpost: "hv_vmbus_exists" [drivers/hv/mshv_root.ko] undefined! > > > > Avoid this by adding an explicit Kconfig dependency. Note that > > stubbing out the hv_vmbus_exists() based on configuration would > > also work for some cases, but not with MSHV_ROOT=y and HYPERV_VMBUS=m. > > > > Fixes: f1a9e67c1138 ("mshv: limit SynIC management to MSHV-owned resources") > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > > --- > > drivers/hv/Kconfig | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/drivers/hv/Kconfig b/drivers/hv/Kconfig > > index 52af086fdeb2..21193b571a80 100644 > > --- a/drivers/hv/Kconfig > > +++ b/drivers/hv/Kconfig > > @@ -75,6 +75,7 @@ config MSHV_ROOT > > # e.g. When withdrawing memory, the hypervisor gives back 4k pages in > > # no particular order, making it impossible to reassemble larger pages > > depends on PAGE_SIZE_4KB > > + depends on HYPERV_VMBUS > > select EVENTFD > > select VIRT_XFER_TO_GUEST_WORK > > select HMM_MIRROR > > -- > > 2.39.5 > > > > Yes, this is the right short-term fix. We will need to solve the root case > (no VMBUS required) with a separate SYNIC driver abstraction. > > Reviewed-by: Jork Loeser <jloeser@linux.microsoft.com> > I have what I think is a better way to fix this. It preserves the ability to build MSHV without VMBus, while also guaranteeing that VMBus loads first when present. And it is relatively simple -- hv_vmbus_exists() does not need to be moved out of the VMBus module. Later today I'll post a separate patch for consideration. The separate SynIC driver abstraction can still come later and improve things further. Michael ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-05-21 15:56 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-05-20 7:40 [PATCH] mshv: add vmbus dependency Arnd Bergmann 2026-05-20 13:46 ` Michael Kelley 2026-05-20 13:51 ` Arnd Bergmann 2026-05-20 17:13 ` Jork Loeser 2026-05-20 17:15 ` Jork Loeser 2026-05-21 15:56 ` Michael Kelley
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.