|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v4 8/8] emul/vuart: introduce console forwarding enforcement via vUART
On Thu, Jul 31, 2025 at 05:10:12PM -0700, Stefano Stabellini wrote:
> On Thu, 31 Jul 2025, dmkhn@xxxxxxxxx wrote:
> > From: Denis Mukhin <dmukhin@xxxxxxxx>
> >
> > It may be useful to enforce console forwarding over the virtual UART. E.g.
> > hardware domain uses PV console by default, but it may be necessary to have
> > console forwarded to the hardware domain via emulated UART.
> >
> > Add CONFIG_VUART_CONSOLE_FOCUS to enforce such behavior.
> >
> > Signed-off-by: Denis Mukhin <dmukhin@xxxxxxxx>
>
> I realize that hyperlaunch is not merged yet, but I think this one would
> be best as a hyperlaunch configuration option rather than a kconfig. But
> it is certainly useful for testing until Hyperlaunch is merged!
Yep, I used that to test PVH dom0 w/ emulator.
re: configuration option: I agree and, initially I wanted to hook a flag to xl
/ dom0 command line opton which will say that emulated UART can accept
physical input.
But then decided to hook such capability via Kconfig for simplicity.
>
>
> > ---
> > Changes since v3:
> > - new patch
> > ---
> > xen/arch/x86/domain.c | 6 ++++++
> > xen/common/emul/vuart/Kconfig | 5 +++++
> > xen/drivers/char/console.c | 2 +-
> > 3 files changed, 12 insertions(+), 1 deletion(-)
> >
> > diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> > index 39b0c0b199b9..40ff92ad6c61 100644
> > --- a/xen/arch/x86/domain.c
> > +++ b/xen/arch/x86/domain.c
> > @@ -848,6 +848,12 @@ int arch_domain_create(struct domain *d,
> > if ( is_hardware_domain(d) && is_pv_domain(d) )
> > emflags |= XEN_X86_EMU_PIT;
> >
> > + if ( IS_ENABLED(CONFIG_VUART_CONSOLE_FOCUS) &&
> > + IS_ENABLED(CONFIG_VUART_NS16550) &&
> > + is_hardware_domain(d) &&
> > + is_hvm_domain(d) )
> > + emflags |= XEN_X86_EMU_NS16550;
> > +
> > if ( emflags & ~XEN_X86_EMU_ALL )
> > {
> > printk(XENLOG_G_ERR
> > diff --git a/xen/common/emul/vuart/Kconfig b/xen/common/emul/vuart/Kconfig
> > index ebefd90d913e..1069ca95f2db 100644
> > --- a/xen/common/emul/vuart/Kconfig
> > +++ b/xen/common/emul/vuart/Kconfig
> > @@ -51,4 +51,9 @@ config VUART_NS16550_DEBUG
> > help
> > Enable development debugging.
> >
> > +config VUART_CONSOLE_FOCUS
> > + bool "Console input forwarding via UART emulator"
> > + help
> > + Enable physical console input forwarding to guest OS via emulated
> > UART.
> > +
> > endmenu
> > diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
> > index 93254979817b..d142f5511d61 100644
> > --- a/xen/drivers/char/console.c
> > +++ b/xen/drivers/char/console.c
> > @@ -597,7 +597,7 @@ static void __serial_rx(char c)
> > if ( !d )
> > return;
> >
> > - if ( is_hardware_domain(d) )
> > + if ( !IS_ENABLED(CONFIG_VUART_CONSOLE_FOCUS) && is_hardware_domain(d) )
> > {
> > /*
> > * Deliver input to the hardware domain buffer, unless it is
> > --
> > 2.34.1
> >
> >
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |