4 # Copyright (C) 2011-2016 LluĂs Vilanova <vilanova@ac.upc.edu>
6 # This work is licensed under the terms of the GNU GPL, version 2 or later.
7 # See the COPYING file in the top-level directory.
16 # State of a tracing event.
18 # @unavailable: The event is statically disabled.
20 # @disabled: The event is dynamically disabled.
22 # @enabled: The event is dynamically enabled.
26 { 'enum': 'TraceEventState',
27 'data': ['unavailable', 'disabled', 'enabled'] }
32 # Information of a tracing event.
36 # @state: Tracing state.
38 # @vcpu: Whether this is a per-vCPU event (since 2.7).
40 # An event is per-vCPU if it has the "vcpu" property in the
41 # "trace-events" files.
45 { 'struct': 'TraceEventInfo',
46 'data': {'name': 'str', 'state': 'TraceEventState', 'vcpu': 'bool'} }
49 # @trace-event-get-state:
51 # Query the state of events.
53 # @name: Event name pattern (case-sensitive glob).
55 # @vcpu: The vCPU to query (any by default; since 2.7).
57 # Returns: a list of @TraceEventInfo for the matching events
59 # An event is returned if:
61 # - its name matches the @name pattern, and
62 # - if @vcpu is given, the event has the "vcpu" property.
64 # Therefore, if @vcpu is given, the operation will only match per-vCPU
65 # events, returning their state on the specified vCPU. Special case:
66 # if @name is an exact match, @vcpu is given and the event does not
67 # have the "vcpu" property, an error is returned.
73 # -> { "execute": "trace-event-get-state",
74 # "arguments": { "name": "qemu_memalign" } }
75 # <- { "return": [ { "name": "qemu_memalign", "state": "disabled", "vcpu": false } ] }
77 { 'command': 'trace-event-get-state',
78 'data': {'name': 'str', '*vcpu': 'int'},
79 'returns': ['TraceEventInfo'] }
82 # @trace-event-set-state:
84 # Set the dynamic tracing state of events.
86 # @name: Event name pattern (case-sensitive glob).
88 # @enable: Whether to enable tracing.
90 # @ignore-unavailable: Do not match unavailable events with @name.
92 # @vcpu: The vCPU to act upon (all by default; since 2.7).
94 # An event's state is modified if:
96 # - its name matches the @name pattern, and
97 # - if @vcpu is given, the event has the "vcpu" property.
99 # Therefore, if @vcpu is given, the operation will only match per-vCPU
100 # events, setting their state on the specified vCPU. Special case: if
101 # @name is an exact match, @vcpu is given and the event does not have
102 # the "vcpu" property, an error is returned.
108 # -> { "execute": "trace-event-set-state",
109 # "arguments": { "name": "qemu_memalign", "enable": true } }
110 # <- { "return": {} }
112 { 'command': 'trace-event-set-state',
113 'data': {'name': 'str', 'enable': 'bool', '*ignore-unavailable': 'bool',