|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 08 of 10] 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>
---
diff --git a/xenalyze.c b/xenalyze.c
--- a/xenalyze.c
+++ b/xenalyze.c
@@ -1482,6 +1482,7 @@ enum {
PV_PTWR_EMULATION,
PV_PTWR_EMULATION_PAE,
PV_HYPERCALL_V2 = 13,
+ PV_HYPERCALL_SUBCALL = 14,
PV_MAX
};
@@ -6562,7 +6563,8 @@ static const char *grant_table_op_cmd_to
return buf;
}
-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);
@@ -6573,11 +6575,11 @@ void pv_hypercall_v2_process(struct reco
if(opt.dump_all) {
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:
{
@@ -6643,7 +6645,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 |