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