[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 4/4] xen/arm: Add some useful debug in coprocessor trapping
On Thu, 2014-04-24 at 23:45 +0100, Julien Grall wrote: > XSA-93 adds a couple of new functions to trap coprocessor registers. They > unconditonally inject an undefined instruction to guest. "unconditionally" > When debugging an OS at early stage, it may be hard to know why the guest > received an UNDEFINED. Add some debug message to help the developper when Xen "developer" > is built in debug mode. > > Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx> > --- > xen/arch/arm/traps.c | 18 ++++++++++++++++++ > xen/include/asm-arm/processor.h | 15 +++++++++++++-- > 2 files changed, 31 insertions(+), 2 deletions(-) > > diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c > index 1f61e6e..c04f53f 100644 > --- a/xen/arch/arm/traps.c > +++ b/xen/arch/arm/traps.c > @@ -1539,23 +1539,41 @@ bad_cp: > > static void do_cp14_dbg(struct cpu_user_regs *regs, union hsr hsr) > { > + struct hsr_cp64 cp64 = hsr.cp64; Won't this be unused in debug=n builds and therefore not build? > diff --git a/xen/include/asm-arm/processor.h b/xen/include/asm-arm/processor.h > index 9267c1b..bc29de1 100644 > --- a/xen/include/asm-arm/processor.h > +++ b/xen/include/asm-arm/processor.h > @@ -289,12 +289,23 @@ union hsr { > unsigned long reg2:5; /* Rt2 */ > unsigned long sbzp2:1; > unsigned long op1:4; /* Op1 */ > - unsigned long cc:4; /* Condition Code */ > - unsigned long ccvalid:1;/* CC Valid */ > + unsigned long cc:4; /* condition code */ > + unsigned long ccvalid:1;/* cc valid */ This seems a bit gratuitous, especially given it appears 3 times and you only change one. I'd prefer if you just made the new version match the existing ones than change everything. > unsigned long len:1; /* Instruction length */ > unsigned long ec:6; /* Exception Class */ > } cp64; /* HSR_EC_CP15_64, HSR_EC_CP14_64 */ > > + struct hsr_cp { > + unsigned long coproc:4; /* Number of coproc accessed */ > + unsigned long sbz0p:1; > + unsigned long tas:1; /* Trapped Advanced SIMD */ > + unsigned long res0:14; > + unsigned long cc:4; /* condition code */ > + unsigned long ccvalid:1;/* cc valid */ > + unsigned long len:1; /* Instruction length */ > + unsigned long ec:6; /* Exception Class */ > + } cp; /* HSR_EC_CP */ > + > #ifdef CONFIG_ARM_64 > struct hsr_sysreg { > unsigned long read:1; /* Direction */ _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |