|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 1/4] tools/xen-hvmctx: drop bogus casts from dump_cpu()
Also avoid printing the MSR flags (they're always zero as of commit
2f1add6e1c "x86/vmx: Don't leak host syscall MSR state into HVM
guests"), and print FPU registers only when the respective flag
indicates the space holds valid data.
Adjust format specifiers a little at the same time, in particular to
avoid at least some leading zeros to be printed when the positions
can't ever be non-zero. This helps readability in my opinion.
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
--- a/tools/misc/xen-hvmctx.c
+++ b/tools/misc/xen-hvmctx.c
@@ -148,21 +148,20 @@ static void dump_cpu(void)
" dr0 0x%16.16llx dr1 0x%16.16llx\n"
" dr2 0x%16.16llx dr3 0x%16.16llx\n"
" dr6 0x%16.16llx dr7 0x%16.16llx\n"
- " cs 0x%8.8x (0x%16.16llx + 0x%8.8x / 0x%5.5x)\n"
- " ds 0x%8.8x (0x%16.16llx + 0x%8.8x / 0x%5.5x)\n"
- " es 0x%8.8x (0x%16.16llx + 0x%8.8x / 0x%5.5x)\n"
- " fs 0x%8.8x (0x%16.16llx + 0x%8.8x / 0x%5.5x)\n"
- " gs 0x%8.8x (0x%16.16llx + 0x%8.8x / 0x%5.5x)\n"
- " ss 0x%8.8x (0x%16.16llx + 0x%8.8x / 0x%5.5x)\n"
- " tr 0x%8.8x (0x%16.16llx + 0x%8.8x / 0x%5.5x)\n"
- " ldtr 0x%8.8x (0x%16.16llx + 0x%8.8x / 0x%5.5x)\n"
- " idtr (0x%16.16llx + 0x%8.8x)\n"
- " gdtr (0x%16.16llx + 0x%8.8x)\n"
+ " cs %#6.4" PRIx32 " (%#18.8" PRIx64 " + %#10.8" PRIx32
" / %#7.4" PRIx32 ")\n"
+ " es %#6.4" PRIx32 " (%#18.8" PRIx64 " + %#10.8" PRIx32
" / %#7.4" PRIx32 ")\n"
+ " ds %#6.4" PRIx32 " (%#18.8" PRIx64 " + %#10.8" PRIx32
" / %#7.4" PRIx32 ")\n"
+ " fs %#6.4" PRIx32 " (%#18.8" PRIx64 " + %#10.8" PRIx32
" / %#7.4" PRIx32 ")\n"
+ " gs %#6.4" PRIx32 " (%#18.8" PRIx64 " + %#10.8" PRIx32
" / %#7.4" PRIx32 ")\n"
+ " ss %#6.4" PRIx32 " (%#18.8" PRIx64 " + %#10.8" PRIx32
" / %#7.4" PRIx32 ")\n"
+ " tr %#6.4" PRIx32 " (%#18.8" PRIx64 " + %#10.4" PRIx32
" / %#7.4" PRIx32 ")\n"
+ " ldtr %#6.4" PRIx32 " (%#18.8" PRIx64 " + %#10.4" PRIx32
" / %#7.4" PRIx32 ")\n"
+ " idtr (%#18.8" PRIx64 " + %#10.4" PRIx32 ")\n"
+ " gdtr (%#18.8" PRIx64 " + %#10.4" PRIx32 ")\n"
" sysenter cs 0x%8.8llx eip 0x%16.16llx esp 0x%16.16llx\n"
- " shadow gs 0x%16.16llx\n"
- " MSR flags 0x%16.16llx lstar 0x%16.16llx\n"
- " star 0x%16.16llx cstar 0x%16.16llx\n"
- " sfmask 0x%16.16llx efer 0x%16.16llx\n"
+ " shadow gs %#18.16" PRIx64 " efer %#18.8" PRIx64 "\n"
+ " lstar %#18.16" PRIx64 " cstar %#18.16" PRIx64 "\n"
+ " star %#18.16" PRIx64 " sfmask %#18.8" PRIx64 "\n"
" tsc 0x%16.16llx\n"
" event 0x%8.8lx error 0x%8.8lx\n",
(unsigned long long) c.rax, (unsigned long long) c.rbx,
@@ -179,30 +178,27 @@ static void dump_cpu(void)
(unsigned long long) c.dr0, (unsigned long long) c.dr1,
(unsigned long long) c.dr2, (unsigned long long) c.dr3,
(unsigned long long) c.dr6, (unsigned long long) c.dr7,
- c.cs_sel, (unsigned long long) c.cs_base, c.cs_limit, c.cs_arbytes,
- c.ds_sel, (unsigned long long) c.ds_base, c.ds_limit, c.ds_arbytes,
- c.es_sel, (unsigned long long) c.es_base, c.es_limit, c.es_arbytes,
- c.fs_sel, (unsigned long long) c.fs_base, c.fs_limit, c.fs_arbytes,
- c.gs_sel, (unsigned long long) c.gs_base, c.gs_limit, c.gs_arbytes,
- c.ss_sel, (unsigned long long) c.ss_base, c.ss_limit, c.ss_arbytes,
- c.tr_sel, (unsigned long long) c.tr_base, c.tr_limit, c.tr_arbytes,
- c.ldtr_sel, (unsigned long long) c.ldtr_base,
- c.ldtr_limit, c.ldtr_arbytes,
- (unsigned long long) c.idtr_base, c.idtr_limit,
- (unsigned long long) c.gdtr_base, c.gdtr_limit,
+ c.cs_sel, c.cs_base, c.cs_limit, c.cs_arbytes,
+ c.ds_sel, c.ds_base, c.ds_limit, c.ds_arbytes,
+ c.es_sel, c.es_base, c.es_limit, c.es_arbytes,
+ c.fs_sel, c.fs_base, c.fs_limit, c.fs_arbytes,
+ c.gs_sel, c.gs_base, c.gs_limit, c.gs_arbytes,
+ c.ss_sel, c.ss_base, c.ss_limit, c.ss_arbytes,
+ c.tr_sel, c.tr_base, c.tr_limit, c.tr_arbytes,
+ c.ldtr_sel, c.ldtr_base, c.ldtr_limit, c.ldtr_arbytes,
+ c.idtr_base, c.idtr_limit,
+ c.gdtr_base, c.gdtr_limit,
(unsigned long long) c.sysenter_cs,
(unsigned long long) c.sysenter_eip,
(unsigned long long) c.sysenter_esp,
- (unsigned long long) c.shadow_gs,
- (unsigned long long) c.msr_flags,
- (unsigned long long) c.msr_lstar,
- (unsigned long long) c.msr_star,
- (unsigned long long) c.msr_cstar,
- (unsigned long long) c.msr_syscall_mask,
- (unsigned long long) c.msr_efer,
+ c.shadow_gs, c.msr_efer,
+ c.msr_lstar, c.msr_cstar,
+ c.msr_star, c.msr_syscall_mask,
(unsigned long long) c.tsc,
(unsigned long) c.pending_event, (unsigned long) c.error_code);
- dump_fpu(&c.fpu_regs);
+
+ if ( c.flags & XEN_X86_FPU_INITIALISED )
+ dump_fpu(&c.fpu_regs);
}
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |