|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Minios-devel] [UNIKRAFT PATCH v3] plat/xen: Add flush for xen console
Hi Costin,
thanks, looks good to me
Reviewed-by: Yuri Volchkov <yuri.volchkov@xxxxxxxxx>
- Yuri.
Birlea Costin <costin.birlea@xxxxxxxxx> writes:
> Add flush function for xen console. Shutdown can be requested
> before the hypervisor gets to print everything to the console
> and stops trying. This happens in ukutest and does not get to
> print Passed(x/y). This patch assures everything is written
> before shutting down.
>
> Signed-off-by: Birlea Costin <costin.birlea@xxxxxxxxx>
> ---
> plat/xen/console.c | 14 ++++++++++++++
> plat/xen/include/common/console.h | 3 +++
> plat/xen/shutdown.c | 3 +++
> 3 files changed, 20 insertions(+)
>
> diff --git a/plat/xen/console.c b/plat/xen/console.c
> index c0b35c7..a70ec5f 100644
> --- a/plat/xen/console.c
> +++ b/plat/xen/console.c
> @@ -203,6 +203,20 @@ static void hvconsole_input(evtchn_port_t port __unused,
> /* NOT IMPLEMENTED YET */
> }
>
> +void hvconsole_flush(void)
> +{
> + struct xencons_interface *intf;
> +
> + if (!console_ready)
> + return;
> +
> + intf = console_ring;
> + if (unlikely(!intf))
> + return;
> +
> + while (intf->out_cons < intf->out_prod)
> + barrier();
> +}
>
> void _libxenplat_init_console(void)
> {
> diff --git a/plat/xen/include/common/console.h
> b/plat/xen/include/common/console.h
> index c51c69b..b4f1b51 100644
> --- a/plat/xen/include/common/console.h
> +++ b/plat/xen/include/common/console.h
> @@ -45,4 +45,7 @@ void _libxenplat_prepare_console(void);
> */
> void _libxenplat_init_console(void);
>
> +
> +void hvconsole_flush(void);
> +
> #endif /* __CONSOLE_H__ */
> diff --git a/plat/xen/shutdown.c b/plat/xen/shutdown.c
> index e1758ff..272ece4 100644
> --- a/plat/xen/shutdown.c
> +++ b/plat/xen/shutdown.c
> @@ -40,6 +40,7 @@
> #include <errno.h>
>
> #include <xen/xen.h>
> +#include <common/console.h>
>
> #if defined __X86_32__
> #include <xen-x86/hypercall32.h>
> @@ -65,6 +66,8 @@ void ukplat_terminate(enum ukplat_gstate request)
> break;
> }
>
> + hvconsole_flush();
> +
> for (;;) {
> struct sched_shutdown sched_shutdown = { .reason = reason };
>
> --
> 2.11.0
>
--
Yuri Volchkov
Software Specialist
NEC Europe Ltd
Kurfürsten-Anlage 36
D-69115 Heidelberg
_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |