|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 2 of 2] xenalyze: decode PV_HYPERCALL_SUBCALL events
Decode the PV_HYPERCALL_SUBCALL events which are used for calls within
a multicall hypercall. They are indented so its easier to see which
multicall they were part of.
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
Acked-by: George Dunlap <george.dunlap@xxxxxxxxxx>
diff --git a/xenalyze.c b/xenalyze.c
--- a/xenalyze.c
+++ b/xenalyze.c
@@ -1487,6 +1487,7 @@ enum {
PV_PTWR_EMULATION,
PV_PTWR_EMULATION_PAE,
PV_HYPERCALL_V2 = 13,
+ PV_HYPERCALL_SUBCALL = 14,
PV_MAX
};
@@ -6623,7 +6624,8 @@ static void pv_hypercall_print_args(cons
}
}
-void pv_hypercall_v2_process(struct record_info *ri, struct pv_data *pv)
+void pv_hypercall_v2_process(struct record_info *ri, struct pv_data *pv,
+ const char *indent)
{
int op = pv_hypercall_op(ri);
@@ -6636,11 +6638,11 @@ void pv_hypercall_v2_process(struct reco
uint64_t args[6];
if(op < HYPERCALL_MAX)
- printf(" %s hypercall %2x (%s)",
- ri->dump_header, op, hypercall_name[op]);
+ printf(" %s%s hypercall %2x (%s)",
+ ri->dump_header, indent, op, hypercall_name[op]);
else
- printf(" %s hypercall %2x",
- ri->dump_header, op);
+ printf(" %s%s hypercall %2x",
+ ri->dump_header, indent, op);
switch(op) {
case HYPERCALL_mmu_update:
@@ -6709,7 +6711,10 @@ void pv_process(struct pcpu_info *p)
pv_ptwr_emulation_process(ri, pv);
break;
case PV_HYPERCALL_V2:
- pv_hypercall_v2_process(ri, pv);
+ pv_hypercall_v2_process(ri, pv, "");
+ break;
+ case PV_HYPERCALL_SUBCALL:
+ pv_hypercall_v2_process(ri, pv, " ");
break;
default:
pv_generic_process(ri, pv);
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |