mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 15:53:54 -06:00
trace: Add 'vcpu' event property to trace guest vCPU
This property identifies events that trace vCPU-specific information. It adds a "CPUState*" argument to events with the property, identifying the vCPU raising the event. TCG translation events also have a "TCGv_env" implicit argument that is later used as the "CPUState*" argument at execution time. Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu> Message-id: 145641861797.30295.6991314023181842105.stgit@localhost Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
b23197f9cf
commit
3d211d9f4d
11 changed files with 189 additions and 32 deletions
|
@ -161,7 +161,7 @@ class Event(object):
|
|||
"(?:(?:(?P<fmt_trans>\".+),)?\s*(?P<fmt>\".+))?"
|
||||
"\s*")
|
||||
|
||||
_VALID_PROPS = set(["disable", "tcg", "tcg-trans", "tcg-exec"])
|
||||
_VALID_PROPS = set(["disable", "tcg", "tcg-trans", "tcg-exec", "vcpu"])
|
||||
|
||||
def __init__(self, name, props, fmt, args, orig=None):
|
||||
"""
|
||||
|
@ -230,7 +230,13 @@ class Event(object):
|
|||
if "tcg" in props and isinstance(fmt, str):
|
||||
raise ValueError("Events with 'tcg' property must have two formats")
|
||||
|
||||
return Event(name, props, fmt, args)
|
||||
event = Event(name, props, fmt, args)
|
||||
|
||||
# add implicit arguments when using the 'vcpu' property
|
||||
import tracetool.vcpu
|
||||
event = tracetool.vcpu.transform_event(event)
|
||||
|
||||
return event
|
||||
|
||||
def __repr__(self):
|
||||
"""Evaluable string representation for this object."""
|
||||
|
@ -285,6 +291,7 @@ def _read_events(fobj):
|
|||
event_trans.name += "_trans"
|
||||
event_trans.properties += ["tcg-trans"]
|
||||
event_trans.fmt = event.fmt[0]
|
||||
# ignore TCG arguments
|
||||
args_trans = []
|
||||
for atrans, aorig in zip(
|
||||
event_trans.transform(tracetool.transform.TCG_2_HOST).args,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue