Statistics
| Branch: | Revision:

root / qmp-commands.hx @ 4a411185

History | View | Annotate | Download (36.5 kB)

1 82a56f0d Luiz Capitulino
HXCOMM QMP dispatch table and documentation
2 82a56f0d Luiz Capitulino
HXCOMM Text between SQMP and EQMP is copied to the QMP documention file and
3 82a56f0d Luiz Capitulino
HXCOMM does not show up in the other formats.
4 82a56f0d Luiz Capitulino
5 82a56f0d Luiz Capitulino
SQMP
6 82a56f0d Luiz Capitulino
                        QMP Supported Commands
7 82a56f0d Luiz Capitulino
                        ----------------------
8 82a56f0d Luiz Capitulino
9 82a56f0d Luiz Capitulino
This document describes all commands currently supported by QMP.
10 82a56f0d Luiz Capitulino
11 82a56f0d Luiz Capitulino
Most of the time their usage is exactly the same as in the user Monitor, this
12 82a56f0d Luiz Capitulino
means that any other document which also describe commands (the manpage,
13 82a56f0d Luiz Capitulino
QEMU's manual, etc) can and should be consulted.
14 82a56f0d Luiz Capitulino
15 82a56f0d Luiz Capitulino
QMP has two types of commands: regular and query commands. Regular commands
16 82a56f0d Luiz Capitulino
usually change the Virtual Machine's state someway, while query commands just
17 82a56f0d Luiz Capitulino
return information. The sections below are divided accordingly.
18 82a56f0d Luiz Capitulino
19 82a56f0d Luiz Capitulino
It's important to observe that all communication examples are formatted in
20 82a56f0d Luiz Capitulino
a reader-friendly way, so that they're easier to understand. However, in real
21 82a56f0d Luiz Capitulino
protocol usage, they're emitted as a single line.
22 82a56f0d Luiz Capitulino
23 82a56f0d Luiz Capitulino
Also, the following notation is used to denote data flow:
24 82a56f0d Luiz Capitulino
25 82a56f0d Luiz Capitulino
-> data issued by the Client
26 82a56f0d Luiz Capitulino
<- Server data response
27 82a56f0d Luiz Capitulino
28 82a56f0d Luiz Capitulino
Please, refer to the QMP specification (QMP/qmp-spec.txt) for detailed
29 82a56f0d Luiz Capitulino
information on the Server command and response formats.
30 82a56f0d Luiz Capitulino
31 82a56f0d Luiz Capitulino
NOTE: This document is temporary and will be replaced soon.
32 82a56f0d Luiz Capitulino
33 82a56f0d Luiz Capitulino
1. Stability Considerations
34 82a56f0d Luiz Capitulino
===========================
35 82a56f0d Luiz Capitulino
36 82a56f0d Luiz Capitulino
The current QMP command set (described in this file) may be useful for a
37 82a56f0d Luiz Capitulino
number of use cases, however it's limited and several commands have bad
38 82a56f0d Luiz Capitulino
defined semantics, specially with regard to command completion.
39 82a56f0d Luiz Capitulino
40 82a56f0d Luiz Capitulino
These problems are going to be solved incrementally in the next QEMU releases
41 82a56f0d Luiz Capitulino
and we're going to establish a deprecation policy for badly defined commands.
42 82a56f0d Luiz Capitulino
43 82a56f0d Luiz Capitulino
If you're planning to adopt QMP, please observe the following:
44 82a56f0d Luiz Capitulino
45 82a56f0d Luiz Capitulino
    1. The deprecation policy will take efect and be documented soon, please
46 82a56f0d Luiz Capitulino
       check the documentation of each used command as soon as a new release of
47 82a56f0d Luiz Capitulino
       QEMU is available
48 82a56f0d Luiz Capitulino
49 82a56f0d Luiz Capitulino
    2. DO NOT rely on anything which is not explicit documented
50 82a56f0d Luiz Capitulino
51 82a56f0d Luiz Capitulino
    3. Errors, in special, are not documented. Applications should NOT check
52 82a56f0d Luiz Capitulino
       for specific errors classes or data (it's strongly recommended to only
53 82a56f0d Luiz Capitulino
       check for the "error" key)
54 82a56f0d Luiz Capitulino
55 82a56f0d Luiz Capitulino
2. Regular Commands
56 82a56f0d Luiz Capitulino
===================
57 82a56f0d Luiz Capitulino
58 82a56f0d Luiz Capitulino
Server's responses in the examples below are always a success response, please
59 82a56f0d Luiz Capitulino
refer to the QMP specification for more details on error responses.
60 82a56f0d Luiz Capitulino
61 82a56f0d Luiz Capitulino
EQMP
62 82a56f0d Luiz Capitulino
63 82a56f0d Luiz Capitulino
    {
64 82a56f0d Luiz Capitulino
        .name       = "quit",
65 82a56f0d Luiz Capitulino
        .args_type  = "",
66 82a56f0d Luiz Capitulino
        .params     = "",
67 82a56f0d Luiz Capitulino
        .help       = "quit the emulator",
68 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
69 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_quit,
70 82a56f0d Luiz Capitulino
    },
71 82a56f0d Luiz Capitulino
72 82a56f0d Luiz Capitulino
SQMP
73 82a56f0d Luiz Capitulino
quit
74 82a56f0d Luiz Capitulino
----
75 82a56f0d Luiz Capitulino
76 82a56f0d Luiz Capitulino
Quit the emulator.
77 82a56f0d Luiz Capitulino
78 82a56f0d Luiz Capitulino
Arguments: None.
79 82a56f0d Luiz Capitulino
80 82a56f0d Luiz Capitulino
Example:
81 82a56f0d Luiz Capitulino
82 82a56f0d Luiz Capitulino
-> { "execute": "quit" }
83 82a56f0d Luiz Capitulino
<- { "return": {} }
84 82a56f0d Luiz Capitulino
85 82a56f0d Luiz Capitulino
EQMP
86 82a56f0d Luiz Capitulino
87 82a56f0d Luiz Capitulino
    {
88 82a56f0d Luiz Capitulino
        .name       = "eject",
89 82a56f0d Luiz Capitulino
        .args_type  = "force:-f,device:B",
90 82a56f0d Luiz Capitulino
        .params     = "[-f] device",
91 82a56f0d Luiz Capitulino
        .help       = "eject a removable medium (use -f to force it)",
92 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
93 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_eject,
94 82a56f0d Luiz Capitulino
    },
95 82a56f0d Luiz Capitulino
96 82a56f0d Luiz Capitulino
SQMP
97 82a56f0d Luiz Capitulino
eject
98 82a56f0d Luiz Capitulino
-----
99 82a56f0d Luiz Capitulino
100 82a56f0d Luiz Capitulino
Eject a removable medium.
101 82a56f0d Luiz Capitulino
102 82a56f0d Luiz Capitulino
Arguments: 
103 82a56f0d Luiz Capitulino
104 82a56f0d Luiz Capitulino
- force: force ejection (json-bool, optional)
105 82a56f0d Luiz Capitulino
- device: device name (json-string)
106 82a56f0d Luiz Capitulino
107 82a56f0d Luiz Capitulino
Example:
108 82a56f0d Luiz Capitulino
109 82a56f0d Luiz Capitulino
-> { "execute": "eject", "arguments": { "device": "ide1-cd0" } }
110 82a56f0d Luiz Capitulino
<- { "return": {} }
111 82a56f0d Luiz Capitulino
112 82a56f0d Luiz Capitulino
Note: The "force" argument defaults to false.
113 82a56f0d Luiz Capitulino
114 82a56f0d Luiz Capitulino
EQMP
115 82a56f0d Luiz Capitulino
116 82a56f0d Luiz Capitulino
    {
117 82a56f0d Luiz Capitulino
        .name       = "change",
118 82a56f0d Luiz Capitulino
        .args_type  = "device:B,target:F,arg:s?",
119 82a56f0d Luiz Capitulino
        .params     = "device filename [format]",
120 82a56f0d Luiz Capitulino
        .help       = "change a removable medium, optional format",
121 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
122 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_change,
123 82a56f0d Luiz Capitulino
    },
124 82a56f0d Luiz Capitulino
125 82a56f0d Luiz Capitulino
SQMP
126 82a56f0d Luiz Capitulino
change
127 82a56f0d Luiz Capitulino
------
128 82a56f0d Luiz Capitulino
129 82a56f0d Luiz Capitulino
Change a removable medium or VNC configuration.
130 82a56f0d Luiz Capitulino
131 82a56f0d Luiz Capitulino
Arguments:
132 82a56f0d Luiz Capitulino
133 82a56f0d Luiz Capitulino
- "device": device name (json-string)
134 82a56f0d Luiz Capitulino
- "target": filename or item (json-string)
135 82a56f0d Luiz Capitulino
- "arg": additional argument (json-string, optional)
136 82a56f0d Luiz Capitulino
137 82a56f0d Luiz Capitulino
Examples:
138 82a56f0d Luiz Capitulino
139 82a56f0d Luiz Capitulino
1. Change a removable medium
140 82a56f0d Luiz Capitulino
141 82a56f0d Luiz Capitulino
-> { "execute": "change",
142 82a56f0d Luiz Capitulino
             "arguments": { "device": "ide1-cd0",
143 82a56f0d Luiz Capitulino
                            "target": "/srv/images/Fedora-12-x86_64-DVD.iso" } }
144 82a56f0d Luiz Capitulino
<- { "return": {} }
145 82a56f0d Luiz Capitulino
146 82a56f0d Luiz Capitulino
2. Change VNC password
147 82a56f0d Luiz Capitulino
148 82a56f0d Luiz Capitulino
-> { "execute": "change",
149 82a56f0d Luiz Capitulino
             "arguments": { "device": "vnc", "target": "password",
150 82a56f0d Luiz Capitulino
                            "arg": "foobar1" } }
151 82a56f0d Luiz Capitulino
<- { "return": {} }
152 82a56f0d Luiz Capitulino
153 82a56f0d Luiz Capitulino
EQMP
154 82a56f0d Luiz Capitulino
155 82a56f0d Luiz Capitulino
    {
156 82a56f0d Luiz Capitulino
        .name       = "screendump",
157 82a56f0d Luiz Capitulino
        .args_type  = "filename:F",
158 82a56f0d Luiz Capitulino
        .params     = "filename",
159 82a56f0d Luiz Capitulino
        .help       = "save screen into PPM image 'filename'",
160 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
161 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_screen_dump,
162 82a56f0d Luiz Capitulino
    },
163 82a56f0d Luiz Capitulino
164 82a56f0d Luiz Capitulino
SQMP
165 82a56f0d Luiz Capitulino
screendump
166 82a56f0d Luiz Capitulino
----------
167 82a56f0d Luiz Capitulino
168 82a56f0d Luiz Capitulino
Save screen into PPM image.
169 82a56f0d Luiz Capitulino
170 82a56f0d Luiz Capitulino
Arguments:
171 82a56f0d Luiz Capitulino
172 82a56f0d Luiz Capitulino
- "filename": file path (json-string)
173 82a56f0d Luiz Capitulino
174 82a56f0d Luiz Capitulino
Example:
175 82a56f0d Luiz Capitulino
176 82a56f0d Luiz Capitulino
-> { "execute": "screendump", "arguments": { "filename": "/tmp/image" } }
177 82a56f0d Luiz Capitulino
<- { "return": {} }
178 82a56f0d Luiz Capitulino
179 82a56f0d Luiz Capitulino
EQMP
180 82a56f0d Luiz Capitulino
181 82a56f0d Luiz Capitulino
    {
182 82a56f0d Luiz Capitulino
        .name       = "stop",
183 82a56f0d Luiz Capitulino
        .args_type  = "",
184 82a56f0d Luiz Capitulino
        .params     = "",
185 82a56f0d Luiz Capitulino
        .help       = "stop emulation",
186 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
187 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_stop,
188 82a56f0d Luiz Capitulino
    },
189 82a56f0d Luiz Capitulino
190 82a56f0d Luiz Capitulino
SQMP
191 82a56f0d Luiz Capitulino
stop
192 82a56f0d Luiz Capitulino
----
193 82a56f0d Luiz Capitulino
194 82a56f0d Luiz Capitulino
Stop the emulator.
195 82a56f0d Luiz Capitulino
196 82a56f0d Luiz Capitulino
Arguments: None.
197 82a56f0d Luiz Capitulino
198 82a56f0d Luiz Capitulino
Example:
199 82a56f0d Luiz Capitulino
200 82a56f0d Luiz Capitulino
-> { "execute": "stop" }
201 82a56f0d Luiz Capitulino
<- { "return": {} }
202 82a56f0d Luiz Capitulino
203 82a56f0d Luiz Capitulino
EQMP
204 82a56f0d Luiz Capitulino
205 82a56f0d Luiz Capitulino
    {
206 82a56f0d Luiz Capitulino
        .name       = "cont",
207 82a56f0d Luiz Capitulino
        .args_type  = "",
208 82a56f0d Luiz Capitulino
        .params     = "",
209 82a56f0d Luiz Capitulino
        .help       = "resume emulation",
210 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
211 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_cont,
212 82a56f0d Luiz Capitulino
    },
213 82a56f0d Luiz Capitulino
214 82a56f0d Luiz Capitulino
SQMP
215 82a56f0d Luiz Capitulino
cont
216 82a56f0d Luiz Capitulino
----
217 82a56f0d Luiz Capitulino
218 82a56f0d Luiz Capitulino
Resume emulation.
219 82a56f0d Luiz Capitulino
220 82a56f0d Luiz Capitulino
Arguments: None.
221 82a56f0d Luiz Capitulino
222 82a56f0d Luiz Capitulino
Example:
223 82a56f0d Luiz Capitulino
224 82a56f0d Luiz Capitulino
-> { "execute": "cont" }
225 82a56f0d Luiz Capitulino
<- { "return": {} }
226 82a56f0d Luiz Capitulino
227 82a56f0d Luiz Capitulino
EQMP
228 82a56f0d Luiz Capitulino
229 82a56f0d Luiz Capitulino
    {
230 82a56f0d Luiz Capitulino
        .name       = "system_reset",
231 82a56f0d Luiz Capitulino
        .args_type  = "",
232 82a56f0d Luiz Capitulino
        .params     = "",
233 82a56f0d Luiz Capitulino
        .help       = "reset the system",
234 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
235 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_system_reset,
236 82a56f0d Luiz Capitulino
    },
237 82a56f0d Luiz Capitulino
238 82a56f0d Luiz Capitulino
SQMP
239 82a56f0d Luiz Capitulino
system_reset
240 82a56f0d Luiz Capitulino
------------
241 82a56f0d Luiz Capitulino
242 82a56f0d Luiz Capitulino
Reset the system.
243 82a56f0d Luiz Capitulino
244 82a56f0d Luiz Capitulino
Arguments: None.
245 82a56f0d Luiz Capitulino
246 82a56f0d Luiz Capitulino
Example:
247 82a56f0d Luiz Capitulino
248 82a56f0d Luiz Capitulino
-> { "execute": "system_reset" }
249 82a56f0d Luiz Capitulino
<- { "return": {} }
250 82a56f0d Luiz Capitulino
251 82a56f0d Luiz Capitulino
EQMP
252 82a56f0d Luiz Capitulino
253 82a56f0d Luiz Capitulino
    {
254 82a56f0d Luiz Capitulino
        .name       = "system_powerdown",
255 82a56f0d Luiz Capitulino
        .args_type  = "",
256 82a56f0d Luiz Capitulino
        .params     = "",
257 82a56f0d Luiz Capitulino
        .help       = "send system power down event",
258 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
259 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_system_powerdown,
260 82a56f0d Luiz Capitulino
    },
261 82a56f0d Luiz Capitulino
262 82a56f0d Luiz Capitulino
SQMP
263 82a56f0d Luiz Capitulino
system_powerdown
264 82a56f0d Luiz Capitulino
----------------
265 82a56f0d Luiz Capitulino
266 82a56f0d Luiz Capitulino
Send system power down event.
267 82a56f0d Luiz Capitulino
268 82a56f0d Luiz Capitulino
Arguments: None.
269 82a56f0d Luiz Capitulino
270 82a56f0d Luiz Capitulino
Example:
271 82a56f0d Luiz Capitulino
272 82a56f0d Luiz Capitulino
-> { "execute": "system_powerdown" }
273 82a56f0d Luiz Capitulino
<- { "return": {} }
274 82a56f0d Luiz Capitulino
275 82a56f0d Luiz Capitulino
EQMP
276 82a56f0d Luiz Capitulino
277 82a56f0d Luiz Capitulino
    {
278 82a56f0d Luiz Capitulino
        .name       = "device_add",
279 82a56f0d Luiz Capitulino
        .args_type  = "device:O",
280 82a56f0d Luiz Capitulino
        .params     = "driver[,prop=value][,...]",
281 82a56f0d Luiz Capitulino
        .help       = "add device, like -device on the command line",
282 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
283 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_device_add,
284 82a56f0d Luiz Capitulino
    },
285 82a56f0d Luiz Capitulino
286 82a56f0d Luiz Capitulino
SQMP
287 82a56f0d Luiz Capitulino
device_add
288 82a56f0d Luiz Capitulino
----------
289 82a56f0d Luiz Capitulino
290 82a56f0d Luiz Capitulino
Add a device.
291 82a56f0d Luiz Capitulino
292 82a56f0d Luiz Capitulino
Arguments:
293 82a56f0d Luiz Capitulino
294 82a56f0d Luiz Capitulino
- "driver": the name of the new device's driver (json-string)
295 82a56f0d Luiz Capitulino
- "bus": the device's parent bus (device tree path, json-string, optional)
296 82a56f0d Luiz Capitulino
- "id": the device's ID, must be unique (json-string)
297 82a56f0d Luiz Capitulino
- device properties
298 82a56f0d Luiz Capitulino
299 82a56f0d Luiz Capitulino
Example:
300 82a56f0d Luiz Capitulino
301 82a56f0d Luiz Capitulino
-> { "execute": "device_add", "arguments": { "driver": "e1000", "id": "net1" } }
302 82a56f0d Luiz Capitulino
<- { "return": {} }
303 82a56f0d Luiz Capitulino
304 82a56f0d Luiz Capitulino
Notes:
305 82a56f0d Luiz Capitulino
306 82a56f0d Luiz Capitulino
(1) For detailed information about this command, please refer to the
307 82a56f0d Luiz Capitulino
    'docs/qdev-device-use.txt' file.
308 82a56f0d Luiz Capitulino
309 82a56f0d Luiz Capitulino
(2) It's possible to list device properties by running QEMU with the
310 82a56f0d Luiz Capitulino
    "-device DEVICE,\?" command-line argument, where DEVICE is the device's name
311 82a56f0d Luiz Capitulino
312 82a56f0d Luiz Capitulino
EQMP
313 82a56f0d Luiz Capitulino
314 82a56f0d Luiz Capitulino
    {
315 82a56f0d Luiz Capitulino
        .name       = "device_del",
316 82a56f0d Luiz Capitulino
        .args_type  = "id:s",
317 82a56f0d Luiz Capitulino
        .params     = "device",
318 82a56f0d Luiz Capitulino
        .help       = "remove device",
319 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
320 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_device_del,
321 82a56f0d Luiz Capitulino
    },
322 82a56f0d Luiz Capitulino
323 82a56f0d Luiz Capitulino
SQMP
324 82a56f0d Luiz Capitulino
device_del
325 82a56f0d Luiz Capitulino
----------
326 82a56f0d Luiz Capitulino
327 82a56f0d Luiz Capitulino
Remove a device.
328 82a56f0d Luiz Capitulino
329 82a56f0d Luiz Capitulino
Arguments:
330 82a56f0d Luiz Capitulino
331 82a56f0d Luiz Capitulino
- "id": the device's ID (json-string)
332 82a56f0d Luiz Capitulino
333 82a56f0d Luiz Capitulino
Example:
334 82a56f0d Luiz Capitulino
335 82a56f0d Luiz Capitulino
-> { "execute": "device_del", "arguments": { "id": "net1" } }
336 82a56f0d Luiz Capitulino
<- { "return": {} }
337 82a56f0d Luiz Capitulino
338 82a56f0d Luiz Capitulino
EQMP
339 82a56f0d Luiz Capitulino
340 82a56f0d Luiz Capitulino
    {
341 82a56f0d Luiz Capitulino
        .name       = "cpu",
342 82a56f0d Luiz Capitulino
        .args_type  = "index:i",
343 82a56f0d Luiz Capitulino
        .params     = "index",
344 82a56f0d Luiz Capitulino
        .help       = "set the default CPU",
345 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
346 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_cpu_set,
347 82a56f0d Luiz Capitulino
    },
348 82a56f0d Luiz Capitulino
349 82a56f0d Luiz Capitulino
SQMP
350 82a56f0d Luiz Capitulino
cpu
351 82a56f0d Luiz Capitulino
---
352 82a56f0d Luiz Capitulino
353 82a56f0d Luiz Capitulino
Set the default CPU.
354 82a56f0d Luiz Capitulino
355 82a56f0d Luiz Capitulino
Arguments:
356 82a56f0d Luiz Capitulino
357 82a56f0d Luiz Capitulino
- "index": the CPU's index (json-int)
358 82a56f0d Luiz Capitulino
359 82a56f0d Luiz Capitulino
Example:
360 82a56f0d Luiz Capitulino
361 82a56f0d Luiz Capitulino
-> { "execute": "cpu", "arguments": { "index": 0 } }
362 82a56f0d Luiz Capitulino
<- { "return": {} }
363 82a56f0d Luiz Capitulino
364 82a56f0d Luiz Capitulino
Note: CPUs' indexes are obtained with the 'query-cpus' command.
365 82a56f0d Luiz Capitulino
366 82a56f0d Luiz Capitulino
EQMP
367 82a56f0d Luiz Capitulino
368 82a56f0d Luiz Capitulino
    {
369 82a56f0d Luiz Capitulino
        .name       = "memsave",
370 82a56f0d Luiz Capitulino
        .args_type  = "val:l,size:i,filename:s",
371 82a56f0d Luiz Capitulino
        .params     = "addr size file",
372 82a56f0d Luiz Capitulino
        .help       = "save to disk virtual memory dump starting at 'addr' of size 'size'",
373 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
374 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_memory_save,
375 82a56f0d Luiz Capitulino
    },
376 82a56f0d Luiz Capitulino
377 82a56f0d Luiz Capitulino
SQMP
378 82a56f0d Luiz Capitulino
memsave
379 82a56f0d Luiz Capitulino
-------
380 82a56f0d Luiz Capitulino
381 82a56f0d Luiz Capitulino
Save to disk virtual memory dump starting at 'val' of size 'size'.
382 82a56f0d Luiz Capitulino
383 82a56f0d Luiz Capitulino
Arguments:
384 82a56f0d Luiz Capitulino
385 82a56f0d Luiz Capitulino
- "val": the starting address (json-int)
386 82a56f0d Luiz Capitulino
- "size": the memory size, in bytes (json-int)
387 82a56f0d Luiz Capitulino
- "filename": file path (json-string)
388 82a56f0d Luiz Capitulino
389 82a56f0d Luiz Capitulino
Example:
390 82a56f0d Luiz Capitulino
391 82a56f0d Luiz Capitulino
-> { "execute": "memsave",
392 82a56f0d Luiz Capitulino
             "arguments": { "val": 10,
393 82a56f0d Luiz Capitulino
                            "size": 100,
394 82a56f0d Luiz Capitulino
                            "filename": "/tmp/virtual-mem-dump" } }
395 82a56f0d Luiz Capitulino
<- { "return": {} }
396 82a56f0d Luiz Capitulino
397 82a56f0d Luiz Capitulino
Note: Depends on the current CPU.
398 82a56f0d Luiz Capitulino
399 82a56f0d Luiz Capitulino
EQMP
400 82a56f0d Luiz Capitulino
401 82a56f0d Luiz Capitulino
    {
402 82a56f0d Luiz Capitulino
        .name       = "pmemsave",
403 82a56f0d Luiz Capitulino
        .args_type  = "val:l,size:i,filename:s",
404 82a56f0d Luiz Capitulino
        .params     = "addr size file",
405 82a56f0d Luiz Capitulino
        .help       = "save to disk physical memory dump starting at 'addr' of size 'size'",
406 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
407 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_physical_memory_save,
408 82a56f0d Luiz Capitulino
    },
409 82a56f0d Luiz Capitulino
410 82a56f0d Luiz Capitulino
SQMP
411 82a56f0d Luiz Capitulino
pmemsave
412 82a56f0d Luiz Capitulino
--------
413 82a56f0d Luiz Capitulino
414 82a56f0d Luiz Capitulino
Save to disk physical memory dump starting at 'val' of size 'size'.
415 82a56f0d Luiz Capitulino
416 82a56f0d Luiz Capitulino
Arguments:
417 82a56f0d Luiz Capitulino
418 82a56f0d Luiz Capitulino
- "val": the starting address (json-int)
419 82a56f0d Luiz Capitulino
- "size": the memory size, in bytes (json-int)
420 82a56f0d Luiz Capitulino
- "filename": file path (json-string)
421 82a56f0d Luiz Capitulino
422 82a56f0d Luiz Capitulino
Example:
423 82a56f0d Luiz Capitulino
424 82a56f0d Luiz Capitulino
-> { "execute": "pmemsave",
425 82a56f0d Luiz Capitulino
             "arguments": { "val": 10,
426 82a56f0d Luiz Capitulino
                            "size": 100,
427 82a56f0d Luiz Capitulino
                            "filename": "/tmp/physical-mem-dump" } }
428 82a56f0d Luiz Capitulino
<- { "return": {} }
429 82a56f0d Luiz Capitulino
430 82a56f0d Luiz Capitulino
EQMP
431 82a56f0d Luiz Capitulino
432 82a56f0d Luiz Capitulino
    {
433 82a56f0d Luiz Capitulino
        .name       = "migrate",
434 82a56f0d Luiz Capitulino
        .args_type  = "detach:-d,blk:-b,inc:-i,uri:s",
435 82a56f0d Luiz Capitulino
        .params     = "[-d] [-b] [-i] uri",
436 82a56f0d Luiz Capitulino
        .help       = "migrate to URI (using -d to not wait for completion)"
437 82a56f0d Luiz Capitulino
		      "\n\t\t\t -b for migration without shared storage with"
438 82a56f0d Luiz Capitulino
		      " full copy of disk\n\t\t\t -i for migration without "
439 82a56f0d Luiz Capitulino
		      "shared storage with incremental copy of disk "
440 82a56f0d Luiz Capitulino
		      "(base image shared between src and destination)",
441 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,	
442 82a56f0d Luiz Capitulino
	.mhandler.cmd_new = do_migrate,
443 82a56f0d Luiz Capitulino
    },
444 82a56f0d Luiz Capitulino
445 82a56f0d Luiz Capitulino
SQMP
446 82a56f0d Luiz Capitulino
migrate
447 82a56f0d Luiz Capitulino
-------
448 82a56f0d Luiz Capitulino
449 82a56f0d Luiz Capitulino
Migrate to URI.
450 82a56f0d Luiz Capitulino
451 82a56f0d Luiz Capitulino
Arguments:
452 82a56f0d Luiz Capitulino
453 82a56f0d Luiz Capitulino
- "blk": block migration, full disk copy (json-bool, optional)
454 82a56f0d Luiz Capitulino
- "inc": incremental disk copy (json-bool, optional)
455 82a56f0d Luiz Capitulino
- "uri": Destination URI (json-string)
456 82a56f0d Luiz Capitulino
457 82a56f0d Luiz Capitulino
Example:
458 82a56f0d Luiz Capitulino
459 82a56f0d Luiz Capitulino
-> { "execute": "migrate", "arguments": { "uri": "tcp:0:4446" } }
460 82a56f0d Luiz Capitulino
<- { "return": {} }
461 82a56f0d Luiz Capitulino
462 82a56f0d Luiz Capitulino
Notes:
463 82a56f0d Luiz Capitulino
464 82a56f0d Luiz Capitulino
(1) The 'query-migrate' command should be used to check migration's progress
465 82a56f0d Luiz Capitulino
    and final result (this information is provided by the 'status' member)
466 82a56f0d Luiz Capitulino
(2) All boolean arguments default to false
467 82a56f0d Luiz Capitulino
(3) The user Monitor's "detach" argument is invalid in QMP and should not
468 82a56f0d Luiz Capitulino
    be used
469 82a56f0d Luiz Capitulino
470 82a56f0d Luiz Capitulino
EQMP
471 82a56f0d Luiz Capitulino
472 82a56f0d Luiz Capitulino
    {
473 82a56f0d Luiz Capitulino
        .name       = "migrate_cancel",
474 82a56f0d Luiz Capitulino
        .args_type  = "",
475 82a56f0d Luiz Capitulino
        .params     = "",
476 82a56f0d Luiz Capitulino
        .help       = "cancel the current VM migration",
477 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
478 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_migrate_cancel,
479 82a56f0d Luiz Capitulino
    },
480 82a56f0d Luiz Capitulino
481 82a56f0d Luiz Capitulino
SQMP
482 82a56f0d Luiz Capitulino
migrate_cancel
483 82a56f0d Luiz Capitulino
--------------
484 82a56f0d Luiz Capitulino
485 82a56f0d Luiz Capitulino
Cancel the current migration.
486 82a56f0d Luiz Capitulino
487 82a56f0d Luiz Capitulino
Arguments: None.
488 82a56f0d Luiz Capitulino
489 82a56f0d Luiz Capitulino
Example:
490 82a56f0d Luiz Capitulino
491 82a56f0d Luiz Capitulino
-> { "execute": "migrate_cancel" }
492 82a56f0d Luiz Capitulino
<- { "return": {} }
493 82a56f0d Luiz Capitulino
494 82a56f0d Luiz Capitulino
EQMP
495 82a56f0d Luiz Capitulino
496 82a56f0d Luiz Capitulino
    {
497 82a56f0d Luiz Capitulino
        .name       = "migrate_set_speed",
498 82a56f0d Luiz Capitulino
        .args_type  = "value:f",
499 82a56f0d Luiz Capitulino
        .params     = "value",
500 82a56f0d Luiz Capitulino
        .help       = "set maximum speed (in bytes) for migrations",
501 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
502 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_migrate_set_speed,
503 82a56f0d Luiz Capitulino
    },
504 82a56f0d Luiz Capitulino
505 82a56f0d Luiz Capitulino
SQMP
506 82a56f0d Luiz Capitulino
migrate_set_speed
507 82a56f0d Luiz Capitulino
-----------------
508 82a56f0d Luiz Capitulino
509 82a56f0d Luiz Capitulino
Set maximum speed for migrations.
510 82a56f0d Luiz Capitulino
511 82a56f0d Luiz Capitulino
Arguments:
512 82a56f0d Luiz Capitulino
513 82a56f0d Luiz Capitulino
- "value": maximum speed, in bytes per second (json-number)
514 82a56f0d Luiz Capitulino
515 82a56f0d Luiz Capitulino
Example:
516 82a56f0d Luiz Capitulino
517 82a56f0d Luiz Capitulino
-> { "execute": "migrate_set_speed", "arguments": { "value": 1024 } }
518 82a56f0d Luiz Capitulino
<- { "return": {} }
519 82a56f0d Luiz Capitulino
520 82a56f0d Luiz Capitulino
EQMP
521 82a56f0d Luiz Capitulino
522 82a56f0d Luiz Capitulino
    {
523 82a56f0d Luiz Capitulino
        .name       = "migrate_set_downtime",
524 82a56f0d Luiz Capitulino
        .args_type  = "value:T",
525 82a56f0d Luiz Capitulino
        .params     = "value",
526 82a56f0d Luiz Capitulino
        .help       = "set maximum tolerated downtime (in seconds) for migrations",
527 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
528 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_migrate_set_downtime,
529 82a56f0d Luiz Capitulino
    },
530 82a56f0d Luiz Capitulino
531 82a56f0d Luiz Capitulino
SQMP
532 82a56f0d Luiz Capitulino
migrate_set_downtime
533 82a56f0d Luiz Capitulino
--------------------
534 82a56f0d Luiz Capitulino
535 82a56f0d Luiz Capitulino
Set maximum tolerated downtime (in seconds) for migrations.
536 82a56f0d Luiz Capitulino
537 82a56f0d Luiz Capitulino
Arguments:
538 82a56f0d Luiz Capitulino
539 82a56f0d Luiz Capitulino
- "value": maximum downtime (json-number)
540 82a56f0d Luiz Capitulino
541 82a56f0d Luiz Capitulino
Example:
542 82a56f0d Luiz Capitulino
543 82a56f0d Luiz Capitulino
-> { "execute": "migrate_set_downtime", "arguments": { "value": 0.1 } }
544 82a56f0d Luiz Capitulino
<- { "return": {} }
545 82a56f0d Luiz Capitulino
546 82a56f0d Luiz Capitulino
EQMP
547 82a56f0d Luiz Capitulino
548 82a56f0d Luiz Capitulino
    {
549 82a56f0d Luiz Capitulino
        .name       = "netdev_add",
550 82a56f0d Luiz Capitulino
        .args_type  = "netdev:O",
551 82a56f0d Luiz Capitulino
        .params     = "[user|tap|socket],id=str[,prop=value][,...]",
552 82a56f0d Luiz Capitulino
        .help       = "add host network device",
553 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
554 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_netdev_add,
555 82a56f0d Luiz Capitulino
    },
556 82a56f0d Luiz Capitulino
557 82a56f0d Luiz Capitulino
SQMP
558 82a56f0d Luiz Capitulino
netdev_add
559 82a56f0d Luiz Capitulino
----------
560 82a56f0d Luiz Capitulino
561 82a56f0d Luiz Capitulino
Add host network device.
562 82a56f0d Luiz Capitulino
563 82a56f0d Luiz Capitulino
Arguments:
564 82a56f0d Luiz Capitulino
565 82a56f0d Luiz Capitulino
- "type": the device type, "tap", "user", ... (json-string)
566 82a56f0d Luiz Capitulino
- "id": the device's ID, must be unique (json-string)
567 82a56f0d Luiz Capitulino
- device options
568 82a56f0d Luiz Capitulino
569 82a56f0d Luiz Capitulino
Example:
570 82a56f0d Luiz Capitulino
571 82a56f0d Luiz Capitulino
-> { "execute": "netdev_add", "arguments": { "type": "user", "id": "netdev1" } }
572 82a56f0d Luiz Capitulino
<- { "return": {} }
573 82a56f0d Luiz Capitulino
574 82a56f0d Luiz Capitulino
Note: The supported device options are the same ones supported by the '-net'
575 82a56f0d Luiz Capitulino
      command-line argument, which are listed in the '-help' output or QEMU's
576 82a56f0d Luiz Capitulino
      manual
577 82a56f0d Luiz Capitulino
578 82a56f0d Luiz Capitulino
EQMP
579 82a56f0d Luiz Capitulino
580 82a56f0d Luiz Capitulino
    {
581 82a56f0d Luiz Capitulino
        .name       = "netdev_del",
582 82a56f0d Luiz Capitulino
        .args_type  = "id:s",
583 82a56f0d Luiz Capitulino
        .params     = "id",
584 82a56f0d Luiz Capitulino
        .help       = "remove host network device",
585 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
586 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_netdev_del,
587 82a56f0d Luiz Capitulino
    },
588 82a56f0d Luiz Capitulino
589 82a56f0d Luiz Capitulino
SQMP
590 82a56f0d Luiz Capitulino
netdev_del
591 82a56f0d Luiz Capitulino
----------
592 82a56f0d Luiz Capitulino
593 82a56f0d Luiz Capitulino
Remove host network device.
594 82a56f0d Luiz Capitulino
595 82a56f0d Luiz Capitulino
Arguments:
596 82a56f0d Luiz Capitulino
597 82a56f0d Luiz Capitulino
- "id": the device's ID, must be unique (json-string)
598 82a56f0d Luiz Capitulino
599 82a56f0d Luiz Capitulino
Example:
600 82a56f0d Luiz Capitulino
601 82a56f0d Luiz Capitulino
-> { "execute": "netdev_del", "arguments": { "id": "netdev1" } }
602 82a56f0d Luiz Capitulino
<- { "return": {} }
603 82a56f0d Luiz Capitulino
604 82a56f0d Luiz Capitulino
EQMP
605 82a56f0d Luiz Capitulino
606 82a56f0d Luiz Capitulino
    {
607 82a56f0d Luiz Capitulino
        .name       = "balloon",
608 82a56f0d Luiz Capitulino
        .args_type  = "value:M",
609 82a56f0d Luiz Capitulino
        .params     = "target",
610 82a56f0d Luiz Capitulino
        .help       = "request VM to change its memory allocation (in MB)",
611 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
612 82a56f0d Luiz Capitulino
        .mhandler.cmd_async = do_balloon,
613 82a56f0d Luiz Capitulino
        .flags      = MONITOR_CMD_ASYNC,
614 82a56f0d Luiz Capitulino
    },
615 82a56f0d Luiz Capitulino
616 82a56f0d Luiz Capitulino
SQMP
617 82a56f0d Luiz Capitulino
balloon
618 82a56f0d Luiz Capitulino
-------
619 82a56f0d Luiz Capitulino
620 82a56f0d Luiz Capitulino
Request VM to change its memory allocation (in bytes).
621 82a56f0d Luiz Capitulino
622 82a56f0d Luiz Capitulino
Arguments:
623 82a56f0d Luiz Capitulino
624 82a56f0d Luiz Capitulino
- "value": New memory allocation (json-int)
625 82a56f0d Luiz Capitulino
626 82a56f0d Luiz Capitulino
Example:
627 82a56f0d Luiz Capitulino
628 82a56f0d Luiz Capitulino
-> { "execute": "balloon", "arguments": { "value": 536870912 } }
629 82a56f0d Luiz Capitulino
<- { "return": {} }
630 82a56f0d Luiz Capitulino
631 82a56f0d Luiz Capitulino
EQMP
632 82a56f0d Luiz Capitulino
633 82a56f0d Luiz Capitulino
    {
634 82a56f0d Luiz Capitulino
        .name       = "set_link",
635 82a56f0d Luiz Capitulino
        .args_type  = "name:s,up:b",
636 82a56f0d Luiz Capitulino
        .params     = "name on|off",
637 82a56f0d Luiz Capitulino
        .help       = "change the link status of a network adapter",
638 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
639 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_set_link,
640 82a56f0d Luiz Capitulino
    },
641 82a56f0d Luiz Capitulino
642 82a56f0d Luiz Capitulino
SQMP
643 82a56f0d Luiz Capitulino
set_link
644 82a56f0d Luiz Capitulino
--------
645 82a56f0d Luiz Capitulino
646 82a56f0d Luiz Capitulino
Change the link status of a network adapter.
647 82a56f0d Luiz Capitulino
648 82a56f0d Luiz Capitulino
Arguments:
649 82a56f0d Luiz Capitulino
650 82a56f0d Luiz Capitulino
- "name": network device name (json-string)
651 82a56f0d Luiz Capitulino
- "up": status is up (json-bool)
652 82a56f0d Luiz Capitulino
653 82a56f0d Luiz Capitulino
Example:
654 82a56f0d Luiz Capitulino
655 82a56f0d Luiz Capitulino
-> { "execute": "set_link", "arguments": { "name": "e1000.0", "up": false } }
656 82a56f0d Luiz Capitulino
<- { "return": {} }
657 82a56f0d Luiz Capitulino
658 82a56f0d Luiz Capitulino
EQMP
659 82a56f0d Luiz Capitulino
660 82a56f0d Luiz Capitulino
    {
661 82a56f0d Luiz Capitulino
        .name       = "getfd",
662 82a56f0d Luiz Capitulino
        .args_type  = "fdname:s",
663 82a56f0d Luiz Capitulino
        .params     = "getfd name",
664 82a56f0d Luiz Capitulino
        .help       = "receive a file descriptor via SCM rights and assign it a name",
665 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
666 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_getfd,
667 82a56f0d Luiz Capitulino
    },
668 82a56f0d Luiz Capitulino
669 82a56f0d Luiz Capitulino
SQMP
670 82a56f0d Luiz Capitulino
getfd
671 82a56f0d Luiz Capitulino
-----
672 82a56f0d Luiz Capitulino
673 82a56f0d Luiz Capitulino
Receive a file descriptor via SCM rights and assign it a name.
674 82a56f0d Luiz Capitulino
675 82a56f0d Luiz Capitulino
Arguments:
676 82a56f0d Luiz Capitulino
677 82a56f0d Luiz Capitulino
- "fdname": file descriptor name (json-string)
678 82a56f0d Luiz Capitulino
679 82a56f0d Luiz Capitulino
Example:
680 82a56f0d Luiz Capitulino
681 82a56f0d Luiz Capitulino
-> { "execute": "getfd", "arguments": { "fdname": "fd1" } }
682 82a56f0d Luiz Capitulino
<- { "return": {} }
683 82a56f0d Luiz Capitulino
684 82a56f0d Luiz Capitulino
EQMP
685 82a56f0d Luiz Capitulino
686 82a56f0d Luiz Capitulino
    {
687 82a56f0d Luiz Capitulino
        .name       = "closefd",
688 82a56f0d Luiz Capitulino
        .args_type  = "fdname:s",
689 82a56f0d Luiz Capitulino
        .params     = "closefd name",
690 82a56f0d Luiz Capitulino
        .help       = "close a file descriptor previously passed via SCM rights",
691 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
692 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_closefd,
693 82a56f0d Luiz Capitulino
    },
694 82a56f0d Luiz Capitulino
695 82a56f0d Luiz Capitulino
SQMP
696 82a56f0d Luiz Capitulino
closefd
697 82a56f0d Luiz Capitulino
-------
698 82a56f0d Luiz Capitulino
699 82a56f0d Luiz Capitulino
Close a file descriptor previously passed via SCM rights.
700 82a56f0d Luiz Capitulino
701 82a56f0d Luiz Capitulino
Arguments:
702 82a56f0d Luiz Capitulino
703 82a56f0d Luiz Capitulino
- "fdname": file descriptor name (json-string)
704 82a56f0d Luiz Capitulino
705 82a56f0d Luiz Capitulino
Example:
706 82a56f0d Luiz Capitulino
707 82a56f0d Luiz Capitulino
-> { "execute": "closefd", "arguments": { "fdname": "fd1" } }
708 82a56f0d Luiz Capitulino
<- { "return": {} }
709 82a56f0d Luiz Capitulino
710 82a56f0d Luiz Capitulino
EQMP
711 82a56f0d Luiz Capitulino
712 82a56f0d Luiz Capitulino
    {
713 82a56f0d Luiz Capitulino
        .name       = "block_passwd",
714 82a56f0d Luiz Capitulino
        .args_type  = "device:B,password:s",
715 82a56f0d Luiz Capitulino
        .params     = "block_passwd device password",
716 82a56f0d Luiz Capitulino
        .help       = "set the password of encrypted block devices",
717 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
718 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_block_set_passwd,
719 82a56f0d Luiz Capitulino
    },
720 82a56f0d Luiz Capitulino
721 82a56f0d Luiz Capitulino
SQMP
722 82a56f0d Luiz Capitulino
block_passwd
723 82a56f0d Luiz Capitulino
------------
724 82a56f0d Luiz Capitulino
725 82a56f0d Luiz Capitulino
Set the password of encrypted block devices.
726 82a56f0d Luiz Capitulino
727 82a56f0d Luiz Capitulino
Arguments:
728 82a56f0d Luiz Capitulino
729 82a56f0d Luiz Capitulino
- "device": device name (json-string)
730 82a56f0d Luiz Capitulino
- "password": password (json-string)
731 82a56f0d Luiz Capitulino
732 82a56f0d Luiz Capitulino
Example:
733 82a56f0d Luiz Capitulino
734 82a56f0d Luiz Capitulino
-> { "execute": "block_passwd", "arguments": { "device": "ide0-hd0",
735 82a56f0d Luiz Capitulino
                                               "password": "12345" } }
736 82a56f0d Luiz Capitulino
<- { "return": {} }
737 82a56f0d Luiz Capitulino
738 82a56f0d Luiz Capitulino
EQMP
739 82a56f0d Luiz Capitulino
740 82a56f0d Luiz Capitulino
    {
741 82a56f0d Luiz Capitulino
        .name       = "qmp_capabilities",
742 82a56f0d Luiz Capitulino
        .args_type  = "",
743 82a56f0d Luiz Capitulino
        .params     = "",
744 82a56f0d Luiz Capitulino
        .help       = "enable QMP capabilities",
745 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
746 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_qmp_capabilities,
747 82a56f0d Luiz Capitulino
    },
748 82a56f0d Luiz Capitulino
749 82a56f0d Luiz Capitulino
SQMP
750 82a56f0d Luiz Capitulino
qmp_capabilities
751 82a56f0d Luiz Capitulino
----------------
752 82a56f0d Luiz Capitulino
753 82a56f0d Luiz Capitulino
Enable QMP capabilities.
754 82a56f0d Luiz Capitulino
755 82a56f0d Luiz Capitulino
Arguments: None.
756 82a56f0d Luiz Capitulino
757 82a56f0d Luiz Capitulino
Example:
758 82a56f0d Luiz Capitulino
759 82a56f0d Luiz Capitulino
-> { "execute": "qmp_capabilities" }
760 82a56f0d Luiz Capitulino
<- { "return": {} }
761 82a56f0d Luiz Capitulino
762 82a56f0d Luiz Capitulino
Note: This command must be issued before issuing any other command.
763 82a56f0d Luiz Capitulino
764 82a56f0d Luiz Capitulino
3. Query Commands
765 82a56f0d Luiz Capitulino
=================
766 82a56f0d Luiz Capitulino
767 82a56f0d Luiz Capitulino
HXCOMM Each query command below is inside a SQMP/EQMP section, do NOT change
768 82a56f0d Luiz Capitulino
HXCOMM this! We will possibly move query commands definitions inside those
769 82a56f0d Luiz Capitulino
HXCOMM sections, just like regular commands.
770 82a56f0d Luiz Capitulino
771 82a56f0d Luiz Capitulino
EQMP
772 82a56f0d Luiz Capitulino
773 82a56f0d Luiz Capitulino
SQMP
774 82a56f0d Luiz Capitulino
query-version
775 82a56f0d Luiz Capitulino
-------------
776 82a56f0d Luiz Capitulino
777 82a56f0d Luiz Capitulino
Show QEMU version.
778 82a56f0d Luiz Capitulino
779 82a56f0d Luiz Capitulino
Return a json-object with the following information:
780 82a56f0d Luiz Capitulino
781 82a56f0d Luiz Capitulino
- "qemu": A json-object containing three integer values:
782 82a56f0d Luiz Capitulino
    - "major": QEMU's major version (json-int)
783 82a56f0d Luiz Capitulino
    - "minor": QEMU's minor version (json-int)
784 82a56f0d Luiz Capitulino
    - "micro": QEMU's micro version (json-int)
785 82a56f0d Luiz Capitulino
- "package": package's version (json-string)
786 82a56f0d Luiz Capitulino
787 82a56f0d Luiz Capitulino
Example:
788 82a56f0d Luiz Capitulino
789 82a56f0d Luiz Capitulino
-> { "execute": "query-version" }
790 82a56f0d Luiz Capitulino
<- {
791 82a56f0d Luiz Capitulino
      "return":{
792 82a56f0d Luiz Capitulino
         "qemu":{
793 82a56f0d Luiz Capitulino
            "major":0,
794 82a56f0d Luiz Capitulino
            "minor":11,
795 82a56f0d Luiz Capitulino
            "micro":5
796 82a56f0d Luiz Capitulino
         },
797 82a56f0d Luiz Capitulino
         "package":""
798 82a56f0d Luiz Capitulino
      }
799 82a56f0d Luiz Capitulino
   }
800 82a56f0d Luiz Capitulino
801 82a56f0d Luiz Capitulino
EQMP
802 82a56f0d Luiz Capitulino
803 82a56f0d Luiz Capitulino
SQMP
804 82a56f0d Luiz Capitulino
query-commands
805 82a56f0d Luiz Capitulino
--------------
806 82a56f0d Luiz Capitulino
807 82a56f0d Luiz Capitulino
List QMP available commands.
808 82a56f0d Luiz Capitulino
809 82a56f0d Luiz Capitulino
Each command is represented by a json-object, the returned value is a json-array
810 82a56f0d Luiz Capitulino
of all commands.
811 82a56f0d Luiz Capitulino
812 82a56f0d Luiz Capitulino
Each json-object contain:
813 82a56f0d Luiz Capitulino
814 82a56f0d Luiz Capitulino
- "name": command's name (json-string)
815 82a56f0d Luiz Capitulino
816 82a56f0d Luiz Capitulino
Example:
817 82a56f0d Luiz Capitulino
818 82a56f0d Luiz Capitulino
-> { "execute": "query-commands" }
819 82a56f0d Luiz Capitulino
<- {
820 82a56f0d Luiz Capitulino
      "return":[
821 82a56f0d Luiz Capitulino
         {
822 82a56f0d Luiz Capitulino
            "name":"query-balloon"
823 82a56f0d Luiz Capitulino
         },
824 82a56f0d Luiz Capitulino
         {
825 82a56f0d Luiz Capitulino
            "name":"system_powerdown"
826 82a56f0d Luiz Capitulino
         }
827 82a56f0d Luiz Capitulino
      ]
828 82a56f0d Luiz Capitulino
   }
829 82a56f0d Luiz Capitulino
830 82a56f0d Luiz Capitulino
Note: This example has been shortened as the real response is too long.
831 82a56f0d Luiz Capitulino
832 82a56f0d Luiz Capitulino
EQMP
833 82a56f0d Luiz Capitulino
834 82a56f0d Luiz Capitulino
SQMP
835 82a56f0d Luiz Capitulino
query-chardev
836 82a56f0d Luiz Capitulino
-------------
837 82a56f0d Luiz Capitulino
838 82a56f0d Luiz Capitulino
Each device is represented by a json-object. The returned value is a json-array
839 82a56f0d Luiz Capitulino
of all devices.
840 82a56f0d Luiz Capitulino
841 82a56f0d Luiz Capitulino
Each json-object contain the following:
842 82a56f0d Luiz Capitulino
843 82a56f0d Luiz Capitulino
- "label": device's label (json-string)
844 82a56f0d Luiz Capitulino
- "filename": device's file (json-string)
845 82a56f0d Luiz Capitulino
846 82a56f0d Luiz Capitulino
Example:
847 82a56f0d Luiz Capitulino
848 82a56f0d Luiz Capitulino
-> { "execute": "query-chardev" }
849 82a56f0d Luiz Capitulino
<- {
850 82a56f0d Luiz Capitulino
      "return":[
851 82a56f0d Luiz Capitulino
         {
852 82a56f0d Luiz Capitulino
            "label":"monitor",
853 82a56f0d Luiz Capitulino
            "filename":"stdio"
854 82a56f0d Luiz Capitulino
         },
855 82a56f0d Luiz Capitulino
         {
856 82a56f0d Luiz Capitulino
            "label":"serial0",
857 82a56f0d Luiz Capitulino
            "filename":"vc"
858 82a56f0d Luiz Capitulino
         }
859 82a56f0d Luiz Capitulino
      ]
860 82a56f0d Luiz Capitulino
   }
861 82a56f0d Luiz Capitulino
862 82a56f0d Luiz Capitulino
EQMP
863 82a56f0d Luiz Capitulino
864 82a56f0d Luiz Capitulino
SQMP
865 82a56f0d Luiz Capitulino
query-block
866 82a56f0d Luiz Capitulino
-----------
867 82a56f0d Luiz Capitulino
868 82a56f0d Luiz Capitulino
Show the block devices.
869 82a56f0d Luiz Capitulino
870 82a56f0d Luiz Capitulino
Each block device information is stored in a json-object and the returned value
871 82a56f0d Luiz Capitulino
is a json-array of all devices.
872 82a56f0d Luiz Capitulino
873 82a56f0d Luiz Capitulino
Each json-object contain the following:
874 82a56f0d Luiz Capitulino
875 82a56f0d Luiz Capitulino
- "device": device name (json-string)
876 82a56f0d Luiz Capitulino
- "type": device type (json-string)
877 82a56f0d Luiz Capitulino
         - Possible values: "hd", "cdrom", "floppy", "unknown"
878 82a56f0d Luiz Capitulino
- "removable": true if the device is removable, false otherwise (json-bool)
879 82a56f0d Luiz Capitulino
- "locked": true if the device is locked, false otherwise (json-bool)
880 82a56f0d Luiz Capitulino
- "inserted": only present if the device is inserted, it is a json-object
881 82a56f0d Luiz Capitulino
   containing the following:
882 82a56f0d Luiz Capitulino
         - "file": device file name (json-string)
883 82a56f0d Luiz Capitulino
         - "ro": true if read-only, false otherwise (json-bool)
884 82a56f0d Luiz Capitulino
         - "drv": driver format name (json-string)
885 82a56f0d Luiz Capitulino
             - Possible values: "blkdebug", "bochs", "cloop", "cow", "dmg",
886 82a56f0d Luiz Capitulino
                                "file", "file", "ftp", "ftps", "host_cdrom",
887 82a56f0d Luiz Capitulino
                                "host_device", "host_floppy", "http", "https",
888 82a56f0d Luiz Capitulino
                                "nbd", "parallels", "qcow", "qcow2", "raw",
889 82a56f0d Luiz Capitulino
                                "tftp", "vdi", "vmdk", "vpc", "vvfat"
890 82a56f0d Luiz Capitulino
         - "backing_file": backing file name (json-string, optional)
891 82a56f0d Luiz Capitulino
         - "encrypted": true if encrypted, false otherwise (json-bool)
892 82a56f0d Luiz Capitulino
893 82a56f0d Luiz Capitulino
Example:
894 82a56f0d Luiz Capitulino
895 82a56f0d Luiz Capitulino
-> { "execute": "query-block" }
896 82a56f0d Luiz Capitulino
<- {
897 82a56f0d Luiz Capitulino
      "return":[
898 82a56f0d Luiz Capitulino
         {
899 82a56f0d Luiz Capitulino
            "device":"ide0-hd0",
900 82a56f0d Luiz Capitulino
            "locked":false,
901 82a56f0d Luiz Capitulino
            "removable":false,
902 82a56f0d Luiz Capitulino
            "inserted":{
903 82a56f0d Luiz Capitulino
               "ro":false,
904 82a56f0d Luiz Capitulino
               "drv":"qcow2",
905 82a56f0d Luiz Capitulino
               "encrypted":false,
906 82a56f0d Luiz Capitulino
               "file":"disks/test.img"
907 82a56f0d Luiz Capitulino
            },
908 82a56f0d Luiz Capitulino
            "type":"hd"
909 82a56f0d Luiz Capitulino
         },
910 82a56f0d Luiz Capitulino
         {
911 82a56f0d Luiz Capitulino
            "device":"ide1-cd0",
912 82a56f0d Luiz Capitulino
            "locked":false,
913 82a56f0d Luiz Capitulino
            "removable":true,
914 82a56f0d Luiz Capitulino
            "type":"cdrom"
915 82a56f0d Luiz Capitulino
         },
916 82a56f0d Luiz Capitulino
         {
917 82a56f0d Luiz Capitulino
            "device":"floppy0",
918 82a56f0d Luiz Capitulino
            "locked":false,
919 82a56f0d Luiz Capitulino
            "removable":true,
920 82a56f0d Luiz Capitulino
            "type": "floppy"
921 82a56f0d Luiz Capitulino
         },
922 82a56f0d Luiz Capitulino
         {
923 82a56f0d Luiz Capitulino
            "device":"sd0",
924 82a56f0d Luiz Capitulino
            "locked":false,
925 82a56f0d Luiz Capitulino
            "removable":true,
926 82a56f0d Luiz Capitulino
            "type":"floppy"
927 82a56f0d Luiz Capitulino
         }
928 82a56f0d Luiz Capitulino
      ]
929 82a56f0d Luiz Capitulino
   }
930 82a56f0d Luiz Capitulino
931 82a56f0d Luiz Capitulino
EQMP
932 82a56f0d Luiz Capitulino
933 82a56f0d Luiz Capitulino
SQMP
934 82a56f0d Luiz Capitulino
query-blockstats
935 82a56f0d Luiz Capitulino
----------------
936 82a56f0d Luiz Capitulino
937 82a56f0d Luiz Capitulino
Show block device statistics.
938 82a56f0d Luiz Capitulino
939 82a56f0d Luiz Capitulino
Each device statistic information is stored in a json-object and the returned
940 82a56f0d Luiz Capitulino
value is a json-array of all devices.
941 82a56f0d Luiz Capitulino
942 82a56f0d Luiz Capitulino
Each json-object contain the following:
943 82a56f0d Luiz Capitulino
944 82a56f0d Luiz Capitulino
- "device": device name (json-string)
945 82a56f0d Luiz Capitulino
- "stats": A json-object with the statistics information, it contains:
946 82a56f0d Luiz Capitulino
    - "rd_bytes": bytes read (json-int)
947 82a56f0d Luiz Capitulino
    - "wr_bytes": bytes written (json-int)
948 82a56f0d Luiz Capitulino
    - "rd_operations": read operations (json-int)
949 82a56f0d Luiz Capitulino
    - "wr_operations": write operations (json-int)
950 82a56f0d Luiz Capitulino
    - "wr_highest_offset": Highest offset of a sector written since the
951 82a56f0d Luiz Capitulino
                           BlockDriverState has been opened (json-int)
952 82a56f0d Luiz Capitulino
- "parent": Contains recursively the statistics of the underlying
953 82a56f0d Luiz Capitulino
            protocol (e.g. the host file for a qcow2 image). If there is
954 82a56f0d Luiz Capitulino
            no underlying protocol, this field is omitted
955 82a56f0d Luiz Capitulino
            (json-object, optional)
956 82a56f0d Luiz Capitulino
957 82a56f0d Luiz Capitulino
Example:
958 82a56f0d Luiz Capitulino
959 82a56f0d Luiz Capitulino
-> { "execute": "query-blockstats" }
960 82a56f0d Luiz Capitulino
<- {
961 82a56f0d Luiz Capitulino
      "return":[
962 82a56f0d Luiz Capitulino
         {
963 82a56f0d Luiz Capitulino
            "device":"ide0-hd0",
964 82a56f0d Luiz Capitulino
            "parent":{
965 82a56f0d Luiz Capitulino
               "stats":{
966 82a56f0d Luiz Capitulino
                  "wr_highest_offset":3686448128,
967 82a56f0d Luiz Capitulino
                  "wr_bytes":9786368,
968 82a56f0d Luiz Capitulino
                  "wr_operations":751,
969 82a56f0d Luiz Capitulino
                  "rd_bytes":122567168,
970 82a56f0d Luiz Capitulino
                  "rd_operations":36772
971 82a56f0d Luiz Capitulino
               }
972 82a56f0d Luiz Capitulino
            },
973 82a56f0d Luiz Capitulino
            "stats":{
974 82a56f0d Luiz Capitulino
               "wr_highest_offset":2821110784,
975 82a56f0d Luiz Capitulino
               "wr_bytes":9786368,
976 82a56f0d Luiz Capitulino
               "wr_operations":692,
977 82a56f0d Luiz Capitulino
               "rd_bytes":122739200,
978 82a56f0d Luiz Capitulino
               "rd_operations":36604
979 82a56f0d Luiz Capitulino
            }
980 82a56f0d Luiz Capitulino
         },
981 82a56f0d Luiz Capitulino
         {
982 82a56f0d Luiz Capitulino
            "device":"ide1-cd0",
983 82a56f0d Luiz Capitulino
            "stats":{
984 82a56f0d Luiz Capitulino
               "wr_highest_offset":0,
985 82a56f0d Luiz Capitulino
               "wr_bytes":0,
986 82a56f0d Luiz Capitulino
               "wr_operations":0,
987 82a56f0d Luiz Capitulino
               "rd_bytes":0,
988 82a56f0d Luiz Capitulino
               "rd_operations":0
989 82a56f0d Luiz Capitulino
            }
990 82a56f0d Luiz Capitulino
         },
991 82a56f0d Luiz Capitulino
         {
992 82a56f0d Luiz Capitulino
            "device":"floppy0",
993 82a56f0d Luiz Capitulino
            "stats":{
994 82a56f0d Luiz Capitulino
               "wr_highest_offset":0,
995 82a56f0d Luiz Capitulino
               "wr_bytes":0,
996 82a56f0d Luiz Capitulino
               "wr_operations":0,
997 82a56f0d Luiz Capitulino
               "rd_bytes":0,
998 82a56f0d Luiz Capitulino
               "rd_operations":0
999 82a56f0d Luiz Capitulino
            }
1000 82a56f0d Luiz Capitulino
         },
1001 82a56f0d Luiz Capitulino
         {
1002 82a56f0d Luiz Capitulino
            "device":"sd0",
1003 82a56f0d Luiz Capitulino
            "stats":{
1004 82a56f0d Luiz Capitulino
               "wr_highest_offset":0,
1005 82a56f0d Luiz Capitulino
               "wr_bytes":0,
1006 82a56f0d Luiz Capitulino
               "wr_operations":0,
1007 82a56f0d Luiz Capitulino
               "rd_bytes":0,
1008 82a56f0d Luiz Capitulino
               "rd_operations":0
1009 82a56f0d Luiz Capitulino
            }
1010 82a56f0d Luiz Capitulino
         }
1011 82a56f0d Luiz Capitulino
      ]
1012 82a56f0d Luiz Capitulino
   }
1013 82a56f0d Luiz Capitulino
1014 82a56f0d Luiz Capitulino
EQMP
1015 82a56f0d Luiz Capitulino
1016 82a56f0d Luiz Capitulino
SQMP
1017 82a56f0d Luiz Capitulino
query-cpus
1018 82a56f0d Luiz Capitulino
----------
1019 82a56f0d Luiz Capitulino
1020 82a56f0d Luiz Capitulino
Show CPU information.
1021 82a56f0d Luiz Capitulino
1022 82a56f0d Luiz Capitulino
Return a json-array. Each CPU is represented by a json-object, which contains:
1023 82a56f0d Luiz Capitulino
1024 82a56f0d Luiz Capitulino
- "CPU": CPU index (json-int)
1025 82a56f0d Luiz Capitulino
- "current": true if this is the current CPU, false otherwise (json-bool)
1026 82a56f0d Luiz Capitulino
- "halted": true if the cpu is halted, false otherwise (json-bool)
1027 82a56f0d Luiz Capitulino
- Current program counter. The key's name depends on the architecture:
1028 82a56f0d Luiz Capitulino
     "pc": i386/x86_64 (json-int)
1029 82a56f0d Luiz Capitulino
     "nip": PPC (json-int)
1030 82a56f0d Luiz Capitulino
     "pc" and "npc": sparc (json-int)
1031 82a56f0d Luiz Capitulino
     "PC": mips (json-int)
1032 82a56f0d Luiz Capitulino
1033 82a56f0d Luiz Capitulino
Example:
1034 82a56f0d Luiz Capitulino
1035 82a56f0d Luiz Capitulino
-> { "execute": "query-cpus" }
1036 82a56f0d Luiz Capitulino
<- {
1037 82a56f0d Luiz Capitulino
      "return":[
1038 82a56f0d Luiz Capitulino
         {
1039 82a56f0d Luiz Capitulino
            "CPU":0,
1040 82a56f0d Luiz Capitulino
            "current":true,
1041 82a56f0d Luiz Capitulino
            "halted":false,
1042 82a56f0d Luiz Capitulino
            "pc":3227107138
1043 82a56f0d Luiz Capitulino
         },
1044 82a56f0d Luiz Capitulino
         {
1045 82a56f0d Luiz Capitulino
            "CPU":1,
1046 82a56f0d Luiz Capitulino
            "current":false,
1047 82a56f0d Luiz Capitulino
            "halted":true,
1048 82a56f0d Luiz Capitulino
            "pc":7108165
1049 82a56f0d Luiz Capitulino
         }
1050 82a56f0d Luiz Capitulino
      ]
1051 82a56f0d Luiz Capitulino
   }
1052 82a56f0d Luiz Capitulino
1053 82a56f0d Luiz Capitulino
EQMP
1054 82a56f0d Luiz Capitulino
1055 82a56f0d Luiz Capitulino
SQMP
1056 82a56f0d Luiz Capitulino
query-pci
1057 82a56f0d Luiz Capitulino
---------
1058 82a56f0d Luiz Capitulino
1059 82a56f0d Luiz Capitulino
PCI buses and devices information.
1060 82a56f0d Luiz Capitulino
1061 82a56f0d Luiz Capitulino
The returned value is a json-array of all buses. Each bus is represented by
1062 82a56f0d Luiz Capitulino
a json-object, which has a key with a json-array of all PCI devices attached
1063 82a56f0d Luiz Capitulino
to it. Each device is represented by a json-object.
1064 82a56f0d Luiz Capitulino
1065 82a56f0d Luiz Capitulino
The bus json-object contains the following:
1066 82a56f0d Luiz Capitulino
1067 82a56f0d Luiz Capitulino
- "bus": bus number (json-int)
1068 82a56f0d Luiz Capitulino
- "devices": a json-array of json-objects, each json-object represents a
1069 82a56f0d Luiz Capitulino
             PCI device
1070 82a56f0d Luiz Capitulino
1071 82a56f0d Luiz Capitulino
The PCI device json-object contains the following:
1072 82a56f0d Luiz Capitulino
1073 82a56f0d Luiz Capitulino
- "bus": identical to the parent's bus number (json-int)
1074 82a56f0d Luiz Capitulino
- "slot": slot number (json-int)
1075 82a56f0d Luiz Capitulino
- "function": function number (json-int)
1076 82a56f0d Luiz Capitulino
- "class_info": a json-object containing:
1077 82a56f0d Luiz Capitulino
     - "desc": device class description (json-string, optional)
1078 82a56f0d Luiz Capitulino
     - "class": device class number (json-int)
1079 82a56f0d Luiz Capitulino
- "id": a json-object containing:
1080 82a56f0d Luiz Capitulino
     - "device": device ID (json-int)
1081 82a56f0d Luiz Capitulino
     - "vendor": vendor ID (json-int)
1082 82a56f0d Luiz Capitulino
- "irq": device's IRQ if assigned (json-int, optional)
1083 82a56f0d Luiz Capitulino
- "qdev_id": qdev id string (json-string)
1084 82a56f0d Luiz Capitulino
- "pci_bridge": It's a json-object, only present if this device is a
1085 82a56f0d Luiz Capitulino
                PCI bridge, contains:
1086 82a56f0d Luiz Capitulino
     - "bus": bus number (json-int)
1087 82a56f0d Luiz Capitulino
     - "secondary": secondary bus number (json-int)
1088 82a56f0d Luiz Capitulino
     - "subordinate": subordinate bus number (json-int)
1089 82a56f0d Luiz Capitulino
     - "io_range": I/O memory range information, a json-object with the
1090 82a56f0d Luiz Capitulino
                   following members:
1091 82a56f0d Luiz Capitulino
                 - "base": base address, in bytes (json-int)
1092 82a56f0d Luiz Capitulino
                 - "limit": limit address, in bytes (json-int)
1093 82a56f0d Luiz Capitulino
     - "memory_range": memory range information, a json-object with the
1094 82a56f0d Luiz Capitulino
                       following members:
1095 82a56f0d Luiz Capitulino
                 - "base": base address, in bytes (json-int)
1096 82a56f0d Luiz Capitulino
                 - "limit": limit address, in bytes (json-int)
1097 82a56f0d Luiz Capitulino
     - "prefetchable_range": Prefetchable memory range information, a
1098 82a56f0d Luiz Capitulino
                             json-object with the following members:
1099 82a56f0d Luiz Capitulino
                 - "base": base address, in bytes (json-int)
1100 82a56f0d Luiz Capitulino
                 - "limit": limit address, in bytes (json-int)
1101 82a56f0d Luiz Capitulino
     - "devices": a json-array of PCI devices if there's any attached, each
1102 82a56f0d Luiz Capitulino
                  each element is represented by a json-object, which contains
1103 82a56f0d Luiz Capitulino
                  the same members of the 'PCI device json-object' described
1104 82a56f0d Luiz Capitulino
                  above (optional)
1105 82a56f0d Luiz Capitulino
- "regions": a json-array of json-objects, each json-object represents a
1106 82a56f0d Luiz Capitulino
             memory region of this device
1107 82a56f0d Luiz Capitulino
1108 82a56f0d Luiz Capitulino
The memory range json-object contains the following:
1109 82a56f0d Luiz Capitulino
1110 82a56f0d Luiz Capitulino
- "base": base memory address (json-int)
1111 82a56f0d Luiz Capitulino
- "limit": limit value (json-int)
1112 82a56f0d Luiz Capitulino
1113 82a56f0d Luiz Capitulino
The region json-object can be an I/O region or a memory region, an I/O region
1114 82a56f0d Luiz Capitulino
json-object contains the following:
1115 82a56f0d Luiz Capitulino
1116 82a56f0d Luiz Capitulino
- "type": "io" (json-string, fixed)
1117 82a56f0d Luiz Capitulino
- "bar": BAR number (json-int)
1118 82a56f0d Luiz Capitulino
- "address": memory address (json-int)
1119 82a56f0d Luiz Capitulino
- "size": memory size (json-int)
1120 82a56f0d Luiz Capitulino
1121 82a56f0d Luiz Capitulino
A memory region json-object contains the following:
1122 82a56f0d Luiz Capitulino
1123 82a56f0d Luiz Capitulino
- "type": "memory" (json-string, fixed)
1124 82a56f0d Luiz Capitulino
- "bar": BAR number (json-int)
1125 82a56f0d Luiz Capitulino
- "address": memory address (json-int)
1126 82a56f0d Luiz Capitulino
- "size": memory size (json-int)
1127 82a56f0d Luiz Capitulino
- "mem_type_64": true or false (json-bool)
1128 82a56f0d Luiz Capitulino
- "prefetch": true or false (json-bool)
1129 82a56f0d Luiz Capitulino
1130 82a56f0d Luiz Capitulino
Example:
1131 82a56f0d Luiz Capitulino
1132 82a56f0d Luiz Capitulino
-> { "execute": "query-pci" }
1133 82a56f0d Luiz Capitulino
<- {
1134 82a56f0d Luiz Capitulino
      "return":[
1135 82a56f0d Luiz Capitulino
         {
1136 82a56f0d Luiz Capitulino
            "bus":0,
1137 82a56f0d Luiz Capitulino
            "devices":[
1138 82a56f0d Luiz Capitulino
               {
1139 82a56f0d Luiz Capitulino
                  "bus":0,
1140 82a56f0d Luiz Capitulino
                  "qdev_id":"",
1141 82a56f0d Luiz Capitulino
                  "slot":0,
1142 82a56f0d Luiz Capitulino
                  "class_info":{
1143 82a56f0d Luiz Capitulino
                     "class":1536,
1144 82a56f0d Luiz Capitulino
                     "desc":"Host bridge"
1145 82a56f0d Luiz Capitulino
                  },
1146 82a56f0d Luiz Capitulino
                  "id":{
1147 82a56f0d Luiz Capitulino
                     "device":32902,
1148 82a56f0d Luiz Capitulino
                     "vendor":4663
1149 82a56f0d Luiz Capitulino
                  },
1150 82a56f0d Luiz Capitulino
                  "function":0,
1151 82a56f0d Luiz Capitulino
                  "regions":[
1152 82a56f0d Luiz Capitulino
   
1153 82a56f0d Luiz Capitulino
                  ]
1154 82a56f0d Luiz Capitulino
               },
1155 82a56f0d Luiz Capitulino
               {
1156 82a56f0d Luiz Capitulino
                  "bus":0,
1157 82a56f0d Luiz Capitulino
                  "qdev_id":"",
1158 82a56f0d Luiz Capitulino
                  "slot":1,
1159 82a56f0d Luiz Capitulino
                  "class_info":{
1160 82a56f0d Luiz Capitulino
                     "class":1537,
1161 82a56f0d Luiz Capitulino
                     "desc":"ISA bridge"
1162 82a56f0d Luiz Capitulino
                  },
1163 82a56f0d Luiz Capitulino
                  "id":{
1164 82a56f0d Luiz Capitulino
                     "device":32902,
1165 82a56f0d Luiz Capitulino
                     "vendor":28672
1166 82a56f0d Luiz Capitulino
                  },
1167 82a56f0d Luiz Capitulino
                  "function":0,
1168 82a56f0d Luiz Capitulino
                  "regions":[
1169 82a56f0d Luiz Capitulino
   
1170 82a56f0d Luiz Capitulino
                  ]
1171 82a56f0d Luiz Capitulino
               },
1172 82a56f0d Luiz Capitulino
               {
1173 82a56f0d Luiz Capitulino
                  "bus":0,
1174 82a56f0d Luiz Capitulino
                  "qdev_id":"",
1175 82a56f0d Luiz Capitulino
                  "slot":1,
1176 82a56f0d Luiz Capitulino
                  "class_info":{
1177 82a56f0d Luiz Capitulino
                     "class":257,
1178 82a56f0d Luiz Capitulino
                     "desc":"IDE controller"
1179 82a56f0d Luiz Capitulino
                  },
1180 82a56f0d Luiz Capitulino
                  "id":{
1181 82a56f0d Luiz Capitulino
                     "device":32902,
1182 82a56f0d Luiz Capitulino
                     "vendor":28688
1183 82a56f0d Luiz Capitulino
                  },
1184 82a56f0d Luiz Capitulino
                  "function":1,
1185 82a56f0d Luiz Capitulino
                  "regions":[
1186 82a56f0d Luiz Capitulino
                     {
1187 82a56f0d Luiz Capitulino
                        "bar":4,
1188 82a56f0d Luiz Capitulino
                        "size":16,
1189 82a56f0d Luiz Capitulino
                        "address":49152,
1190 82a56f0d Luiz Capitulino
                        "type":"io"
1191 82a56f0d Luiz Capitulino
                     }
1192 82a56f0d Luiz Capitulino
                  ]
1193 82a56f0d Luiz Capitulino
               },
1194 82a56f0d Luiz Capitulino
               {
1195 82a56f0d Luiz Capitulino
                  "bus":0,
1196 82a56f0d Luiz Capitulino
                  "qdev_id":"",
1197 82a56f0d Luiz Capitulino
                  "slot":2,
1198 82a56f0d Luiz Capitulino
                  "class_info":{
1199 82a56f0d Luiz Capitulino
                     "class":768,
1200 82a56f0d Luiz Capitulino
                     "desc":"VGA controller"
1201 82a56f0d Luiz Capitulino
                  },
1202 82a56f0d Luiz Capitulino
                  "id":{
1203 82a56f0d Luiz Capitulino
                     "device":4115,
1204 82a56f0d Luiz Capitulino
                     "vendor":184
1205 82a56f0d Luiz Capitulino
                  },
1206 82a56f0d Luiz Capitulino
                  "function":0,
1207 82a56f0d Luiz Capitulino
                  "regions":[
1208 82a56f0d Luiz Capitulino
                     {
1209 82a56f0d Luiz Capitulino
                        "prefetch":true,
1210 82a56f0d Luiz Capitulino
                        "mem_type_64":false,
1211 82a56f0d Luiz Capitulino
                        "bar":0,
1212 82a56f0d Luiz Capitulino
                        "size":33554432,
1213 82a56f0d Luiz Capitulino
                        "address":4026531840,
1214 82a56f0d Luiz Capitulino
                        "type":"memory"
1215 82a56f0d Luiz Capitulino
                     },
1216 82a56f0d Luiz Capitulino
                     {
1217 82a56f0d Luiz Capitulino
                        "prefetch":false,
1218 82a56f0d Luiz Capitulino
                        "mem_type_64":false,
1219 82a56f0d Luiz Capitulino
                        "bar":1,
1220 82a56f0d Luiz Capitulino
                        "size":4096,
1221 82a56f0d Luiz Capitulino
                        "address":4060086272,
1222 82a56f0d Luiz Capitulino
                        "type":"memory"
1223 82a56f0d Luiz Capitulino
                     },
1224 82a56f0d Luiz Capitulino
                     {
1225 82a56f0d Luiz Capitulino
                        "prefetch":false,
1226 82a56f0d Luiz Capitulino
                        "mem_type_64":false,
1227 82a56f0d Luiz Capitulino
                        "bar":6,
1228 82a56f0d Luiz Capitulino
                        "size":65536,
1229 82a56f0d Luiz Capitulino
                        "address":-1,
1230 82a56f0d Luiz Capitulino
                        "type":"memory"
1231 82a56f0d Luiz Capitulino
                     }
1232 82a56f0d Luiz Capitulino
                  ]
1233 82a56f0d Luiz Capitulino
               },
1234 82a56f0d Luiz Capitulino
               {
1235 82a56f0d Luiz Capitulino
                  "bus":0,
1236 82a56f0d Luiz Capitulino
                  "qdev_id":"",
1237 82a56f0d Luiz Capitulino
                  "irq":11,
1238 82a56f0d Luiz Capitulino
                  "slot":4,
1239 82a56f0d Luiz Capitulino
                  "class_info":{
1240 82a56f0d Luiz Capitulino
                     "class":1280,
1241 82a56f0d Luiz Capitulino
                     "desc":"RAM controller"
1242 82a56f0d Luiz Capitulino
                  },
1243 82a56f0d Luiz Capitulino
                  "id":{
1244 82a56f0d Luiz Capitulino
                     "device":6900,
1245 82a56f0d Luiz Capitulino
                     "vendor":4098
1246 82a56f0d Luiz Capitulino
                  },
1247 82a56f0d Luiz Capitulino
                  "function":0,
1248 82a56f0d Luiz Capitulino
                  "regions":[
1249 82a56f0d Luiz Capitulino
                     {
1250 82a56f0d Luiz Capitulino
                        "bar":0,
1251 82a56f0d Luiz Capitulino
                        "size":32,
1252 82a56f0d Luiz Capitulino
                        "address":49280,
1253 82a56f0d Luiz Capitulino
                        "type":"io"
1254 82a56f0d Luiz Capitulino
                     }
1255 82a56f0d Luiz Capitulino
                  ]
1256 82a56f0d Luiz Capitulino
               }
1257 82a56f0d Luiz Capitulino
            ]
1258 82a56f0d Luiz Capitulino
         }
1259 82a56f0d Luiz Capitulino
      ]
1260 82a56f0d Luiz Capitulino
   }
1261 82a56f0d Luiz Capitulino
1262 82a56f0d Luiz Capitulino
Note: This example has been shortened as the real response is too long.
1263 82a56f0d Luiz Capitulino
1264 82a56f0d Luiz Capitulino
EQMP
1265 82a56f0d Luiz Capitulino
1266 82a56f0d Luiz Capitulino
SQMP
1267 82a56f0d Luiz Capitulino
query-kvm
1268 82a56f0d Luiz Capitulino
---------
1269 82a56f0d Luiz Capitulino
1270 82a56f0d Luiz Capitulino
Show KVM information.
1271 82a56f0d Luiz Capitulino
1272 82a56f0d Luiz Capitulino
Return a json-object with the following information:
1273 82a56f0d Luiz Capitulino
1274 82a56f0d Luiz Capitulino
- "enabled": true if KVM support is enabled, false otherwise (json-bool)
1275 82a56f0d Luiz Capitulino
- "present": true if QEMU has KVM support, false otherwise (json-bool)
1276 82a56f0d Luiz Capitulino
1277 82a56f0d Luiz Capitulino
Example:
1278 82a56f0d Luiz Capitulino
1279 82a56f0d Luiz Capitulino
-> { "execute": "query-kvm" }
1280 82a56f0d Luiz Capitulino
<- { "return": { "enabled": true, "present": true } }
1281 82a56f0d Luiz Capitulino
1282 82a56f0d Luiz Capitulino
EQMP
1283 82a56f0d Luiz Capitulino
1284 82a56f0d Luiz Capitulino
SQMP
1285 82a56f0d Luiz Capitulino
query-status
1286 82a56f0d Luiz Capitulino
------------
1287 82a56f0d Luiz Capitulino
1288 82a56f0d Luiz Capitulino
Return a json-object with the following information:
1289 82a56f0d Luiz Capitulino
1290 82a56f0d Luiz Capitulino
- "running": true if the VM is running, or false if it is paused (json-bool)
1291 82a56f0d Luiz Capitulino
- "singlestep": true if the VM is in single step mode,
1292 82a56f0d Luiz Capitulino
                false otherwise (json-bool)
1293 82a56f0d Luiz Capitulino
1294 82a56f0d Luiz Capitulino
Example:
1295 82a56f0d Luiz Capitulino
1296 82a56f0d Luiz Capitulino
-> { "execute": "query-status" }
1297 82a56f0d Luiz Capitulino
<- { "return": { "running": true, "singlestep": false } }
1298 82a56f0d Luiz Capitulino
1299 82a56f0d Luiz Capitulino
EQMP
1300 82a56f0d Luiz Capitulino
1301 82a56f0d Luiz Capitulino
SQMP
1302 82a56f0d Luiz Capitulino
query-mice
1303 82a56f0d Luiz Capitulino
----------
1304 82a56f0d Luiz Capitulino
1305 82a56f0d Luiz Capitulino
Show VM mice information.
1306 82a56f0d Luiz Capitulino
1307 82a56f0d Luiz Capitulino
Each mouse is represented by a json-object, the returned value is a json-array
1308 82a56f0d Luiz Capitulino
of all mice.
1309 82a56f0d Luiz Capitulino
1310 82a56f0d Luiz Capitulino
The mouse json-object contains the following:
1311 82a56f0d Luiz Capitulino
1312 82a56f0d Luiz Capitulino
- "name": mouse's name (json-string)
1313 82a56f0d Luiz Capitulino
- "index": mouse's index (json-int)
1314 82a56f0d Luiz Capitulino
- "current": true if this mouse is receiving events, false otherwise (json-bool)
1315 82a56f0d Luiz Capitulino
- "absolute": true if the mouse generates absolute input events (json-bool)
1316 82a56f0d Luiz Capitulino
1317 82a56f0d Luiz Capitulino
Example:
1318 82a56f0d Luiz Capitulino
1319 82a56f0d Luiz Capitulino
-> { "execute": "query-mice" }
1320 82a56f0d Luiz Capitulino
<- {
1321 82a56f0d Luiz Capitulino
      "return":[
1322 82a56f0d Luiz Capitulino
         {
1323 82a56f0d Luiz Capitulino
            "name":"QEMU Microsoft Mouse",
1324 82a56f0d Luiz Capitulino
            "index":0,
1325 82a56f0d Luiz Capitulino
            "current":false,
1326 82a56f0d Luiz Capitulino
            "absolute":false
1327 82a56f0d Luiz Capitulino
         },
1328 82a56f0d Luiz Capitulino
         {
1329 82a56f0d Luiz Capitulino
            "name":"QEMU PS/2 Mouse",
1330 82a56f0d Luiz Capitulino
            "index":1,
1331 82a56f0d Luiz Capitulino
            "current":true,
1332 82a56f0d Luiz Capitulino
            "absolute":true
1333 82a56f0d Luiz Capitulino
         }
1334 82a56f0d Luiz Capitulino
      ]
1335 82a56f0d Luiz Capitulino
   }
1336 82a56f0d Luiz Capitulino
1337 82a56f0d Luiz Capitulino
EQMP
1338 82a56f0d Luiz Capitulino
1339 82a56f0d Luiz Capitulino
SQMP
1340 82a56f0d Luiz Capitulino
query-vnc
1341 82a56f0d Luiz Capitulino
---------
1342 82a56f0d Luiz Capitulino
1343 82a56f0d Luiz Capitulino
Show VNC server information.
1344 82a56f0d Luiz Capitulino
1345 82a56f0d Luiz Capitulino
Return a json-object with server information. Connected clients are returned
1346 82a56f0d Luiz Capitulino
as a json-array of json-objects.
1347 82a56f0d Luiz Capitulino
1348 82a56f0d Luiz Capitulino
The main json-object contains the following:
1349 82a56f0d Luiz Capitulino
1350 82a56f0d Luiz Capitulino
- "enabled": true or false (json-bool)
1351 82a56f0d Luiz Capitulino
- "host": server's IP address (json-string)
1352 82a56f0d Luiz Capitulino
- "family": address family (json-string)
1353 82a56f0d Luiz Capitulino
         - Possible values: "ipv4", "ipv6", "unix", "unknown"
1354 82a56f0d Luiz Capitulino
- "service": server's port number (json-string)
1355 82a56f0d Luiz Capitulino
- "auth": authentication method (json-string)
1356 82a56f0d Luiz Capitulino
         - Possible values: "invalid", "none", "ra2", "ra2ne", "sasl", "tight",
1357 82a56f0d Luiz Capitulino
                            "tls", "ultra", "unknown", "vencrypt", "vencrypt",
1358 82a56f0d Luiz Capitulino
                            "vencrypt+plain", "vencrypt+tls+none",
1359 82a56f0d Luiz Capitulino
                            "vencrypt+tls+plain", "vencrypt+tls+sasl",
1360 82a56f0d Luiz Capitulino
                            "vencrypt+tls+vnc", "vencrypt+x509+none",
1361 82a56f0d Luiz Capitulino
                            "vencrypt+x509+plain", "vencrypt+x509+sasl",
1362 82a56f0d Luiz Capitulino
                            "vencrypt+x509+vnc", "vnc"
1363 82a56f0d Luiz Capitulino
- "clients": a json-array of all connected clients
1364 82a56f0d Luiz Capitulino
1365 82a56f0d Luiz Capitulino
Clients are described by a json-object, each one contain the following:
1366 82a56f0d Luiz Capitulino
1367 82a56f0d Luiz Capitulino
- "host": client's IP address (json-string)
1368 82a56f0d Luiz Capitulino
- "family": address family (json-string)
1369 82a56f0d Luiz Capitulino
         - Possible values: "ipv4", "ipv6", "unix", "unknown"
1370 82a56f0d Luiz Capitulino
- "service": client's port number (json-string)
1371 82a56f0d Luiz Capitulino
- "x509_dname": TLS dname (json-string, optional)
1372 82a56f0d Luiz Capitulino
- "sasl_username": SASL username (json-string, optional)
1373 82a56f0d Luiz Capitulino
1374 82a56f0d Luiz Capitulino
Example:
1375 82a56f0d Luiz Capitulino
1376 82a56f0d Luiz Capitulino
-> { "execute": "query-vnc" }
1377 82a56f0d Luiz Capitulino
<- {
1378 82a56f0d Luiz Capitulino
      "return":{
1379 82a56f0d Luiz Capitulino
         "enabled":true,
1380 82a56f0d Luiz Capitulino
         "host":"0.0.0.0",
1381 82a56f0d Luiz Capitulino
         "service":"50402",
1382 82a56f0d Luiz Capitulino
         "auth":"vnc",
1383 82a56f0d Luiz Capitulino
         "family":"ipv4",
1384 82a56f0d Luiz Capitulino
         "clients":[
1385 82a56f0d Luiz Capitulino
            {
1386 82a56f0d Luiz Capitulino
               "host":"127.0.0.1",
1387 82a56f0d Luiz Capitulino
               "service":"50401",
1388 82a56f0d Luiz Capitulino
               "family":"ipv4"
1389 82a56f0d Luiz Capitulino
            }
1390 82a56f0d Luiz Capitulino
         ]
1391 82a56f0d Luiz Capitulino
      }
1392 82a56f0d Luiz Capitulino
   }
1393 82a56f0d Luiz Capitulino
1394 82a56f0d Luiz Capitulino
EQMP
1395 82a56f0d Luiz Capitulino
1396 82a56f0d Luiz Capitulino
SQMP
1397 82a56f0d Luiz Capitulino
query-name
1398 82a56f0d Luiz Capitulino
----------
1399 82a56f0d Luiz Capitulino
1400 82a56f0d Luiz Capitulino
Show VM name.
1401 82a56f0d Luiz Capitulino
1402 82a56f0d Luiz Capitulino
Return a json-object with the following information:
1403 82a56f0d Luiz Capitulino
1404 82a56f0d Luiz Capitulino
- "name": VM's name (json-string, optional)
1405 82a56f0d Luiz Capitulino
1406 82a56f0d Luiz Capitulino
Example:
1407 82a56f0d Luiz Capitulino
1408 82a56f0d Luiz Capitulino
-> { "execute": "query-name" }
1409 82a56f0d Luiz Capitulino
<- { "return": { "name": "qemu-name" } }
1410 82a56f0d Luiz Capitulino
1411 82a56f0d Luiz Capitulino
EQMP
1412 82a56f0d Luiz Capitulino
1413 82a56f0d Luiz Capitulino
SQMP
1414 82a56f0d Luiz Capitulino
query-uuid
1415 82a56f0d Luiz Capitulino
----------
1416 82a56f0d Luiz Capitulino
1417 82a56f0d Luiz Capitulino
Show VM UUID.
1418 82a56f0d Luiz Capitulino
1419 82a56f0d Luiz Capitulino
Return a json-object with the following information:
1420 82a56f0d Luiz Capitulino
1421 82a56f0d Luiz Capitulino
- "UUID": Universally Unique Identifier (json-string)
1422 82a56f0d Luiz Capitulino
1423 82a56f0d Luiz Capitulino
Example:
1424 82a56f0d Luiz Capitulino
1425 82a56f0d Luiz Capitulino
-> { "execute": "query-uuid" }
1426 82a56f0d Luiz Capitulino
<- { "return": { "UUID": "550e8400-e29b-41d4-a716-446655440000" } }
1427 82a56f0d Luiz Capitulino
1428 82a56f0d Luiz Capitulino
EQMP
1429 82a56f0d Luiz Capitulino
1430 82a56f0d Luiz Capitulino
SQMP
1431 82a56f0d Luiz Capitulino
query-migrate
1432 82a56f0d Luiz Capitulino
-------------
1433 82a56f0d Luiz Capitulino
1434 82a56f0d Luiz Capitulino
Migration status.
1435 82a56f0d Luiz Capitulino
1436 82a56f0d Luiz Capitulino
Return a json-object. If migration is active there will be another json-object
1437 82a56f0d Luiz Capitulino
with RAM migration status and if block migration is active another one with
1438 82a56f0d Luiz Capitulino
block migration status.
1439 82a56f0d Luiz Capitulino
1440 82a56f0d Luiz Capitulino
The main json-object contains the following:
1441 82a56f0d Luiz Capitulino
1442 82a56f0d Luiz Capitulino
- "status": migration status (json-string)
1443 82a56f0d Luiz Capitulino
     - Possible values: "active", "completed", "failed", "cancelled"
1444 82a56f0d Luiz Capitulino
- "ram": only present if "status" is "active", it is a json-object with the
1445 82a56f0d Luiz Capitulino
  following RAM information (in bytes):
1446 82a56f0d Luiz Capitulino
         - "transferred": amount transferred (json-int)
1447 82a56f0d Luiz Capitulino
         - "remaining": amount remaining (json-int)
1448 82a56f0d Luiz Capitulino
         - "total": total (json-int)
1449 82a56f0d Luiz Capitulino
- "disk": only present if "status" is "active" and it is a block migration,
1450 82a56f0d Luiz Capitulino
  it is a json-object with the following disk information (in bytes):
1451 82a56f0d Luiz Capitulino
         - "transferred": amount transferred (json-int)
1452 82a56f0d Luiz Capitulino
         - "remaining": amount remaining (json-int)
1453 82a56f0d Luiz Capitulino
         - "total": total (json-int)
1454 82a56f0d Luiz Capitulino
1455 82a56f0d Luiz Capitulino
Examples:
1456 82a56f0d Luiz Capitulino
1457 82a56f0d Luiz Capitulino
1. Before the first migration
1458 82a56f0d Luiz Capitulino
1459 82a56f0d Luiz Capitulino
-> { "execute": "query-migrate" }
1460 82a56f0d Luiz Capitulino
<- { "return": {} }
1461 82a56f0d Luiz Capitulino
1462 82a56f0d Luiz Capitulino
2. Migration is done and has succeeded
1463 82a56f0d Luiz Capitulino
1464 82a56f0d Luiz Capitulino
-> { "execute": "query-migrate" }
1465 82a56f0d Luiz Capitulino
<- { "return": { "status": "completed" } }
1466 82a56f0d Luiz Capitulino
1467 82a56f0d Luiz Capitulino
3. Migration is done and has failed
1468 82a56f0d Luiz Capitulino
1469 82a56f0d Luiz Capitulino
-> { "execute": "query-migrate" }
1470 82a56f0d Luiz Capitulino
<- { "return": { "status": "failed" } }
1471 82a56f0d Luiz Capitulino
1472 82a56f0d Luiz Capitulino
4. Migration is being performed and is not a block migration:
1473 82a56f0d Luiz Capitulino
1474 82a56f0d Luiz Capitulino
-> { "execute": "query-migrate" }
1475 82a56f0d Luiz Capitulino
<- {
1476 82a56f0d Luiz Capitulino
      "return":{
1477 82a56f0d Luiz Capitulino
         "status":"active",
1478 82a56f0d Luiz Capitulino
         "ram":{
1479 82a56f0d Luiz Capitulino
            "transferred":123,
1480 82a56f0d Luiz Capitulino
            "remaining":123,
1481 82a56f0d Luiz Capitulino
            "total":246
1482 82a56f0d Luiz Capitulino
         }
1483 82a56f0d Luiz Capitulino
      }
1484 82a56f0d Luiz Capitulino
   }
1485 82a56f0d Luiz Capitulino
1486 82a56f0d Luiz Capitulino
5. Migration is being performed and is a block migration:
1487 82a56f0d Luiz Capitulino
1488 82a56f0d Luiz Capitulino
-> { "execute": "query-migrate" }
1489 82a56f0d Luiz Capitulino
<- {
1490 82a56f0d Luiz Capitulino
      "return":{
1491 82a56f0d Luiz Capitulino
         "status":"active",
1492 82a56f0d Luiz Capitulino
         "ram":{
1493 82a56f0d Luiz Capitulino
            "total":1057024,
1494 82a56f0d Luiz Capitulino
            "remaining":1053304,
1495 82a56f0d Luiz Capitulino
            "transferred":3720
1496 82a56f0d Luiz Capitulino
         },
1497 82a56f0d Luiz Capitulino
         "disk":{
1498 82a56f0d Luiz Capitulino
            "total":20971520,
1499 82a56f0d Luiz Capitulino
            "remaining":20880384,
1500 82a56f0d Luiz Capitulino
            "transferred":91136
1501 82a56f0d Luiz Capitulino
         }
1502 82a56f0d Luiz Capitulino
      }
1503 82a56f0d Luiz Capitulino
   }
1504 82a56f0d Luiz Capitulino
1505 82a56f0d Luiz Capitulino
EQMP
1506 82a56f0d Luiz Capitulino
1507 82a56f0d Luiz Capitulino
SQMP
1508 82a56f0d Luiz Capitulino
query-balloon
1509 82a56f0d Luiz Capitulino
-------------
1510 82a56f0d Luiz Capitulino
1511 82a56f0d Luiz Capitulino
Show balloon information.
1512 82a56f0d Luiz Capitulino
1513 82a56f0d Luiz Capitulino
Make an asynchronous request for balloon info. When the request completes a
1514 82a56f0d Luiz Capitulino
json-object will be returned containing the following data:
1515 82a56f0d Luiz Capitulino
1516 82a56f0d Luiz Capitulino
- "actual": current balloon value in bytes (json-int)
1517 82a56f0d Luiz Capitulino
- "mem_swapped_in": Amount of memory swapped in bytes (json-int, optional)
1518 82a56f0d Luiz Capitulino
- "mem_swapped_out": Amount of memory swapped out in bytes (json-int, optional)
1519 82a56f0d Luiz Capitulino
- "major_page_faults": Number of major faults (json-int, optional)
1520 82a56f0d Luiz Capitulino
- "minor_page_faults": Number of minor faults (json-int, optional)
1521 82a56f0d Luiz Capitulino
- "free_mem": Total amount of free and unused memory in
1522 82a56f0d Luiz Capitulino
              bytes (json-int, optional)
1523 82a56f0d Luiz Capitulino
- "total_mem": Total amount of available memory in bytes (json-int, optional)
1524 82a56f0d Luiz Capitulino
1525 82a56f0d Luiz Capitulino
Example:
1526 82a56f0d Luiz Capitulino
1527 82a56f0d Luiz Capitulino
-> { "execute": "query-balloon" }
1528 82a56f0d Luiz Capitulino
<- {
1529 82a56f0d Luiz Capitulino
      "return":{
1530 82a56f0d Luiz Capitulino
         "actual":1073741824,
1531 82a56f0d Luiz Capitulino
         "mem_swapped_in":0,
1532 82a56f0d Luiz Capitulino
         "mem_swapped_out":0,
1533 82a56f0d Luiz Capitulino
         "major_page_faults":142,
1534 82a56f0d Luiz Capitulino
         "minor_page_faults":239245,
1535 82a56f0d Luiz Capitulino
         "free_mem":1014185984,
1536 82a56f0d Luiz Capitulino
         "total_mem":1044668416
1537 82a56f0d Luiz Capitulino
      }
1538 82a56f0d Luiz Capitulino
   }
1539 82a56f0d Luiz Capitulino
1540 82a56f0d Luiz Capitulino
EQMP