|
[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, 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!
> ---
> 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 |