On Fri, May 16, 2025 at 02:29:09AM +0000, dm...@proton.me wrote: > From: Denis Mukhin <dmuk...@ford.com> > > Define per-architecture emulation_flags for configuring domain emulation > features. > > Print d->arch.emulation_flags from 'q' keyhandler for better traceability > while debugging. > > Signed-off-by: Denis Mukhin <dmuk...@ford.com> > --- > Changes since v1: > - dropped comments > --- > xen/arch/arm/include/asm/domain.h | 1 + > xen/arch/ppc/include/asm/domain.h | 1 + > xen/arch/riscv/include/asm/domain.h | 1 + > xen/common/keyhandler.c | 1 + > 4 files changed, 4 insertions(+) > > diff --git a/xen/arch/arm/include/asm/domain.h > b/xen/arch/arm/include/asm/domain.h > index a3487ca713..70e6e7d49b 100644 > --- a/xen/arch/arm/include/asm/domain.h > +++ b/xen/arch/arm/include/asm/domain.h > @@ -121,6 +121,7 @@ struct arch_domain > void *tee; > #endif > > + uint32_t emulation_flags; > } __cacheline_aligned; > > struct arch_vcpu > diff --git a/xen/arch/ppc/include/asm/domain.h > b/xen/arch/ppc/include/asm/domain.h > index 3a447272c6..001116a0ab 100644 > --- a/xen/arch/ppc/include/asm/domain.h > +++ b/xen/arch/ppc/include/asm/domain.h > @@ -21,6 +21,7 @@ struct arch_vcpu { > > struct arch_domain { > struct hvm_domain hvm; > + uint32_t emulation_flags; > }; > > #include <xen/sched.h> > diff --git a/xen/arch/riscv/include/asm/domain.h > b/xen/arch/riscv/include/asm/domain.h > index c3d965a559..7bc242da55 100644 > --- a/xen/arch/riscv/include/asm/domain.h > +++ b/xen/arch/riscv/include/asm/domain.h > @@ -18,6 +18,7 @@ struct arch_vcpu { > > struct arch_domain { > struct hvm_domain hvm; > + uint32_t emulation_flags; > }; > > #include <xen/sched.h> > diff --git a/xen/common/keyhandler.c b/xen/common/keyhandler.c > index 0bb842ec00..73f5134b68 100644 > --- a/xen/common/keyhandler.c > +++ b/xen/common/keyhandler.c > @@ -306,6 +306,7 @@ static void cf_check dump_domains(unsigned char key) > if ( test_bit(i, &d->watchdog_inuse_map) ) > printk(" watchdog %d expires in %d seconds\n", > i, (u32)((d->watchdog_timer[i].expires - NOW()) >> > 30)); > + printk(" emulation_flags %#x\n", d->arch.emulation_flags); > > arch_dump_domain_info(d);
Hello, I think it might be easier to print emulation_flags in arch_dump_domain_info(), ideally it would be helpful if this could be printed in a user friendly way apart from the raw dump: printk(" emulation_flags:%s%s... (%#x)\n", !d->arch.emulation_flags ? " none" : "", has_vlapic(d) ? " lapic" : "", ... d->arch.emulation_flags); Regards, Roger.