[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Minios-devel] [UNIKRAFT PATCHv4 38/43] plat/kvm: Implement shutdown for Arm64
Hi Julien, > -----Original Message----- > From: Julien Grall <julien.grall@xxxxxxx> > Sent: 2018年7月19日 21:40 > To: Wei Chen <Wei.Chen@xxxxxxx>; minios-devel@xxxxxxxxxxxxxxxxxxxx; > simon.kuenzer@xxxxxxxxx > Cc: Kaly Xin <Kaly.Xin@xxxxxxx>; nd <nd@xxxxxxx> > Subject: Re: [Minios-devel] [UNIKRAFT PATCHv4 38/43] plat/kvm: Implement > shutdown for Arm64 > > Hi Wei, > > On 06/07/18 10:03, Wei Chen wrote: > > QEMU/KVM provide a PSCI interface for virtual machine on > > Arm64 platform. So we use this interface to implement > > platform system off function. > > > > Signed-off-by: Wei Chen <Wei.Chen@xxxxxxx> > > --- > > plat/kvm/shutdown.c | 11 +++++++++-- > > 1 file changed, 9 insertions(+), 2 deletions(-) > > > > diff --git a/plat/kvm/shutdown.c b/plat/kvm/shutdown.c > > index a513df9..0f0a01f 100644 > > --- a/plat/kvm/shutdown.c > > +++ b/plat/kvm/shutdown.c > > @@ -22,7 +22,8 @@ > > */ > > > > #include <errno.h> > > -#include <x86/cpu.h> > > +#include <cpu.h> > > +#include <irq.h> > > #include <uk/print.h> > > #include <uk/plat/bootstrap.h> > > > > @@ -38,7 +39,11 @@ void ukplat_terminate(enum ukplat_gstate request > > __unused) > > * be 83 ('S', 41 << 1 | 1). > > */ > > uk_printk("Unikraft halted\n"); > > +#if defined(__X86_64__) > > outw(0x501, 41); > > +#elif defined(__ARM_64__) > > + system_off(); > > +#endif > > > > /* > > * If we got here, there is no way to initiate "shutdown" on virtio > > @@ -49,7 +54,9 @@ void ukplat_terminate(enum ukplat_gstate request __unused) > > > > static void cpu_halt(void) > > { > > - __asm__ __volatile__("cli; hlt"); > > + local_irq_disable(); > > + halt(); > > I think you want to move halt() in the for loop for Arm because WFI will > come back when an interrupt is received. This means you will go into a > busy loop wasting power. > I think I don't want the WFI come back. The role of the cpu_halt is used to hang up the system. It's not an idle. > > + > > for (;;) > > ; > > } > > > > Cheers, > > -- > Julien Grall _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |