1QEMU-QMP-REF(7) QEMU QEMU-QMP-REF(7)
2
3
4
6 qemu-qmp-ref - QEMU QMP Reference Manual
7
8 Contents
9 • QEMU QMP Reference Manual
10
11 • Introduction
12
13 • This document describes all commands currently supported by QMP.
14
15 • Stability Considerations
16
17 • The current QMP command set (described in this file) may be use‐
18 ful for a number of use cases, however it's limited and several
19 commands have bad defined semantics, specially with regard to
20 command completion.
21
22 • QMP errors
23
24 • QapiErrorClass (Enum)
25
26 • Common data types
27
28 • IoOperationType (Enum)
29
30 • OnOffAuto (Enum)
31
32 • OnOffSplit (Enum)
33
34 • String (Object)
35
36 • StrOrNull (Alternate)
37
38 • OffAutoPCIBAR (Enum)
39
40 • PCIELinkSpeed (Enum)
41
42 • PCIELinkWidth (Enum)
43
44 • HostMemPolicy (Enum)
45
46 • NetFilterDirection (Enum)
47
48 • GrabToggleKeys (Enum)
49
50 • HumanReadableText (Object)
51
52 • Socket data types
53
54 • NetworkAddressFamily (Enum)
55
56 • InetSocketAddressBase (Object)
57
58 • InetSocketAddress (Object)
59
60 • UnixSocketAddress (Object)
61
62 • VsockSocketAddress (Object)
63
64 • InetSocketAddressWrapper (Object)
65
66 • UnixSocketAddressWrapper (Object)
67
68 • VsockSocketAddressWrapper (Object)
69
70 • StringWrapper (Object)
71
72 • SocketAddressLegacy (Object)
73
74 • SocketAddressType (Enum)
75
76 • SocketAddress (Object)
77
78 • VM run state
79
80 • RunState (Enum)
81
82 • ShutdownCause (Enum)
83
84 • StatusInfo (Object)
85
86 • query-status (Command)
87
88 • SHUTDOWN (Event)
89
90 • POWERDOWN (Event)
91
92 • RESET (Event)
93
94 • STOP (Event)
95
96 • RESUME (Event)
97
98 • SUSPEND (Event)
99
100 • SUSPEND_DISK (Event)
101
102 • WAKEUP (Event)
103
104 • WATCHDOG (Event)
105
106 • WatchdogAction (Enum)
107
108 • RebootAction (Enum)
109
110 • ShutdownAction (Enum)
111
112 • PanicAction (Enum)
113
114 • watchdog-set-action (Command)
115
116 • set-action (Command)
117
118 • GUEST_PANICKED (Event)
119
120 • GUEST_CRASHLOADED (Event)
121
122 • GuestPanicAction (Enum)
123
124 • GuestPanicInformationType (Enum)
125
126 • GuestPanicInformation (Object)
127
128 • GuestPanicInformationHyperV (Object)
129
130 • S390CrashReason (Enum)
131
132 • GuestPanicInformationS390 (Object)
133
134 • MEMORY_FAILURE (Event)
135
136 • MemoryFailureRecipient (Enum)
137
138 • MemoryFailureAction (Enum)
139
140 • MemoryFailureFlags (Object)
141
142 • NotifyVmexitOption (Enum)
143
144 • Cryptography
145
146 • QCryptoTLSCredsEndpoint (Enum)
147
148 • QCryptoSecretFormat (Enum)
149
150 • QCryptoHashAlgorithm (Enum)
151
152 • QCryptoCipherAlgorithm (Enum)
153
154 • QCryptoCipherMode (Enum)
155
156 • QCryptoIVGenAlgorithm (Enum)
157
158 • QCryptoBlockFormat (Enum)
159
160 • QCryptoBlockOptionsBase (Object)
161
162 • QCryptoBlockOptionsQCow (Object)
163
164 • QCryptoBlockOptionsLUKS (Object)
165
166 • QCryptoBlockCreateOptionsLUKS (Object)
167
168 • QCryptoBlockOpenOptions (Object)
169
170 • QCryptoBlockCreateOptions (Object)
171
172 • QCryptoBlockInfoBase (Object)
173
174 • QCryptoBlockInfoLUKSSlot (Object)
175
176 • QCryptoBlockInfoLUKS (Object)
177
178 • QCryptoBlockInfo (Object)
179
180 • QCryptoBlockLUKSKeyslotState (Enum)
181
182 • QCryptoBlockAmendOptionsLUKS (Object)
183
184 • QCryptoBlockAmendOptions (Object)
185
186 • SecretCommonProperties (Object)
187
188 • SecretProperties (Object)
189
190 • SecretKeyringProperties (Object)
191
192 • TlsCredsProperties (Object)
193
194 • TlsCredsAnonProperties (Object)
195
196 • TlsCredsPskProperties (Object)
197
198 • TlsCredsX509Properties (Object)
199
200 • QCryptoAkCipherAlgorithm (Enum)
201
202 • QCryptoAkCipherKeyType (Enum)
203
204 • QCryptoRSAPaddingAlgorithm (Enum)
205
206 • QCryptoAkCipherOptionsRSA (Object)
207
208 • QCryptoAkCipherOptions (Object)
209
210 • Block devices
211
212 • Block core (VM unrelated)
213
214 • Background jobs
215
216 • Additional block stuff (VM related)
217
218 • Block device exports
219
220 • Character devices
221
222 • ChardevInfo (Object)
223
224 • query-chardev (Command)
225
226 • ChardevBackendInfo (Object)
227
228 • query-chardev-backends (Command)
229
230 • DataFormat (Enum)
231
232 • ringbuf-write (Command)
233
234 • ringbuf-read (Command)
235
236 • ChardevCommon (Object)
237
238 • ChardevFile (Object)
239
240 • ChardevHostdev (Object)
241
242 • ChardevSocket (Object)
243
244 • ChardevUdp (Object)
245
246 • ChardevMux (Object)
247
248 • ChardevStdio (Object)
249
250 • ChardevSpiceChannel (Object)
251
252 • ChardevSpicePort (Object)
253
254 • ChardevDBus (Object)
255
256 • ChardevVC (Object)
257
258 • ChardevRingbuf (Object)
259
260 • ChardevQemuVDAgent (Object)
261
262 • ChardevBackendKind (Enum)
263
264 • ChardevFileWrapper (Object)
265
266 • ChardevHostdevWrapper (Object)
267
268 • ChardevSocketWrapper (Object)
269
270 • ChardevUdpWrapper (Object)
271
272 • ChardevCommonWrapper (Object)
273
274 • ChardevMuxWrapper (Object)
275
276 • ChardevStdioWrapper (Object)
277
278 • ChardevSpiceChannelWrapper (Object)
279
280 • ChardevSpicePortWrapper (Object)
281
282 • ChardevQemuVDAgentWrapper (Object)
283
284 • ChardevDBusWrapper (Object)
285
286 • ChardevVCWrapper (Object)
287
288 • ChardevRingbufWrapper (Object)
289
290 • ChardevBackend (Object)
291
292 • ChardevReturn (Object)
293
294 • chardev-add (Command)
295
296 • chardev-change (Command)
297
298 • chardev-remove (Command)
299
300 • chardev-send-break (Command)
301
302 • VSERPORT_CHANGE (Event)
303
304 • Dump guest memory
305
306 • DumpGuestMemoryFormat (Enum)
307
308 • dump-guest-memory (Command)
309
310 • DumpStatus (Enum)
311
312 • DumpQueryResult (Object)
313
314 • query-dump (Command)
315
316 • DUMP_COMPLETED (Event)
317
318 • DumpGuestMemoryCapability (Object)
319
320 • query-dump-guest-memory-capability (Command)
321
322 • Net devices
323
324 • set_link (Command)
325
326 • netdev_add (Command)
327
328 • netdev_del (Command)
329
330 • NetLegacyNicOptions (Object)
331
332 • NetdevUserOptions (Object)
333
334 • NetdevTapOptions (Object)
335
336 • NetdevSocketOptions (Object)
337
338 • NetdevL2TPv3Options (Object)
339
340 • NetdevVdeOptions (Object)
341
342 • NetdevBridgeOptions (Object)
343
344 • NetdevHubPortOptions (Object)
345
346 • NetdevNetmapOptions (Object)
347
348 • NetdevVhostUserOptions (Object)
349
350 • NetdevVhostVDPAOptions (Object)
351
352 • NetdevVmnetHostOptions (Object)
353
354 • NetdevVmnetSharedOptions (Object)
355
356 • NetdevVmnetBridgedOptions (Object)
357
358 • NetdevStreamOptions (Object)
359
360 • NetdevDgramOptions (Object)
361
362 • NetClientDriver (Enum)
363
364 • Netdev (Object)
365
366 • RxState (Enum)
367
368 • RxFilterInfo (Object)
369
370 • query-rx-filter (Command)
371
372 • NIC_RX_FILTER_CHANGED (Event)
373
374 • AnnounceParameters (Object)
375
376 • announce-self (Command)
377
378 • FAILOVER_NEGOTIATED (Event)
379
380 • NETDEV_STREAM_CONNECTED (Event)
381
382 • NETDEV_STREAM_DISCONNECTED (Event)
383
384 • RDMA device
385
386 • RDMA_GID_STATUS_CHANGED (Event)
387
388 • Rocker switch device
389
390 • RockerSwitch (Object)
391
392 • query-rocker (Command)
393
394 • RockerPortDuplex (Enum)
395
396 • RockerPortAutoneg (Enum)
397
398 • RockerPort (Object)
399
400 • query-rocker-ports (Command)
401
402 • RockerOfDpaFlowKey (Object)
403
404 • RockerOfDpaFlowMask (Object)
405
406 • RockerOfDpaFlowAction (Object)
407
408 • RockerOfDpaFlow (Object)
409
410 • query-rocker-of-dpa-flows (Command)
411
412 • RockerOfDpaGroup (Object)
413
414 • query-rocker-of-dpa-groups (Command)
415
416 • TPM (trusted platform module) devices
417
418 • TpmModel (Enum)
419
420 • query-tpm-models (Command)
421
422 • TpmType (Enum)
423
424 • query-tpm-types (Command)
425
426 • TPMPassthroughOptions (Object)
427
428 • TPMEmulatorOptions (Object)
429
430 • TPMPassthroughOptionsWrapper (Object)
431
432 • TPMEmulatorOptionsWrapper (Object)
433
434 • TpmTypeOptions (Object)
435
436 • TPMInfo (Object)
437
438 • query-tpm (Command)
439
440 • Remote desktop
441
442 • DisplayProtocol (Enum)
443
444 • SetPasswordAction (Enum)
445
446 • SetPasswordOptions (Object)
447
448 • SetPasswordOptionsVnc (Object)
449
450 • set_password (Command)
451
452 • ExpirePasswordOptions (Object)
453
454 • ExpirePasswordOptionsVnc (Object)
455
456 • expire_password (Command)
457
458 • ImageFormat (Enum)
459
460 • screendump (Command)
461
462 • Spice
463
464 • VNC
465
466 • Input
467
468 • MouseInfo (Object)
469
470 • query-mice (Command)
471
472 • QKeyCode (Enum)
473
474 • KeyValueKind (Enum)
475
476 • IntWrapper (Object)
477
478 • QKeyCodeWrapper (Object)
479
480 • KeyValue (Object)
481
482 • send-key (Command)
483
484 • InputButton (Enum)
485
486 • InputAxis (Enum)
487
488 • InputKeyEvent (Object)
489
490 • InputBtnEvent (Object)
491
492 • InputMoveEvent (Object)
493
494 • InputEventKind (Enum)
495
496 • InputKeyEventWrapper (Object)
497
498 • InputBtnEventWrapper (Object)
499
500 • InputMoveEventWrapper (Object)
501
502 • InputEvent (Object)
503
504 • input-send-event (Command)
505
506 • DisplayGTK (Object)
507
508 • DisplayEGLHeadless (Object)
509
510 • DisplayDBus (Object)
511
512 • DisplayGLMode (Enum)
513
514 • DisplayCurses (Object)
515
516 • DisplayCocoa (Object)
517
518 • HotKeyMod (Enum)
519
520 • DisplaySDL (Object)
521
522 • DisplayType (Enum)
523
524 • DisplayOptions (Object)
525
526 • query-display-options (Command)
527
528 • DisplayReloadType (Enum)
529
530 • DisplayReloadOptionsVNC (Object)
531
532 • DisplayReloadOptions (Object)
533
534 • display-reload (Command)
535
536 • DisplayUpdateType (Enum)
537
538 • DisplayUpdateOptionsVNC (Object)
539
540 • DisplayUpdateOptions (Object)
541
542 • display-update (Command)
543
544 • User authorization
545
546 • QAuthZListPolicy (Enum)
547
548 • QAuthZListFormat (Enum)
549
550 • QAuthZListRule (Object)
551
552 • AuthZListProperties (Object)
553
554 • AuthZListFileProperties (Object)
555
556 • AuthZPAMProperties (Object)
557
558 • AuthZSimpleProperties (Object)
559
560 • Migration
561
562 • MigrationStats (Object)
563
564 • XBZRLECacheStats (Object)
565
566 • CompressionStats (Object)
567
568 • MigrationStatus (Enum)
569
570 • VfioStats (Object)
571
572 • MigrationInfo (Object)
573
574 • query-migrate (Command)
575
576 • MigrationCapability (Enum)
577
578 • MigrationCapabilityStatus (Object)
579
580 • migrate-set-capabilities (Command)
581
582 • query-migrate-capabilities (Command)
583
584 • MultiFDCompression (Enum)
585
586 • BitmapMigrationBitmapAliasTransform (Object)
587
588 • BitmapMigrationBitmapAlias (Object)
589
590 • BitmapMigrationNodeAlias (Object)
591
592 • MigrationParameter (Enum)
593
594 • MigrateSetParameters (Object)
595
596 • migrate-set-parameters (Command)
597
598 • MigrationParameters (Object)
599
600 • query-migrate-parameters (Command)
601
602 • client_migrate_info (Command)
603
604 • migrate-start-postcopy (Command)
605
606 • MIGRATION (Event)
607
608 • MIGRATION_PASS (Event)
609
610 • COLOMessage (Enum)
611
612 • COLOMode (Enum)
613
614 • FailoverStatus (Enum)
615
616 • COLO_EXIT (Event)
617
618 • COLOExitReason (Enum)
619
620 • x-colo-lost-heartbeat (Command)
621
622 • migrate_cancel (Command)
623
624 • migrate-continue (Command)
625
626 • migrate (Command)
627
628 • migrate-incoming (Command)
629
630 • xen-save-devices-state (Command)
631
632 • xen-set-global-dirty-log (Command)
633
634 • xen-load-devices-state (Command)
635
636 • xen-set-replication (Command)
637
638 • ReplicationStatus (Object)
639
640 • query-xen-replication-status (Command)
641
642 • xen-colo-do-checkpoint (Command)
643
644 • COLOStatus (Object)
645
646 • query-colo-status (Command)
647
648 • migrate-recover (Command)
649
650 • migrate-pause (Command)
651
652 • UNPLUG_PRIMARY (Event)
653
654 • DirtyRateVcpu (Object)
655
656 • DirtyRateStatus (Enum)
657
658 • DirtyRateMeasureMode (Enum)
659
660 • DirtyRateInfo (Object)
661
662 • calc-dirty-rate (Command)
663
664 • query-dirty-rate (Command)
665
666 • DirtyLimitInfo (Object)
667
668 • set-vcpu-dirty-limit (Command)
669
670 • cancel-vcpu-dirty-limit (Command)
671
672 • query-vcpu-dirty-limit (Command)
673
674 • snapshot-save (Command)
675
676 • snapshot-load (Command)
677
678 • snapshot-delete (Command)
679
680 • Transactions
681
682 • Abort (Object)
683
684 • ActionCompletionMode (Enum)
685
686 • TransactionActionKind (Enum)
687
688 • AbortWrapper (Object)
689
690 • BlockDirtyBitmapAddWrapper (Object)
691
692 • BlockDirtyBitmapWrapper (Object)
693
694 • BlockDirtyBitmapMergeWrapper (Object)
695
696 • BlockdevBackupWrapper (Object)
697
698 • BlockdevSnapshotWrapper (Object)
699
700 • BlockdevSnapshotInternalWrapper (Object)
701
702 • BlockdevSnapshotSyncWrapper (Object)
703
704 • DriveBackupWrapper (Object)
705
706 • TransactionAction (Object)
707
708 • TransactionProperties (Object)
709
710 • transaction (Command)
711
712 • Tracing
713
714 • TraceEventState (Enum)
715
716 • TraceEventInfo (Object)
717
718 • trace-event-get-state (Command)
719
720 • trace-event-set-state (Command)
721
722 • Compatibility policy
723
724 • CompatPolicyInput (Enum)
725
726 • CompatPolicyOutput (Enum)
727
728 • CompatPolicy (Object)
729
730 • QMP monitor control
731
732 • qmp_capabilities (Command)
733
734 • QMPCapability (Enum)
735
736 • VersionTriple (Object)
737
738 • VersionInfo (Object)
739
740 • query-version (Command)
741
742 • CommandInfo (Object)
743
744 • query-commands (Command)
745
746 • quit (Command)
747
748 • MonitorMode (Enum)
749
750 • MonitorOptions (Object)
751
752 • QMP introspection
753
754 • query-qmp-schema (Command)
755
756 • SchemaMetaType (Enum)
757
758 • SchemaInfo (Object)
759
760 • SchemaInfoBuiltin (Object)
761
762 • JSONType (Enum)
763
764 • SchemaInfoEnum (Object)
765
766 • SchemaInfoEnumMember (Object)
767
768 • SchemaInfoArray (Object)
769
770 • SchemaInfoObject (Object)
771
772 • SchemaInfoObjectMember (Object)
773
774 • SchemaInfoObjectVariant (Object)
775
776 • SchemaInfoAlternate (Object)
777
778 • SchemaInfoAlternateMember (Object)
779
780 • SchemaInfoCommand (Object)
781
782 • SchemaInfoEvent (Object)
783
784 • QEMU Object Model (QOM)
785
786 • ObjectPropertyInfo (Object)
787
788 • qom-list (Command)
789
790 • qom-get (Command)
791
792 • qom-set (Command)
793
794 • ObjectTypeInfo (Object)
795
796 • qom-list-types (Command)
797
798 • qom-list-properties (Command)
799
800 • CanHostSocketcanProperties (Object)
801
802 • ColoCompareProperties (Object)
803
804 • CryptodevBackendProperties (Object)
805
806 • CryptodevVhostUserProperties (Object)
807
808 • DBusVMStateProperties (Object)
809
810 • NetfilterInsert (Enum)
811
812 • NetfilterProperties (Object)
813
814 • FilterBufferProperties (Object)
815
816 • FilterDumpProperties (Object)
817
818 • FilterMirrorProperties (Object)
819
820 • FilterRedirectorProperties (Object)
821
822 • FilterRewriterProperties (Object)
823
824 • InputBarrierProperties (Object)
825
826 • InputLinuxProperties (Object)
827
828 • EventLoopBaseProperties (Object)
829
830 • IothreadProperties (Object)
831
832 • MainLoopProperties (Object)
833
834 • MemoryBackendProperties (Object)
835
836 • MemoryBackendFileProperties (Object)
837
838 • MemoryBackendMemfdProperties (Object)
839
840 • MemoryBackendEpcProperties (Object)
841
842 • PrManagerHelperProperties (Object)
843
844 • QtestProperties (Object)
845
846 • RemoteObjectProperties (Object)
847
848 • VfioUserServerProperties (Object)
849
850 • RngProperties (Object)
851
852 • RngEgdProperties (Object)
853
854 • RngRandomProperties (Object)
855
856 • SevGuestProperties (Object)
857
858 • ThreadContextProperties (Object)
859
860 • ObjectType (Enum)
861
862 • ObjectOptions (Object)
863
864 • object-add (Command)
865
866 • object-del (Command)
867
868 • Device infrastructure (qdev)
869
870 • device-list-properties (Command)
871
872 • device_add (Command)
873
874 • device_del (Command)
875
876 • DEVICE_DELETED (Event)
877
878 • DEVICE_UNPLUG_GUEST_ERROR (Event)
879
880 • Machines
881
882 • SysEmuTarget (Enum)
883
884 • CpuS390State (Enum)
885
886 • CpuInfoS390 (Object)
887
888 • CpuInfoFast (Object)
889
890 • query-cpus-fast (Command)
891
892 • MachineInfo (Object)
893
894 • query-machines (Command)
895
896 • CurrentMachineParams (Object)
897
898 • query-current-machine (Command)
899
900 • TargetInfo (Object)
901
902 • query-target (Command)
903
904 • UuidInfo (Object)
905
906 • query-uuid (Command)
907
908 • GuidInfo (Object)
909
910 • query-vm-generation-id (Command)
911
912 • system_reset (Command)
913
914 • system_powerdown (Command)
915
916 • system_wakeup (Command)
917
918 • LostTickPolicy (Enum)
919
920 • inject-nmi (Command)
921
922 • KvmInfo (Object)
923
924 • query-kvm (Command)
925
926 • NumaOptionsType (Enum)
927
928 • NumaOptions (Object)
929
930 • NumaNodeOptions (Object)
931
932 • NumaDistOptions (Object)
933
934 • CXLFixedMemoryWindowOptions (Object)
935
936 • CXLFMWProperties (Object)
937
938 • X86CPURegister32 (Enum)
939
940 • X86CPUFeatureWordInfo (Object)
941
942 • DummyForceArrays (Object)
943
944 • NumaCpuOptions (Object)
945
946 • HmatLBMemoryHierarchy (Enum)
947
948 • HmatLBDataType (Enum)
949
950 • NumaHmatLBOptions (Object)
951
952 • HmatCacheAssociativity (Enum)
953
954 • HmatCacheWritePolicy (Enum)
955
956 • NumaHmatCacheOptions (Object)
957
958 • memsave (Command)
959
960 • pmemsave (Command)
961
962 • Memdev (Object)
963
964 • query-memdev (Command)
965
966 • CpuInstanceProperties (Object)
967
968 • HotpluggableCPU (Object)
969
970 • query-hotpluggable-cpus (Command)
971
972 • set-numa-node (Command)
973
974 • balloon (Command)
975
976 • BalloonInfo (Object)
977
978 • query-balloon (Command)
979
980 • BALLOON_CHANGE (Event)
981
982 • MemoryInfo (Object)
983
984 • query-memory-size-summary (Command)
985
986 • PCDIMMDeviceInfo (Object)
987
988 • VirtioPMEMDeviceInfo (Object)
989
990 • VirtioMEMDeviceInfo (Object)
991
992 • SgxEPCDeviceInfo (Object)
993
994 • MemoryDeviceInfoKind (Enum)
995
996 • PCDIMMDeviceInfoWrapper (Object)
997
998 • VirtioPMEMDeviceInfoWrapper (Object)
999
1000 • VirtioMEMDeviceInfoWrapper (Object)
1001
1002 • SgxEPCDeviceInfoWrapper (Object)
1003
1004 • MemoryDeviceInfo (Object)
1005
1006 • SgxEPC (Object)
1007
1008 • SgxEPCProperties (Object)
1009
1010 • query-memory-devices (Command)
1011
1012 • MEMORY_DEVICE_SIZE_CHANGE (Event)
1013
1014 • MEM_UNPLUG_ERROR (Event)
1015
1016 • BootConfiguration (Object)
1017
1018 • SMPConfiguration (Object)
1019
1020 • x-query-irq (Command)
1021
1022 • x-query-jit (Command)
1023
1024 • x-query-numa (Command)
1025
1026 • x-query-opcount (Command)
1027
1028 • x-query-profile (Command)
1029
1030 • x-query-ramblock (Command)
1031
1032 • x-query-rdma (Command)
1033
1034 • x-query-roms (Command)
1035
1036 • x-query-usb (Command)
1037
1038 • SmbiosEntryPointType (Enum)
1039
1040 • MemorySizeConfiguration (Object)
1041
1042 • dumpdtb (Command)
1043
1044 • CpuModelInfo (Object)
1045
1046 • CpuModelExpansionType (Enum)
1047
1048 • CpuModelCompareResult (Enum)
1049
1050 • CpuModelBaselineInfo (Object)
1051
1052 • CpuModelCompareInfo (Object)
1053
1054 • query-cpu-model-comparison (Command)
1055
1056 • query-cpu-model-baseline (Command)
1057
1058 • CpuModelExpansionInfo (Object)
1059
1060 • query-cpu-model-expansion (Command)
1061
1062 • CpuDefinitionInfo (Object)
1063
1064 • query-cpu-definitions (Command)
1065
1066 • Record/replay
1067
1068 • ReplayMode (Enum)
1069
1070 • ReplayInfo (Object)
1071
1072 • query-replay (Command)
1073
1074 • replay-break (Command)
1075
1076 • replay-delete-break (Command)
1077
1078 • replay-seek (Command)
1079
1080 • Yank feature
1081
1082 • YankInstanceType (Enum)
1083
1084 • YankInstanceBlockNode (Object)
1085
1086 • YankInstanceChardev (Object)
1087
1088 • YankInstance (Object)
1089
1090 • yank (Command)
1091
1092 • query-yank (Command)
1093
1094 • Miscellanea
1095
1096 • add_client (Command)
1097
1098 • NameInfo (Object)
1099
1100 • query-name (Command)
1101
1102 • IOThreadInfo (Object)
1103
1104 • query-iothreads (Command)
1105
1106 • stop (Command)
1107
1108 • cont (Command)
1109
1110 • x-exit-preconfig (Command)
1111
1112 • human-monitor-command (Command)
1113
1114 • getfd (Command)
1115
1116 • closefd (Command)
1117
1118 • AddfdInfo (Object)
1119
1120 • add-fd (Command)
1121
1122 • remove-fd (Command)
1123
1124 • FdsetFdInfo (Object)
1125
1126 • FdsetInfo (Object)
1127
1128 • query-fdsets (Command)
1129
1130 • CommandLineParameterType (Enum)
1131
1132 • CommandLineParameterInfo (Object)
1133
1134 • CommandLineOptionInfo (Object)
1135
1136 • query-command-line-options (Command)
1137
1138 • RTC_CHANGE (Event)
1139
1140 • VFU_CLIENT_HANGUP (Event)
1141
1142 • rtc-reset-reinjection (Command)
1143
1144 • SevState (Enum)
1145
1146 • SevInfo (Object)
1147
1148 • query-sev (Command)
1149
1150 • SevLaunchMeasureInfo (Object)
1151
1152 • query-sev-launch-measure (Command)
1153
1154 • SevCapability (Object)
1155
1156 • query-sev-capabilities (Command)
1157
1158 • sev-inject-launch-secret (Command)
1159
1160 • SevAttestationReport (Object)
1161
1162 • query-sev-attestation-report (Command)
1163
1164 • dump-skeys (Command)
1165
1166 • GICCapability (Object)
1167
1168 • query-gic-capabilities (Command)
1169
1170 • SGXEPCSection (Object)
1171
1172 • SGXInfo (Object)
1173
1174 • query-sgx (Command)
1175
1176 • query-sgx-capabilities (Command)
1177
1178 • Audio
1179
1180 • AudiodevPerDirectionOptions (Object)
1181
1182 • AudiodevGenericOptions (Object)
1183
1184 • AudiodevAlsaPerDirectionOptions (Object)
1185
1186 • AudiodevAlsaOptions (Object)
1187
1188 • AudiodevSndioOptions (Object)
1189
1190 • AudiodevCoreaudioPerDirectionOptions (Object)
1191
1192 • AudiodevCoreaudioOptions (Object)
1193
1194 • AudiodevDsoundOptions (Object)
1195
1196 • AudiodevJackPerDirectionOptions (Object)
1197
1198 • AudiodevJackOptions (Object)
1199
1200 • AudiodevOssPerDirectionOptions (Object)
1201
1202 • AudiodevOssOptions (Object)
1203
1204 • AudiodevPaPerDirectionOptions (Object)
1205
1206 • AudiodevPaOptions (Object)
1207
1208 • AudiodevSdlPerDirectionOptions (Object)
1209
1210 • AudiodevSdlOptions (Object)
1211
1212 • AudiodevWavOptions (Object)
1213
1214 • AudioFormat (Enum)
1215
1216 • AudiodevDriver (Enum)
1217
1218 • Audiodev (Object)
1219
1220 • ACPI
1221
1222 • AcpiTableOptions (Object)
1223
1224 • ACPISlotType (Enum)
1225
1226 • ACPIOSTInfo (Object)
1227
1228 • query-acpi-ospm-status (Command)
1229
1230 • ACPI_DEVICE_OST (Event)
1231
1232 • PCI
1233
1234 • PciMemoryRange (Object)
1235
1236 • PciMemoryRegion (Object)
1237
1238 • PciBusInfo (Object)
1239
1240 • PciBridgeInfo (Object)
1241
1242 • PciDeviceClass (Object)
1243
1244 • PciDeviceId (Object)
1245
1246 • PciDeviceInfo (Object)
1247
1248 • PciInfo (Object)
1249
1250 • query-pci (Command)
1251
1252 • Statistics
1253
1254 • StatsType (Enum)
1255
1256 • StatsUnit (Enum)
1257
1258 • StatsProvider (Enum)
1259
1260 • StatsTarget (Enum)
1261
1262 • StatsRequest (Object)
1263
1264 • StatsVCPUFilter (Object)
1265
1266 • StatsFilter (Object)
1267
1268 • StatsValue (Alternate)
1269
1270 • Stats (Object)
1271
1272 • StatsResult (Object)
1273
1274 • query-stats (Command)
1275
1276 • StatsSchemaValue (Object)
1277
1278 • StatsSchema (Object)
1279
1280 • query-stats-schemas (Command)
1281
1282 • Virtio devices
1283
1284 • VirtioInfo (Object)
1285
1286 • x-query-virtio (Command)
1287
1288 • VhostStatus (Object)
1289
1290 • VirtioStatus (Object)
1291
1292 • x-query-virtio-status (Command)
1293
1294 • VirtioDeviceStatus (Object)
1295
1296 • VhostDeviceProtocols (Object)
1297
1298 • VirtioDeviceFeatures (Object)
1299
1300 • VirtQueueStatus (Object)
1301
1302 • x-query-virtio-queue-status (Command)
1303
1304 • VirtVhostQueueStatus (Object)
1305
1306 • x-query-virtio-vhost-queue-status (Command)
1307
1308 • VirtioRingDesc (Object)
1309
1310 • VirtioRingAvail (Object)
1311
1312 • VirtioRingUsed (Object)
1313
1314 • VirtioQueueElement (Object)
1315
1316 • x-query-virtio-queue-element (Command)
1317
1319 This document describes all commands currently supported by QMP.
1320
1321 Most of the time their usage is exactly the same as in the user Moni‐
1322 tor, this means that any other document which also describe commands
1323 (the manpage, QEMU's manual, etc) can and should be consulted.
1324
1325 QMP has two types of commands: regular and query commands. Regular com‐
1326 mands usually change the Virtual Machine's state someway, while query
1327 commands just return information. The sections below are divided ac‐
1328 cordingly.
1329
1330 It's important to observe that all communication examples are formatted
1331 in a reader-friendly way, so that they're easier to understand. How‐
1332 ever, in real protocol usage, they're emitted as a single line.
1333
1334 Also, the following notation is used to denote data flow:
1335
1336 Example:
1337
1338 -> data issued by the Client
1339 <- Server data response
1340
1341 Please, refer to the QMP specification (docs/interop/qmp-spec.txt) for
1342 detailed information on the Server command and response formats.
1343
1345 The current QMP command set (described in this file) may be useful for
1346 a number of use cases, however it's limited and several commands have
1347 bad defined semantics, specially with regard to command completion.
1348
1349 These problems are going to be solved incrementally in the next QEMU
1350 releases and we're going to establish a deprecation policy for badly
1351 defined commands.
1352
1353 If you're planning to adopt QMP, please observe the following:
1354
1355 1. The deprecation policy will take effect and be documented soon,
1356 please check the documentation of each used command as soon as a
1357 new release of QEMU is available
1358
1359 2. DO NOT rely on anything which is not explicit documented
1360
1361 3. Errors, in special, are not documented. Applications should NOT
1362 check for specific errors classes or data (it's strongly recom‐
1363 mended to only check for the "error" key)
1364
1366 QapiErrorClass (Enum)
1367 QEMU error classes
1368
1369 Values
1370 GenericError
1371 this is used for errors that don't require a specific error
1372 class. This should be the default case for most errors
1373
1374 CommandNotFound
1375 the requested command has not been found
1376
1377 DeviceNotActive
1378 a device has failed to be become active
1379
1380 DeviceNotFound
1381 the requested device has not been found
1382
1383 KVMMissingCap
1384 the requested operation can't be fulfilled because a required
1385 KVM capability is missing
1386
1387 Since
1388 1.2
1389
1391 IoOperationType (Enum)
1392 An enumeration of the I/O operation types
1393
1394 Values
1395 read read operation
1396
1397 write write operation
1398
1399 Since
1400 2.1
1401
1402 OnOffAuto (Enum)
1403 An enumeration of three options: on, off, and auto
1404
1405 Values
1406 auto QEMU selects the value between on and off
1407
1408 on Enabled
1409
1410 off Disabled
1411
1412 Since
1413 2.2
1414
1415 OnOffSplit (Enum)
1416 An enumeration of three values: on, off, and split
1417
1418 Values
1419 on Enabled
1420
1421 off Disabled
1422
1423 split Mixed
1424
1425 Since
1426 2.6
1427
1428 String (Object)
1429 A fat type wrapping 'str', to be embedded in lists.
1430
1431 Members
1432 str: string
1433 Not documented
1434
1435 Since
1436 1.2
1437
1438 StrOrNull (Alternate)
1439 This is a string value or the explicit lack of a string (null pointer
1440 in C). Intended for cases when 'optional absent' already has a differ‐
1441 ent meaning.
1442
1443 Members
1444 s: string
1445 the string value
1446
1447 n: null
1448 no string value
1449
1450 Since
1451 2.10
1452
1453 OffAutoPCIBAR (Enum)
1454 An enumeration of options for specifying a PCI BAR
1455
1456 Values
1457 off The specified feature is disabled
1458
1459 auto The PCI BAR for the feature is automatically selected
1460
1461 bar0 PCI BAR0 is used for the feature
1462
1463 bar1 PCI BAR1 is used for the feature
1464
1465 bar2 PCI BAR2 is used for the feature
1466
1467 bar3 PCI BAR3 is used for the feature
1468
1469 bar4 PCI BAR4 is used for the feature
1470
1471 bar5 PCI BAR5 is used for the feature
1472
1473 Since
1474 2.12
1475
1476 PCIELinkSpeed (Enum)
1477 An enumeration of PCIe link speeds in units of GT/s
1478
1479 Values
1480 2_5 2.5GT/s
1481
1482 5 5.0GT/s
1483
1484 8 8.0GT/s
1485
1486 16 16.0GT/s
1487
1488 Since
1489 4.0
1490
1491 PCIELinkWidth (Enum)
1492 An enumeration of PCIe link width
1493
1494 Values
1495 1 x1
1496
1497 2 x2
1498
1499 4 x4
1500
1501 8 x8
1502
1503 12 x12
1504
1505 16 x16
1506
1507 32 x32
1508
1509 Since
1510 4.0
1511
1512 HostMemPolicy (Enum)
1513 Host memory policy types
1514
1515 Values
1516 default
1517 restore default policy, remove any nondefault policy
1518
1519 preferred
1520 set the preferred host nodes for allocation
1521
1522 bind a strict policy that restricts memory allocation to the host
1523 nodes specified
1524
1525 interleave
1526 memory allocations are interleaved across the set of host nodes
1527 specified
1528
1529 Since
1530 2.1
1531
1532 NetFilterDirection (Enum)
1533 Indicates whether a netfilter is attached to a netdev's transmit queue
1534 or receive queue or both.
1535
1536 Values
1537 all the filter is attached both to the receive and the transmit
1538 queue of the netdev (default).
1539
1540 rx the filter is attached to the receive queue of the netdev, where
1541 it will receive packets sent to the netdev.
1542
1543 tx the filter is attached to the transmit queue of the netdev,
1544 where it will receive packets sent by the netdev.
1545
1546 Since
1547 2.5
1548
1549 GrabToggleKeys (Enum)
1550 Keys to toggle input-linux between host and guest.
1551
1552 Values
1553 ctrl-ctrl
1554 Not documented
1555
1556 alt-alt
1557 Not documented
1558
1559 shift-shift
1560 Not documented
1561
1562 meta-meta
1563 Not documented
1564
1565 scrolllock
1566 Not documented
1567
1568 ctrl-scrolllock
1569 Not documented
1570
1571 Since
1572 4.0
1573
1574 HumanReadableText (Object)
1575 Members
1576 human-readable-text: string
1577 Formatted output intended for humans.
1578
1579 Since
1580 6.2
1581
1583 NetworkAddressFamily (Enum)
1584 The network address family
1585
1586 Values
1587 ipv4 IPV4 family
1588
1589 ipv6 IPV6 family
1590
1591 unix unix socket
1592
1593 vsock vsock family (since 2.8)
1594
1595 unknown
1596 otherwise
1597
1598 Since
1599 2.1
1600
1601 InetSocketAddressBase (Object)
1602 Members
1603 host: string
1604 host part of the address
1605
1606 port: string
1607 port part of the address
1608
1609 InetSocketAddress (Object)
1610 Captures a socket address or address range in the Internet namespace.
1611
1612 Members
1613 numeric: boolean (optional)
1614 true if the host/port are guaranteed to be numeric, false if
1615 name resolution should be attempted. Defaults to false. (Since
1616 2.9)
1617
1618 to: int (optional)
1619 If present, this is range of possible addresses, with port be‐
1620 tween port and to.
1621
1622 ipv4: boolean (optional)
1623 whether to accept IPv4 addresses, default try both IPv4 and IPv6
1624
1625 ipv6: boolean (optional)
1626 whether to accept IPv6 addresses, default try both IPv4 and IPv6
1627
1628 keep-alive: boolean (optional)
1629 enable keep-alive when connecting to this socket. Not supported
1630 for passive sockets. (Since 4.2)
1631
1632 mptcp: boolean (optional) (If: HAVE_IPPROTO_MPTCP)
1633 enable multi-path TCP. (Since 6.1)
1634
1635 The members of InetSocketAddressBase
1636
1637 Since
1638 1.3
1639
1640 UnixSocketAddress (Object)
1641 Captures a socket address in the local ("Unix socket") namespace.
1642
1643 Members
1644 path: string
1645 filesystem path to use
1646
1647 abstract: boolean (optional) (If: CONFIG_LINUX)
1648 if true, this is a Linux abstract socket address. path will be
1649 prefixed by a null byte, and optionally padded with null bytes.
1650 Defaults to false. (Since 5.1)
1651
1652 tight: boolean (optional) (If: CONFIG_LINUX)
1653 if false, pad an abstract socket address with enough null bytes
1654 to make it fill struct sockaddr_un member sun_path. Defaults to
1655 true. (Since 5.1)
1656
1657 Since
1658 1.3
1659
1660 VsockSocketAddress (Object)
1661 Captures a socket address in the vsock namespace.
1662
1663 Members
1664 cid: string
1665 unique host identifier
1666
1667 port: string
1668 port
1669
1670 Note
1671 string types are used to allow for possible future hostname or service
1672 resolution support.
1673
1674 Since
1675 2.8
1676
1677 InetSocketAddressWrapper (Object)
1678 Members
1679 data: InetSocketAddress
1680 Not documented
1681
1682 Since
1683 1.3
1684
1685 UnixSocketAddressWrapper (Object)
1686 Members
1687 data: UnixSocketAddress
1688 Not documented
1689
1690 Since
1691 1.3
1692
1693 VsockSocketAddressWrapper (Object)
1694 Members
1695 data: VsockSocketAddress
1696 Not documented
1697
1698 Since
1699 2.8
1700
1701 StringWrapper (Object)
1702 Members
1703 data: String
1704 Not documented
1705
1706 Since
1707 1.3
1708
1709 SocketAddressLegacy (Object)
1710 Captures the address of a socket, which could also be a named file de‐
1711 scriptor
1712
1713 Members
1714 type: SocketAddressType
1715 Not documented
1716
1717 The members of InetSocketAddressWrapper when type is "inet"
1718
1719 The members of UnixSocketAddressWrapper when type is "unix"
1720
1721 The members of VsockSocketAddressWrapper when type is "vsock"
1722
1723 The members of StringWrapper when type is "fd"
1724
1725 Note
1726 This type is deprecated in favor of SocketAddress. The difference be‐
1727 tween SocketAddressLegacy and SocketAddress is that the latter has
1728 fewer {} on the wire.
1729
1730 Since
1731 1.3
1732
1733 SocketAddressType (Enum)
1734 Available SocketAddress types
1735
1736 Values
1737 inet Internet address
1738
1739 unix Unix domain socket
1740
1741 vsock VMCI address
1742
1743 fd decimal is for file descriptor number, otherwise a file descrip‐
1744 tor name. Named file descriptors are permitted in monitor com‐
1745 mands, in combination with the 'getfd' command. Decimal file de‐
1746 scriptors are permitted at startup or other contexts where no
1747 monitor context is active.
1748
1749 Since
1750 2.9
1751
1752 SocketAddress (Object)
1753 Captures the address of a socket, which could also be a named file de‐
1754 scriptor
1755
1756 Members
1757 type: SocketAddressType
1758 Transport type
1759
1760 The members of InetSocketAddress when type is "inet"
1761
1762 The members of UnixSocketAddress when type is "unix"
1763
1764 The members of VsockSocketAddress when type is "vsock"
1765
1766 The members of String when type is "fd"
1767
1768 Since
1769 2.9
1770
1772 RunState (Enum)
1773 An enumeration of VM run states.
1774
1775 Values
1776 debug QEMU is running on a debugger
1777
1778 finish-migrate
1779 guest is paused to finish the migration process
1780
1781 inmigrate
1782 guest is paused waiting for an incoming migration. Note that
1783 this state does not tell whether the machine will start at the
1784 end of the migration. This depends on the command-line -S op‐
1785 tion and any invocation of 'stop' or 'cont' that has happened
1786 since QEMU was started.
1787
1788 internal-error
1789 An internal error that prevents further guest execution has oc‐
1790 curred
1791
1792 io-error
1793 the last IOP has failed and the device is configured to pause on
1794 I/O errors
1795
1796 paused guest has been paused via the 'stop' command
1797
1798 postmigrate
1799 guest is paused following a successful 'migrate'
1800
1801 prelaunch
1802 QEMU was started with -S and guest has not started
1803
1804 restore-vm
1805 guest is paused to restore VM state
1806
1807 running
1808 guest is actively running
1809
1810 save-vm
1811 guest is paused to save the VM state
1812
1813 shutdown
1814 guest is shut down (and -no-shutdown is in use)
1815
1816 suspended
1817 guest is suspended (ACPI S3)
1818
1819 watchdog
1820 the watchdog action is configured to pause and has been trig‐
1821 gered
1822
1823 guest-panicked
1824 guest has been panicked as a result of guest OS panic
1825
1826 colo guest is paused to save/restore VM state under colo checkpoint,
1827 VM can not get into this state unless colo capability is enabled
1828 for migration. (since 2.8)
1829
1830 ShutdownCause (Enum)
1831 An enumeration of reasons for a Shutdown.
1832
1833 Values
1834 none No shutdown request pending
1835
1836 host-error
1837 An error prevents further use of guest
1838
1839 host-qmp-quit
1840 Reaction to the QMP command 'quit'
1841
1842 host-qmp-system-reset
1843 Reaction to the QMP command 'system_reset'
1844
1845 host-signal
1846 Reaction to a signal, such as SIGINT
1847
1848 host-ui
1849 Reaction to a UI event, like window close
1850
1851 guest-shutdown
1852 Guest shutdown/suspend request, via ACPI or other hardware-spe‐
1853 cific means
1854
1855 guest-reset
1856 Guest reset request, and command line turns that into a shutdown
1857
1858 guest-panic
1859 Guest panicked, and command line turns that into a shutdown
1860
1861 subsystem-reset
1862 Partial guest reset that does not trigger QMP events and ignores
1863 --no-reboot. This is useful for sanitizing hypercalls on s390
1864 that are used during kexec/kdump/boot
1865
1866 snapshot-load
1867 A snapshot is being loaded by the record & replay subsystem.
1868 This value is used only within QEMU. It doesn't occur in QMP.
1869 (since 7.2)
1870
1871 StatusInfo (Object)
1872 Information about VCPU run state
1873
1874 Members
1875 running: boolean
1876 true if all VCPUs are runnable, false if not runnable
1877
1878 singlestep: boolean
1879 true if VCPUs are in single-step mode
1880
1881 status: RunState
1882 the virtual machine RunState
1883
1884 Since
1885 0.14
1886
1887 Notes
1888 singlestep is enabled through the GDB stub
1889
1890 query-status (Command)
1891 Query the run status of all VCPUs
1892
1893 Returns
1894 StatusInfo reflecting all VCPUs
1895
1896 Since
1897 0.14
1898
1899 Example
1900 -> { "execute": "query-status" }
1901 <- { "return": { "running": true,
1902 "singlestep": false,
1903 "status": "running" } }
1904
1905 SHUTDOWN (Event)
1906 Emitted when the virtual machine has shut down, indicating that qemu is
1907 about to exit.
1908
1909 Arguments
1910 guest: boolean
1911 If true, the shutdown was triggered by a guest request (such as
1912 a guest-initiated ACPI shutdown request or other hardware-spe‐
1913 cific action) rather than a host request (such as sending qemu a
1914 SIGINT). (since 2.10)
1915
1916 reason: ShutdownCause
1917 The ShutdownCause which resulted in the SHUTDOWN. (since 4.0)
1918
1919 Note
1920 If the command-line option "-no-shutdown" has been specified, qemu will
1921 not exit, and a STOP event will eventually follow the SHUTDOWN event
1922
1923 Since
1924 0.12
1925
1926 Example
1927 <- { "event": "SHUTDOWN",
1928 "data": { "guest": true, "reason": "guest-shutdown" },
1929 "timestamp": { "seconds": 1267040730, "microseconds": 682951 } }
1930
1931 POWERDOWN (Event)
1932 Emitted when the virtual machine is powered down through the power con‐
1933 trol system, such as via ACPI.
1934
1935 Since
1936 0.12
1937
1938 Example
1939 <- { "event": "POWERDOWN",
1940 "timestamp": { "seconds": 1267040730, "microseconds": 682951 } }
1941
1942 RESET (Event)
1943 Emitted when the virtual machine is reset
1944
1945 Arguments
1946 guest: boolean
1947 If true, the reset was triggered by a guest request (such as a
1948 guest-initiated ACPI reboot request or other hardware-specific
1949 action) rather than a host request (such as the QMP command sys‐
1950 tem_reset). (since 2.10)
1951
1952 reason: ShutdownCause
1953 The ShutdownCause of the RESET. (since 4.0)
1954
1955 Since
1956 0.12
1957
1958 Example
1959 <- { "event": "RESET",
1960 "data": { "guest": false, "reason": "guest-reset" },
1961 "timestamp": { "seconds": 1267041653, "microseconds": 9518 } }
1962
1963 STOP (Event)
1964 Emitted when the virtual machine is stopped
1965
1966 Since
1967 0.12
1968
1969 Example
1970 <- { "event": "STOP",
1971 "timestamp": { "seconds": 1267041730, "microseconds": 281295 } }
1972
1973 RESUME (Event)
1974 Emitted when the virtual machine resumes execution
1975
1976 Since
1977 0.12
1978
1979 Example
1980 <- { "event": "RESUME",
1981 "timestamp": { "seconds": 1271770767, "microseconds": 582542 } }
1982
1983 SUSPEND (Event)
1984 Emitted when guest enters a hardware suspension state, for example, S3
1985 state, which is sometimes called standby state
1986
1987 Since
1988 1.1
1989
1990 Example
1991 <- { "event": "SUSPEND",
1992 "timestamp": { "seconds": 1344456160, "microseconds": 309119 } }
1993
1994 SUSPEND_DISK (Event)
1995 Emitted when guest enters a hardware suspension state with data saved
1996 on disk, for example, S4 state, which is sometimes called hibernate
1997 state
1998
1999 Note
2000 QEMU shuts down (similar to event SHUTDOWN) when entering this state
2001
2002 Since
2003 1.2
2004
2005 Example
2006 <- { "event": "SUSPEND_DISK",
2007 "timestamp": { "seconds": 1344456160, "microseconds": 309119 } }
2008
2009 WAKEUP (Event)
2010 Emitted when the guest has woken up from suspend state and is running
2011
2012 Since
2013 1.1
2014
2015 Example
2016 <- { "event": "WAKEUP",
2017 "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
2018
2019 WATCHDOG (Event)
2020 Emitted when the watchdog device's timer is expired
2021
2022 Arguments
2023 action: WatchdogAction
2024 action that has been taken
2025
2026 Note
2027 If action is "reset", "shutdown", or "pause" the WATCHDOG event is fol‐
2028 lowed respectively by the RESET, SHUTDOWN, or STOP events
2029
2030 Note
2031 This event is rate-limited.
2032
2033 Since
2034 0.13
2035
2036 Example
2037 <- { "event": "WATCHDOG",
2038 "data": { "action": "reset" },
2039 "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
2040
2041 WatchdogAction (Enum)
2042 An enumeration of the actions taken when the watchdog device's timer is
2043 expired
2044
2045 Values
2046 reset system resets
2047
2048 shutdown
2049 system shutdown, note that it is similar to powerdown, which
2050 tries to set to system status and notify guest
2051
2052 poweroff
2053 system poweroff, the emulator program exits
2054
2055 pause system pauses, similar to stop
2056
2057 debug system enters debug state
2058
2059 none nothing is done
2060
2061 inject-nmi
2062 a non-maskable interrupt is injected into the first VCPU (all
2063 VCPUS on x86) (since 2.4)
2064
2065 Since
2066 2.1
2067
2068 RebootAction (Enum)
2069 Possible QEMU actions upon guest reboot
2070
2071 Values
2072 reset Reset the VM
2073
2074 shutdown
2075 Shutdown the VM and exit, according to the shutdown action
2076
2077 Since
2078 6.0
2079
2080 ShutdownAction (Enum)
2081 Possible QEMU actions upon guest shutdown
2082
2083 Values
2084 poweroff
2085 Shutdown the VM and exit
2086
2087 pause pause the VM
2088
2089 Since
2090 6.0
2091
2092 PanicAction (Enum)
2093 Values
2094 none Continue VM execution
2095
2096 pause Pause the VM
2097
2098 shutdown
2099 Shutdown the VM and exit, according to the shutdown action
2100
2101 exit-failure
2102 Shutdown the VM and exit with nonzero status (since 7.1)
2103
2104 Since
2105 6.0
2106
2107 watchdog-set-action (Command)
2108 Set watchdog action
2109
2110 Arguments
2111 action: WatchdogAction
2112 Not documented
2113
2114 Since
2115 2.11
2116
2117 set-action (Command)
2118 Set the actions that will be taken by the emulator in response to guest
2119 events.
2120
2121 Arguments
2122 reboot: RebootAction (optional)
2123 RebootAction action taken on guest reboot.
2124
2125 shutdown: ShutdownAction (optional)
2126 ShutdownAction action taken on guest shutdown.
2127
2128 panic: PanicAction (optional)
2129 PanicAction action taken on guest panic.
2130
2131 watchdog: WatchdogAction (optional)
2132 WatchdogAction action taken when watchdog timer expires .
2133
2134 Returns
2135 Nothing on success.
2136
2137 Since
2138 6.0
2139
2140 Example
2141 -> { "execute": "set-action",
2142 "arguments": { "reboot": "shutdown",
2143 "shutdown" : "pause",
2144 "panic": "pause",
2145 "watchdog": "inject-nmi" } }
2146 <- { "return": {} }
2147
2148 GUEST_PANICKED (Event)
2149 Emitted when guest OS panic is detected
2150
2151 Arguments
2152 action: GuestPanicAction
2153 action that has been taken, currently always "pause"
2154
2155 info: GuestPanicInformation (optional)
2156 information about a panic (since 2.9)
2157
2158 Since
2159 1.5
2160
2161 Example
2162 <- { "event": "GUEST_PANICKED",
2163 "data": { "action": "pause" },
2164 "timestamp": { "seconds": 1648245231, "microseconds": 900001 } }
2165
2166 GUEST_CRASHLOADED (Event)
2167 Emitted when guest OS crash loaded is detected
2168
2169 Arguments
2170 action: GuestPanicAction
2171 action that has been taken, currently always "run"
2172
2173 info: GuestPanicInformation (optional)
2174 information about a panic
2175
2176 Since
2177 5.0
2178
2179 Example
2180 <- { "event": "GUEST_CRASHLOADED",
2181 "data": { "action": "run" },
2182 "timestamp": { "seconds": 1648245259, "microseconds": 893771 } }
2183
2184 GuestPanicAction (Enum)
2185 An enumeration of the actions taken when guest OS panic is detected
2186
2187 Values
2188 pause system pauses
2189
2190 poweroff
2191 Not documented
2192
2193 run Not documented
2194
2195 Since
2196 2.1 (poweroff since 2.8, run since 5.0)
2197
2198 GuestPanicInformationType (Enum)
2199 An enumeration of the guest panic information types
2200
2201 Values
2202 hyper-v
2203 hyper-v guest panic information type
2204
2205 s390 s390 guest panic information type (Since: 2.12)
2206
2207 Since
2208 2.9
2209
2210 GuestPanicInformation (Object)
2211 Information about a guest panic
2212
2213 Members
2214 type: GuestPanicInformationType
2215 Crash type that defines the hypervisor specific information
2216
2217 The members of GuestPanicInformationHyperV when type is "hyper-v"
2218
2219 The members of GuestPanicInformationS390 when type is "s390"
2220
2221 Since
2222 2.9
2223
2224 GuestPanicInformationHyperV (Object)
2225 Hyper-V specific guest panic information (HV crash MSRs)
2226
2227 Members
2228 arg1: int
2229 Not documented
2230
2231 arg2: int
2232 Not documented
2233
2234 arg3: int
2235 Not documented
2236
2237 arg4: int
2238 Not documented
2239
2240 arg5: int
2241 Not documented
2242
2243 Since
2244 2.9
2245
2246 S390CrashReason (Enum)
2247 Reason why the CPU is in a crashed state.
2248
2249 Values
2250 unknown
2251 no crash reason was set
2252
2253 disabled-wait
2254 the CPU has entered a disabled wait state
2255
2256 extint-loop
2257 clock comparator or cpu timer interrupt with new PSW enabled for
2258 external interrupts
2259
2260 pgmint-loop
2261 program interrupt with BAD new PSW
2262
2263 opint-loop
2264 operation exception interrupt with invalid code at the program
2265 interrupt new PSW
2266
2267 Since
2268 2.12
2269
2270 GuestPanicInformationS390 (Object)
2271 S390 specific guest panic information (PSW)
2272
2273 Members
2274 core: int
2275 core id of the CPU that crashed
2276
2277 psw-mask: int
2278 control fields of guest PSW
2279
2280 psw-addr: int
2281 guest instruction address
2282
2283 reason: S390CrashReason
2284 guest crash reason
2285
2286 Since
2287 2.12
2288
2289 MEMORY_FAILURE (Event)
2290 Emitted when a memory failure occurs on host side.
2291
2292 Arguments
2293 recipient: MemoryFailureRecipient
2294 recipient is defined as MemoryFailureRecipient.
2295
2296 action: MemoryFailureAction
2297 action that has been taken. action is defined as MemoryFailure‐
2298 Action.
2299
2300 flags: MemoryFailureFlags
2301 flags for MemoryFailureAction. action is defined as MemoryFail‐
2302 ureFlags.
2303
2304 Since
2305 5.2
2306
2307 Example
2308 <- { "event": "MEMORY_FAILURE",
2309 "data": { "recipient": "hypervisor",
2310 "action": "fatal",
2311 "flags": { "action-required": false,
2312 "recursive": false } },
2313 "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
2314
2315 MemoryFailureRecipient (Enum)
2316 Hardware memory failure occurs, handled by recipient.
2317
2318 Values
2319 hypervisor
2320 memory failure at QEMU process address space. (none guest mem‐
2321 ory, but used by QEMU itself).
2322
2323 guest memory failure at guest memory,
2324
2325 Since
2326 5.2
2327
2328 MemoryFailureAction (Enum)
2329 Actions taken by QEMU in response to a hardware memory failure.
2330
2331 Values
2332 ignore the memory failure could be ignored. This will only be the case
2333 for action-optional failures.
2334
2335 inject memory failure occurred in guest memory, the guest enabled MCE
2336 handling mechanism, and QEMU could inject the MCE into the guest
2337 successfully.
2338
2339 fatal the failure is unrecoverable. This occurs for action-required
2340 failures if the recipient is the hypervisor; QEMU will exit.
2341
2342 reset the failure is unrecoverable but confined to the guest. This
2343 occurs if the recipient is a guest guest which is not ready to
2344 handle memory failures.
2345
2346 Since
2347 5.2
2348
2349 MemoryFailureFlags (Object)
2350 Additional information on memory failures.
2351
2352 Members
2353 action-required: boolean
2354 whether a memory failure event is action-required or action-op‐
2355 tional (e.g. a failure during memory scrub).
2356
2357 recursive: boolean
2358 whether the failure occurred while the previous failure was
2359 still in progress.
2360
2361 Since
2362 5.2
2363
2364 NotifyVmexitOption (Enum)
2365 An enumeration of the options specified when enabling notify VM exit
2366
2367 Values
2368 run enable the feature, do nothing and continue if the notify VM
2369 exit happens.
2370
2371 internal-error
2372 enable the feature, raise a internal error if the notify VM exit
2373 happens.
2374
2375 disable
2376 disable the feature.
2377
2378 Since
2379 7.2
2380
2382 QCryptoTLSCredsEndpoint (Enum)
2383 The type of network endpoint that will be using the credentials. Most
2384 types of credential require different setup / structures depending on
2385 whether they will be used in a server versus a client.
2386
2387 Values
2388 client the network endpoint is acting as the client
2389
2390 server the network endpoint is acting as the server
2391
2392 Since
2393 2.5
2394
2395 QCryptoSecretFormat (Enum)
2396 The data format that the secret is provided in
2397
2398 Values
2399 raw raw bytes. When encoded in JSON only valid UTF-8 sequences can
2400 be used
2401
2402 base64 arbitrary base64 encoded binary data
2403
2404 Since
2405 2.6
2406
2407 QCryptoHashAlgorithm (Enum)
2408 The supported algorithms for computing content digests
2409
2410 Values
2411 md5 MD5. Should not be used in any new code, legacy compat only
2412
2413 sha1 SHA-1. Should not be used in any new code, legacy compat only
2414
2415 sha224 SHA-224. (since 2.7)
2416
2417 sha256 SHA-256. Current recommended strong hash.
2418
2419 sha384 SHA-384. (since 2.7)
2420
2421 sha512 SHA-512. (since 2.7)
2422
2423 ripemd160
2424 RIPEMD-160. (since 2.7)
2425
2426 Since
2427 2.6
2428
2429 QCryptoCipherAlgorithm (Enum)
2430 The supported algorithms for content encryption ciphers
2431
2432 Values
2433 aes-128
2434 AES with 128 bit / 16 byte keys
2435
2436 aes-192
2437 AES with 192 bit / 24 byte keys
2438
2439 aes-256
2440 AES with 256 bit / 32 byte keys
2441
2442 des DES with 56 bit / 8 byte keys. Do not use except in VNC. (since
2443 6.1)
2444
2445 3des 3DES(EDE) with 192 bit / 24 byte keys (since 2.9)
2446
2447 cast5-128
2448 Cast5 with 128 bit / 16 byte keys
2449
2450 serpent-128
2451 Serpent with 128 bit / 16 byte keys
2452
2453 serpent-192
2454 Serpent with 192 bit / 24 byte keys
2455
2456 serpent-256
2457 Serpent with 256 bit / 32 byte keys
2458
2459 twofish-128
2460 Twofish with 128 bit / 16 byte keys
2461
2462 twofish-192
2463 Twofish with 192 bit / 24 byte keys
2464
2465 twofish-256
2466 Twofish with 256 bit / 32 byte keys
2467
2468 Since
2469 2.6
2470
2471 QCryptoCipherMode (Enum)
2472 The supported modes for content encryption ciphers
2473
2474 Values
2475 ecb Electronic Code Book
2476
2477 cbc Cipher Block Chaining
2478
2479 xts XEX with tweaked code book and ciphertext stealing
2480
2481 ctr Counter (Since 2.8)
2482
2483 Since
2484 2.6
2485
2486 QCryptoIVGenAlgorithm (Enum)
2487 The supported algorithms for generating initialization vectors for full
2488 disk encryption. The 'plain' generator should not be used for disks
2489 with sector numbers larger than 2^32, except where compatibility with
2490 pre-existing Linux dm-crypt volumes is required.
2491
2492 Values
2493 plain 64-bit sector number truncated to 32-bits
2494
2495 plain64
2496 64-bit sector number
2497
2498 essiv 64-bit sector number encrypted with a hash of the encryption key
2499
2500 Since
2501 2.6
2502
2503 QCryptoBlockFormat (Enum)
2504 The supported full disk encryption formats
2505
2506 Values
2507 qcow QCow/QCow2 built-in AES-CBC encryption. Use only for liberating
2508 data from old images.
2509
2510 luks LUKS encryption format. Recommended for new images
2511
2512 Since
2513 2.6
2514
2515 QCryptoBlockOptionsBase (Object)
2516 The common options that apply to all full disk encryption formats
2517
2518 Members
2519 format: QCryptoBlockFormat
2520 the encryption format
2521
2522 Since
2523 2.6
2524
2525 QCryptoBlockOptionsQCow (Object)
2526 The options that apply to QCow/QCow2 AES-CBC encryption format
2527
2528 Members
2529 key-secret: string (optional)
2530 the ID of a QCryptoSecret object providing the decryption key.
2531 Mandatory except when probing image for metadata only.
2532
2533 Since
2534 2.6
2535
2536 QCryptoBlockOptionsLUKS (Object)
2537 The options that apply to LUKS encryption format
2538
2539 Members
2540 key-secret: string (optional)
2541 the ID of a QCryptoSecret object providing the decryption key.
2542 Mandatory except when probing image for metadata only.
2543
2544 Since
2545 2.6
2546
2547 QCryptoBlockCreateOptionsLUKS (Object)
2548 The options that apply to LUKS encryption format initialization
2549
2550 Members
2551 cipher-alg: QCryptoCipherAlgorithm (optional)
2552 the cipher algorithm for data encryption Currently defaults to
2553 'aes-256'.
2554
2555 cipher-mode: QCryptoCipherMode (optional)
2556 the cipher mode for data encryption Currently defaults to 'xts'
2557
2558 ivgen-alg: QCryptoIVGenAlgorithm (optional)
2559 the initialization vector generator Currently defaults to
2560 'plain64'
2561
2562 ivgen-hash-alg: QCryptoHashAlgorithm (optional)
2563 the initialization vector generator hash Currently defaults to
2564 'sha256'
2565
2566 hash-alg: QCryptoHashAlgorithm (optional)
2567 the master key hash algorithm Currently defaults to 'sha256'
2568
2569 iter-time: int (optional)
2570 number of milliseconds to spend in PBKDF passphrase processing.
2571 Currently defaults to 2000. (since 2.8)
2572
2573 The members of QCryptoBlockOptionsLUKS
2574
2575 Since
2576 2.6
2577
2578 QCryptoBlockOpenOptions (Object)
2579 The options that are available for all encryption formats when opening
2580 an existing volume
2581
2582 Members
2583 The members of QCryptoBlockOptionsBase
2584
2585 The members of QCryptoBlockOptionsQCow when format is "qcow"
2586
2587 The members of QCryptoBlockOptionsLUKS when format is "luks"
2588
2589 Since
2590 2.6
2591
2592 QCryptoBlockCreateOptions (Object)
2593 The options that are available for all encryption formats when initial‐
2594 izing a new volume
2595
2596 Members
2597 The members of QCryptoBlockOptionsBase
2598
2599 The members of QCryptoBlockOptionsQCow when format is "qcow"
2600
2601 The members of QCryptoBlockCreateOptionsLUKS when format is "luks"
2602
2603 Since
2604 2.6
2605
2606 QCryptoBlockInfoBase (Object)
2607 The common information that applies to all full disk encryption formats
2608
2609 Members
2610 format: QCryptoBlockFormat
2611 the encryption format
2612
2613 Since
2614 2.7
2615
2616 QCryptoBlockInfoLUKSSlot (Object)
2617 Information about the LUKS block encryption key slot options
2618
2619 Members
2620 active: boolean
2621 whether the key slot is currently in use
2622
2623 key-offset: int
2624 offset to the key material in bytes
2625
2626 iters: int (optional)
2627 number of PBKDF2 iterations for key material
2628
2629 stripes: int (optional)
2630 number of stripes for splitting key material
2631
2632 Since
2633 2.7
2634
2635 QCryptoBlockInfoLUKS (Object)
2636 Information about the LUKS block encryption options
2637
2638 Members
2639 cipher-alg: QCryptoCipherAlgorithm
2640 the cipher algorithm for data encryption
2641
2642 cipher-mode: QCryptoCipherMode
2643 the cipher mode for data encryption
2644
2645 ivgen-alg: QCryptoIVGenAlgorithm
2646 the initialization vector generator
2647
2648 ivgen-hash-alg: QCryptoHashAlgorithm (optional)
2649 the initialization vector generator hash
2650
2651 hash-alg: QCryptoHashAlgorithm
2652 the master key hash algorithm
2653
2654 payload-offset: int
2655 offset to the payload data in bytes
2656
2657 master-key-iters: int
2658 number of PBKDF2 iterations for key material
2659
2660 uuid: string
2661 unique identifier for the volume
2662
2663 slots: array of QCryptoBlockInfoLUKSSlot
2664 information about each key slot
2665
2666 Since
2667 2.7
2668
2669 QCryptoBlockInfo (Object)
2670 Information about the block encryption options
2671
2672 Members
2673 The members of QCryptoBlockInfoBase
2674
2675 The members of QCryptoBlockInfoLUKS when format is "luks"
2676
2677 Since
2678 2.7
2679
2680 QCryptoBlockLUKSKeyslotState (Enum)
2681 Defines state of keyslots that are affected by the update
2682
2683 Values
2684 active The slots contain the given password and marked as active
2685
2686 inactive
2687 The slots are erased (contain garbage) and marked as inactive
2688
2689 Since
2690 5.1
2691
2692 QCryptoBlockAmendOptionsLUKS (Object)
2693 This struct defines the update parameters that activate/de-activate set
2694 of keyslots
2695
2696 Members
2697 state: QCryptoBlockLUKSKeyslotState
2698 the desired state of the keyslots
2699
2700 new-secret: string (optional)
2701 The ID of a QCryptoSecret object providing the password to be
2702 written into added active keyslots
2703
2704 old-secret: string (optional)
2705 Optional (for deactivation only) If given will deactivate all
2706 keyslots that match password located in QCryptoSecret with this
2707 ID
2708
2709 iter-time: int (optional)
2710 Optional (for activation only) Number of milliseconds to spend
2711 in PBKDF passphrase processing for the newly activated keyslot.
2712 Currently defaults to 2000.
2713
2714 keyslot: int (optional)
2715 Optional. ID of the keyslot to activate/deactivate. For keyslot
2716 activation, keyslot should not be active already (this is unsafe
2717 to update an active keyslot), but possible if 'force' parameter
2718 is given. If keyslot is not given, first free keyslot will be
2719 written.
2720
2721 For keyslot deactivation, this parameter specifies the exact
2722 keyslot to deactivate
2723
2724 secret: string (optional)
2725 Optional. The ID of a QCryptoSecret object providing the pass‐
2726 word to use to retrieve current master key. Defaults to the
2727 same secret that was used to open the image
2728
2729 Since
2730 5.1
2731
2732 QCryptoBlockAmendOptions (Object)
2733 The options that are available for all encryption formats when amending
2734 encryption settings
2735
2736 Members
2737 The members of QCryptoBlockOptionsBase
2738
2739 The members of QCryptoBlockAmendOptionsLUKS when format is "luks"
2740
2741 Since
2742 5.1
2743
2744 SecretCommonProperties (Object)
2745 Properties for objects of classes derived from secret-common.
2746
2747 Members
2748 loaded: boolean (optional)
2749 if true, the secret is loaded immediately when applying this op‐
2750 tion and will probably fail when processing the next option.
2751 Don't use; only provided for compatibility. (default: false)
2752
2753 format: QCryptoSecretFormat (optional)
2754 the data format that the secret is provided in (default: raw)
2755
2756 keyid: string (optional)
2757 the name of another secret that should be used to decrypt the
2758 provided data. If not present, the data is assumed to be unen‐
2759 crypted.
2760
2761 iv: string (optional)
2762 the random initialization vector used for encryption of this
2763 particular secret. Should be a base64 encrypted string of the
2764 16-byte IV. Mandatory if keyid is given. Ignored if keyid is ab‐
2765 sent.
2766
2767 Features
2768 deprecated
2769 Member loaded is deprecated. Setting true doesn't make sense,
2770 and false is already the default.
2771
2772 Since
2773 2.6
2774
2775 SecretProperties (Object)
2776 Properties for secret objects.
2777
2778 Either data or file must be provided, but not both.
2779
2780 Members
2781 data: string (optional)
2782 the associated with the secret from
2783
2784 file: string (optional)
2785 the filename to load the data associated with the secret from
2786
2787 The members of SecretCommonProperties
2788
2789 Since
2790 2.6
2791
2792 SecretKeyringProperties (Object)
2793 Properties for secret_keyring objects.
2794
2795 Members
2796 serial: int
2797 serial number that identifies a key to get from the kernel
2798
2799 The members of SecretCommonProperties
2800
2801 Since
2802 5.1
2803
2804 TlsCredsProperties (Object)
2805 Properties for objects of classes derived from tls-creds.
2806
2807 Members
2808 verify-peer: boolean (optional)
2809 if true the peer credentials will be verified once the handshake
2810 is completed. This is a no-op for anonymous credentials. (de‐
2811 fault: true)
2812
2813 dir: string (optional)
2814 the path of the directory that contains the credential files
2815
2816 endpoint: QCryptoTLSCredsEndpoint (optional)
2817 whether the QEMU network backend that uses the credentials will
2818 be acting as a client or as a server (default: client)
2819
2820 priority: string (optional)
2821 a gnutls priority string as described at
2822 https://gnutls.org/manual/html_node/Priority-Strings.html
2823
2824 Since
2825 2.5
2826
2827 TlsCredsAnonProperties (Object)
2828 Properties for tls-creds-anon objects.
2829
2830 Members
2831 loaded: boolean (optional)
2832 if true, the credentials are loaded immediately when applying
2833 this option and will ignore options that are processed later.
2834 Don't use; only provided for compatibility. (default: false)
2835
2836 The members of TlsCredsProperties
2837
2838 Features
2839 deprecated
2840 Member loaded is deprecated. Setting true doesn't make sense,
2841 and false is already the default.
2842
2843 Since
2844 2.5
2845
2846 TlsCredsPskProperties (Object)
2847 Properties for tls-creds-psk objects.
2848
2849 Members
2850 loaded: boolean (optional)
2851 if true, the credentials are loaded immediately when applying
2852 this option and will ignore options that are processed later.
2853 Don't use; only provided for compatibility. (default: false)
2854
2855 username: string (optional)
2856 the username which will be sent to the server. For clients
2857 only. If absent, "qemu" is sent and the property will read back
2858 as an empty string.
2859
2860 The members of TlsCredsProperties
2861
2862 Features
2863 deprecated
2864 Member loaded is deprecated. Setting true doesn't make sense,
2865 and false is already the default.
2866
2867 Since
2868 3.0
2869
2870 TlsCredsX509Properties (Object)
2871 Properties for tls-creds-x509 objects.
2872
2873 Members
2874 loaded: boolean (optional)
2875 if true, the credentials are loaded immediately when applying
2876 this option and will ignore options that are processed later.
2877 Don't use; only provided for compatibility. (default: false)
2878
2879 sanity-check: boolean (optional)
2880 if true, perform some sanity checks before using the credentials
2881 (default: true)
2882
2883 passwordid: string (optional)
2884 For the server-key.pem and client-key.pem files which contain
2885 sensitive private keys, it is possible to use an encrypted ver‐
2886 sion by providing the passwordid parameter. This provides the
2887 ID of a previously created secret object containing the password
2888 for decryption.
2889
2890 The members of TlsCredsProperties
2891
2892 Features
2893 deprecated
2894 Member loaded is deprecated. Setting true doesn't make sense,
2895 and false is already the default.
2896
2897 Since
2898 2.5
2899
2900 QCryptoAkCipherAlgorithm (Enum)
2901 The supported algorithms for asymmetric encryption ciphers
2902
2903 Values
2904 rsa RSA algorithm
2905
2906 Since
2907 7.1
2908
2909 QCryptoAkCipherKeyType (Enum)
2910 The type of asymmetric keys.
2911
2912 Values
2913 public Not documented
2914
2915 private
2916 Not documented
2917
2918 Since
2919 7.1
2920
2921 QCryptoRSAPaddingAlgorithm (Enum)
2922 The padding algorithm for RSA.
2923
2924 Values
2925 raw no padding used
2926
2927 pkcs1 pkcs1#v1.5
2928
2929 Since
2930 7.1
2931
2932 QCryptoAkCipherOptionsRSA (Object)
2933 Specific parameters for RSA algorithm.
2934
2935 Members
2936 hash-alg: QCryptoHashAlgorithm
2937 QCryptoHashAlgorithm
2938
2939 padding-alg: QCryptoRSAPaddingAlgorithm
2940 QCryptoRSAPaddingAlgorithm
2941
2942 Since
2943 7.1
2944
2945 QCryptoAkCipherOptions (Object)
2946 The options that are available for all asymmetric key algorithms when
2947 creating a new QCryptoAkCipher.
2948
2949 Members
2950 alg: QCryptoAkCipherAlgorithm
2951 Not documented
2952
2953 The members of QCryptoAkCipherOptionsRSA when alg is "rsa"
2954
2955 Since
2956 7.1
2957
2959 Block core (VM unrelated)
2960 Background jobs
2961 JobType (Enum)
2962 Type of a background job.
2963
2964 Values
2965 commit block commit job type, see "block-commit"
2966
2967 stream block stream job type, see "block-stream"
2968
2969 mirror drive mirror job type, see "drive-mirror"
2970
2971 backup drive backup job type, see "drive-backup"
2972
2973 create image creation job type, see "blockdev-create" (since 3.0)
2974
2975 amend image options amend job type, see "x-blockdev-amend" (since 5.1)
2976
2977 snapshot-load
2978 snapshot load job type, see "snapshot-load" (since 6.0)
2979
2980 snapshot-save
2981 snapshot save job type, see "snapshot-save" (since 6.0)
2982
2983 snapshot-delete
2984 snapshot delete job type, see "snapshot-delete" (since 6.0)
2985
2986 Since
2987 1.7
2988
2989 JobStatus (Enum)
2990 Indicates the present state of a given job in its lifetime.
2991
2992 Values
2993 undefined
2994 Erroneous, default state. Should not ever be visible.
2995
2996 created
2997 The job has been created, but not yet started.
2998
2999 running
3000 The job is currently running.
3001
3002 paused The job is running, but paused. The pause may be requested by
3003 either the QMP user or by internal processes.
3004
3005 ready The job is running, but is ready for the user to signal comple‐
3006 tion. This is used for long-running jobs like mirror that are
3007 designed to run indefinitely.
3008
3009 standby
3010 The job is ready, but paused. This is nearly identical to
3011 paused. The job may return to ready or otherwise be canceled.
3012
3013 waiting
3014 The job is waiting for other jobs in the transaction to converge
3015 to the waiting state. This status will likely not be visible for
3016 the last job in a transaction.
3017
3018 pending
3019 The job has finished its work, but has finalization steps that
3020 it needs to make prior to completing. These changes will require
3021 manual intervention via job-finalize if auto-finalize was set to
3022 false. These pending changes may still fail.
3023
3024 aborting
3025 The job is in the process of being aborted, and will finish with
3026 an error. The job will afterwards report that it is concluded.
3027 This status may not be visible to the management process.
3028
3029 concluded
3030 The job has finished all work. If auto-dismiss was set to false,
3031 the job will remain in the query list until it is dismissed via
3032 job-dismiss.
3033
3034 null The job is in the process of being dismantled. This state should
3035 not ever be visible externally.
3036
3037 Since
3038 2.12
3039
3040 JobVerb (Enum)
3041 Represents command verbs that can be applied to a job.
3042
3043 Values
3044 cancel see job-cancel
3045
3046 pause see job-pause
3047
3048 resume see job-resume
3049
3050 set-speed
3051 see block-job-set-speed
3052
3053 complete
3054 see job-complete
3055
3056 dismiss
3057 see job-dismiss
3058
3059 finalize
3060 see job-finalize
3061
3062 Since
3063 2.12
3064
3065 JOB_STATUS_CHANGE (Event)
3066 Emitted when a job transitions to a different status.
3067
3068 Arguments
3069 id: string
3070 The job identifier
3071
3072 status: JobStatus
3073 The new job status
3074
3075 Since
3076 3.0
3077
3078 job-pause (Command)
3079 Pause an active job.
3080
3081 This command returns immediately after marking the active job for paus‐
3082 ing. Pausing an already paused job is an error.
3083
3084 The job will pause as soon as possible, which means transitioning into
3085 the PAUSED state if it was RUNNING, or into STANDBY if it was READY.
3086 The corresponding JOB_STATUS_CHANGE event will be emitted.
3087
3088 Cancelling a paused job automatically resumes it.
3089
3090 Arguments
3091 id: string
3092 The job identifier.
3093
3094 Since
3095 3.0
3096
3097 job-resume (Command)
3098 Resume a paused job.
3099
3100 This command returns immediately after resuming a paused job. Resuming
3101 an already running job is an error.
3102
3103 id : The job identifier.
3104
3105 Arguments
3106 id: string
3107 Not documented
3108
3109 Since
3110 3.0
3111
3112 job-cancel (Command)
3113 Instruct an active background job to cancel at the next opportunity.
3114 This command returns immediately after marking the active job for can‐
3115 cellation.
3116
3117 The job will cancel as soon as possible and then emit a JOB_STA‐
3118 TUS_CHANGE event. Usually, the status will change to ABORTING, but it
3119 is possible that a job successfully completes (e.g. because it was al‐
3120 most done and there was no opportunity to cancel earlier than complet‐
3121 ing the job) and transitions to PENDING instead.
3122
3123 Arguments
3124 id: string
3125 The job identifier.
3126
3127 Since
3128 3.0
3129
3130 job-complete (Command)
3131 Manually trigger completion of an active job in the READY state.
3132
3133 Arguments
3134 id: string
3135 The job identifier.
3136
3137 Since
3138 3.0
3139
3140 job-dismiss (Command)
3141 Deletes a job that is in the CONCLUDED state. This command only needs
3142 to be run explicitly for jobs that don't have automatic dismiss en‐
3143 abled.
3144
3145 This command will refuse to operate on any job that has not yet reached
3146 its terminal state, JOB_STATUS_CONCLUDED. For jobs that make use of
3147 JOB_READY event, job-cancel or job-complete will still need to be used
3148 as appropriate.
3149
3150 Arguments
3151 id: string
3152 The job identifier.
3153
3154 Since
3155 3.0
3156
3157 job-finalize (Command)
3158 Instructs all jobs in a transaction (or a single job if it is not part
3159 of any transaction) to finalize any graph changes and do any necessary
3160 cleanup. This command requires that all involved jobs are in the PEND‐
3161 ING state.
3162
3163 For jobs in a transaction, instructing one job to finalize will force
3164 ALL jobs in the transaction to finalize, so it is only necessary to in‐
3165 struct a single member job to finalize.
3166
3167 Arguments
3168 id: string
3169 The identifier of any job in the transaction, or of a job that
3170 is not part of any transaction.
3171
3172 Since
3173 3.0
3174
3175 JobInfo (Object)
3176 Information about a job.
3177
3178 Members
3179 id: string
3180 The job identifier
3181
3182 type: JobType
3183 The kind of job that is being performed
3184
3185 status: JobStatus
3186 Current job state/status
3187
3188 current-progress: int
3189 Progress made until now. The unit is arbitrary and the value can
3190 only meaningfully be used for the ratio of current-progress to
3191 total-progress. The value is monotonically increasing.
3192
3193 total-progress: int
3194 Estimated current-progress value at the completion of the job.
3195 This value can arbitrarily change while the job is running, in
3196 both directions.
3197
3198 error: string (optional)
3199 If this field is present, the job failed; if it is still missing
3200 in the CONCLUDED state, this indicates successful completion.
3201
3202 The value is a human-readable error message to describe the rea‐
3203 son for the job failure. It should not be parsed by applica‐
3204 tions.
3205
3206 Since
3207 3.0
3208
3209 query-jobs (Command)
3210 Return information about jobs.
3211
3212 Returns
3213 a list with a JobInfo for each active job
3214
3215 Since
3216 3.0
3217
3218 SnapshotInfo (Object)
3219 Members
3220 id: string
3221 unique snapshot id
3222
3223 name: string
3224 user chosen name
3225
3226 vm-state-size: int
3227 size of the VM state
3228
3229 date-sec: int
3230 UTC date of the snapshot in seconds
3231
3232 date-nsec: int
3233 fractional part in nano seconds to be used with date-sec
3234
3235 vm-clock-sec: int
3236 VM clock relative to boot in seconds
3237
3238 vm-clock-nsec: int
3239 fractional part in nano seconds to be used with vm-clock-sec
3240
3241 icount: int (optional)
3242 Current instruction count. Appears when execution record/replay
3243 is enabled. Used for "time-traveling" to match the moment in the
3244 recorded execution with the snapshots. This counter may be ob‐
3245 tained through query-replay command (since 5.2)
3246
3247 Since
3248 1.3
3249
3250 ImageInfoSpecificQCow2EncryptionBase (Object)
3251 Members
3252 format: BlockdevQcow2EncryptionFormat
3253 The encryption format
3254
3255 Since
3256 2.10
3257
3258 ImageInfoSpecificQCow2Encryption (Object)
3259 Members
3260 The members of ImageInfoSpecificQCow2EncryptionBase
3261
3262 The members of QCryptoBlockInfoLUKS when format is "luks"
3263
3264 Since
3265 2.10
3266
3267 ImageInfoSpecificQCow2 (Object)
3268 Members
3269 compat: string
3270 compatibility level
3271
3272 data-file: string (optional)
3273 the filename of the external data file that is stored in the im‐
3274 age and used as a default for opening the image (since: 4.0)
3275
3276 data-file-raw: boolean (optional)
3277 True if the external data file must stay valid as a standalone
3278 (read-only) raw image without looking at qcow2 metadata (since:
3279 4.0)
3280
3281 extended-l2: boolean (optional)
3282 true if the image has extended L2 entries; only valid for compat
3283 >= 1.1 (since 5.2)
3284
3285 lazy-refcounts: boolean (optional)
3286 on or off; only valid for compat >= 1.1
3287
3288 corrupt: boolean (optional)
3289 true if the image has been marked corrupt; only valid for compat
3290 >= 1.1 (since 2.2)
3291
3292 refcount-bits: int
3293 width of a refcount entry in bits (since 2.3)
3294
3295 encrypt: ImageInfoSpecificQCow2Encryption (optional)
3296 details about encryption parameters; only set if image is en‐
3297 crypted (since 2.10)
3298
3299 bitmaps: array of Qcow2BitmapInfo (optional)
3300 A list of qcow2 bitmap details (since 4.0)
3301
3302 compression-type: Qcow2CompressionType
3303 the image cluster compression method (since 5.1)
3304
3305 Since
3306 1.7
3307
3308 ImageInfoSpecificVmdk (Object)
3309 Members
3310 create-type: string
3311 The create type of VMDK image
3312
3313 cid: int
3314 Content id of image
3315
3316 parent-cid: int
3317 Parent VMDK image's cid
3318
3319 extents: array of ImageInfo
3320 List of extent files
3321
3322 Since
3323 1.7
3324
3325 ImageInfoSpecificRbd (Object)
3326 Members
3327 encryption-format: RbdImageEncryptionFormat (optional)
3328 Image encryption format
3329
3330 Since
3331 6.1
3332
3333 ImageInfoSpecificKind (Enum)
3334 Values
3335 luks Since 2.7
3336
3337 rbd Since 6.1
3338
3339 qcow2 Not documented
3340
3341 vmdk Not documented
3342
3343 Since
3344 1.7
3345
3346 ImageInfoSpecificQCow2Wrapper (Object)
3347 Members
3348 data: ImageInfoSpecificQCow2
3349 Not documented
3350
3351 Since
3352 1.7
3353
3354 ImageInfoSpecificVmdkWrapper (Object)
3355 Members
3356 data: ImageInfoSpecificVmdk
3357 Not documented
3358
3359 Since
3360 6.1
3361
3362 ImageInfoSpecificLUKSWrapper (Object)
3363 Members
3364 data: QCryptoBlockInfoLUKS
3365 Not documented
3366
3367 Since
3368 2.7
3369
3370 ImageInfoSpecificRbdWrapper (Object)
3371 Members
3372 data: ImageInfoSpecificRbd
3373 Not documented
3374
3375 Since
3376 6.1
3377
3378 ImageInfoSpecific (Object)
3379 A discriminated record of image format specific information structures.
3380
3381 Members
3382 type: ImageInfoSpecificKind
3383 Not documented
3384
3385 The members of ImageInfoSpecificQCow2Wrapper when type is "qcow2"
3386
3387 The members of ImageInfoSpecificVmdkWrapper when type is "vmdk"
3388
3389 The members of ImageInfoSpecificLUKSWrapper when type is "luks"
3390
3391 The members of ImageInfoSpecificRbdWrapper when type is "rbd"
3392
3393 Since
3394 1.7
3395
3396 ImageInfo (Object)
3397 Information about a QEMU image file
3398
3399 Members
3400 filename: string
3401 name of the image file
3402
3403 format: string
3404 format of the image file
3405
3406 virtual-size: int
3407 maximum capacity in bytes of the image
3408
3409 actual-size: int (optional)
3410 actual size on disk in bytes of the image
3411
3412 dirty-flag: boolean (optional)
3413 true if image is not cleanly closed
3414
3415 cluster-size: int (optional)
3416 size of a cluster in bytes
3417
3418 encrypted: boolean (optional)
3419 true if the image is encrypted
3420
3421 compressed: boolean (optional)
3422 true if the image is compressed (Since 1.7)
3423
3424 backing-filename: string (optional)
3425 name of the backing file
3426
3427 full-backing-filename: string (optional)
3428 full path of the backing file
3429
3430 backing-filename-format: string (optional)
3431 the format of the backing file
3432
3433 snapshots: array of SnapshotInfo (optional)
3434 list of VM snapshots
3435
3436 backing-image: ImageInfo (optional)
3437 info of the backing image (since 1.6)
3438
3439 format-specific: ImageInfoSpecific (optional)
3440 structure supplying additional format-specific information
3441 (since 1.7)
3442
3443 Since
3444 1.3
3445
3446 ImageCheck (Object)
3447 Information about a QEMU image file check
3448
3449 Members
3450 filename: string
3451 name of the image file checked
3452
3453 format: string
3454 format of the image file checked
3455
3456 check-errors: int
3457 number of unexpected errors occurred during check
3458
3459 image-end-offset: int (optional)
3460 offset (in bytes) where the image ends, this field is present if
3461 the driver for the image format supports it
3462
3463 corruptions: int (optional)
3464 number of corruptions found during the check if any
3465
3466 leaks: int (optional)
3467 number of leaks found during the check if any
3468
3469 corruptions-fixed: int (optional)
3470 number of corruptions fixed during the check if any
3471
3472 leaks-fixed: int (optional)
3473 number of leaks fixed during the check if any
3474
3475 total-clusters: int (optional)
3476 total number of clusters, this field is present if the driver
3477 for the image format supports it
3478
3479 allocated-clusters: int (optional)
3480 total number of allocated clusters, this field is present if the
3481 driver for the image format supports it
3482
3483 fragmented-clusters: int (optional)
3484 total number of fragmented clusters, this field is present if
3485 the driver for the image format supports it
3486
3487 compressed-clusters: int (optional)
3488 total number of compressed clusters, this field is present if
3489 the driver for the image format supports it
3490
3491 Since
3492 1.4
3493
3494 MapEntry (Object)
3495 Mapping information from a virtual block range to a host file range
3496
3497 Members
3498 start: int
3499 virtual (guest) offset of the first byte described by this entry
3500
3501 length: int
3502 the number of bytes of the mapped virtual range
3503
3504 data: boolean
3505 reading the image will actually read data from a file (in par‐
3506 ticular, if offset is present this means that the sectors are
3507 not simply preallocated, but contain actual data in raw format)
3508
3509 zero: boolean
3510 whether the virtual blocks read as zeroes
3511
3512 depth: int
3513 number of layers (0 = top image, 1 = top image's backing file,
3514 ..., n - 1 = bottom image (where n is the number of images in
3515 the chain)) before reaching one for which the range is allocated
3516
3517 present: boolean
3518 true if this layer provides the data, false if adding a backing
3519 layer could impact this region (since 6.1)
3520
3521 offset: int (optional)
3522 if present, the image file stores the data for this range in raw
3523 format at the given (host) offset
3524
3525 filename: string (optional)
3526 filename that is referred to by offset
3527
3528 Since
3529 2.6
3530
3531 BlockdevCacheInfo (Object)
3532 Cache mode information for a block device
3533
3534 Members
3535 writeback: boolean
3536 true if writeback mode is enabled
3537
3538 direct: boolean
3539 true if the host page cache is bypassed (O_DIRECT)
3540
3541 no-flush: boolean
3542 true if flush requests are ignored for the device
3543
3544 Since
3545 2.3
3546
3547 BlockDeviceInfo (Object)
3548 Information about the backing device for a block device.
3549
3550 Members
3551 file: string
3552 the filename of the backing device
3553
3554 node-name: string (optional)
3555 the name of the block driver node (Since 2.0)
3556
3557 ro: boolean
3558 true if the backing device was open read-only
3559
3560 drv: string
3561 the name of the block format used to open the backing device. As
3562 of 0.14 this can be: 'blkdebug', 'bochs', 'cloop', 'cow', 'dmg',
3563 'file', 'file', 'ftp', 'ftps', 'host_cdrom', 'host_device',
3564 'http', 'https', 'luks', 'nbd', 'parallels', 'qcow', 'qcow2',
3565 'raw', 'vdi', 'vmdk', 'vpc', 'vvfat' 2.2: 'archipelago' added,
3566 'cow' dropped 2.3: 'host_floppy' deprecated 2.5: 'host_floppy'
3567 dropped 2.6: 'luks' added 2.8: 'replication' added, 'tftp'
3568 dropped 2.9: 'archipelago' dropped
3569
3570 backing_file: string (optional)
3571 the name of the backing file (for copy-on-write)
3572
3573 backing_file_depth: int
3574 number of files in the backing file chain (since: 1.2)
3575
3576 encrypted: boolean
3577 true if the backing device is encrypted
3578
3579 detect_zeroes: BlockdevDetectZeroesOptions
3580 detect and optimize zero writes (Since 2.1)
3581
3582 bps: int
3583 total throughput limit in bytes per second is specified
3584
3585 bps_rd: int
3586 read throughput limit in bytes per second is specified
3587
3588 bps_wr: int
3589 write throughput limit in bytes per second is specified
3590
3591 iops: int
3592 total I/O operations per second is specified
3593
3594 iops_rd: int
3595 read I/O operations per second is specified
3596
3597 iops_wr: int
3598 write I/O operations per second is specified
3599
3600 image: ImageInfo
3601 the info of image used (since: 1.6)
3602
3603 bps_max: int (optional)
3604
3605 total throughput limit during bursts,
3606 in bytes (Since 1.7)
3607
3608 bps_rd_max: int (optional)
3609
3610 read throughput limit during bursts,
3611 in bytes (Since 1.7)
3612
3613 bps_wr_max: int (optional)
3614
3615 write throughput limit during bursts,
3616 in bytes (Since 1.7)
3617
3618 iops_max: int (optional)
3619
3620 total I/O operations per second during bursts,
3621 in bytes (Since 1.7)
3622
3623 iops_rd_max: int (optional)
3624
3625 read I/O operations per second during bursts,
3626 in bytes (Since 1.7)
3627
3628 iops_wr_max: int (optional)
3629
3630 write I/O operations per second during bursts,
3631 in bytes (Since 1.7)
3632
3633 bps_max_length: int (optional)
3634
3635 maximum length of the bps_max burst
3636 period, in seconds. (Since 2.6)
3637
3638 bps_rd_max_length: int (optional)
3639
3640 maximum length of the bps_rd_max
3641 burst period, in seconds. (Since 2.6)
3642
3643 bps_wr_max_length: int (optional)
3644
3645 maximum length of the bps_wr_max
3646 burst period, in seconds. (Since 2.6)
3647
3648 iops_max_length: int (optional)
3649
3650 maximum length of the iops burst
3651 period, in seconds. (Since 2.6)
3652
3653 iops_rd_max_length: int (optional)
3654
3655 maximum length of the iops_rd_max
3656 burst period, in seconds. (Since 2.6)
3657
3658 iops_wr_max_length: int (optional)
3659
3660 maximum length of the iops_wr_max
3661 burst period, in seconds. (Since 2.6)
3662
3663 iops_size: int (optional)
3664 an I/O size in bytes (Since 1.7)
3665
3666 group: string (optional)
3667 throttle group name (Since 2.4)
3668
3669 cache: BlockdevCacheInfo
3670 the cache mode used for the block device (since: 2.3)
3671
3672 write_threshold: int
3673 configured write threshold for the device. 0 if disabled.
3674 (Since 2.3)
3675
3676 dirty-bitmaps: array of BlockDirtyInfo (optional)
3677 dirty bitmaps information (only present if node has one or more
3678 dirty bitmaps) (Since 4.2)
3679
3680 Since
3681 0.14
3682
3683 BlockDeviceIoStatus (Enum)
3684 An enumeration of block device I/O status.
3685
3686 Values
3687 ok The last I/O operation has succeeded
3688
3689 failed The last I/O operation has failed
3690
3691 nospace
3692 The last I/O operation has failed due to a no-space condition
3693
3694 Since
3695 1.0
3696
3697 BlockDirtyInfo (Object)
3698 Block dirty bitmap information.
3699
3700 Members
3701 name: string (optional)
3702 the name of the dirty bitmap (Since 2.4)
3703
3704 count: int
3705 number of dirty bytes according to the dirty bitmap
3706
3707 granularity: int
3708 granularity of the dirty bitmap in bytes (since 1.4)
3709
3710 recording: boolean
3711 true if the bitmap is recording new writes from the guest. Re‐
3712 places active and disabled statuses. (since 4.0)
3713
3714 busy: boolean
3715 true if the bitmap is in-use by some operation (NBD or jobs) and
3716 cannot be modified via QMP or used by another operation. Re‐
3717 places locked and frozen statuses. (since 4.0)
3718
3719 persistent: boolean
3720 true if the bitmap was stored on disk, is scheduled to be stored
3721 on disk, or both. (since 4.0)
3722
3723 inconsistent: boolean (optional)
3724 true if this is a persistent bitmap that was improperly stored.
3725 Implies persistent to be true; recording and busy to be false.
3726 This bitmap cannot be used. To remove it, use block-dirty-bit‐
3727 map-remove. (Since 4.0)
3728
3729 Since
3730 1.3
3731
3732 Qcow2BitmapInfoFlags (Enum)
3733 An enumeration of flags that a bitmap can report to the user.
3734
3735 Values
3736 in-use This flag is set by any process actively modifying the qcow2
3737 file, and cleared when the updated bitmap is flushed to the
3738 qcow2 image. The presence of this flag in an offline image
3739 means that the bitmap was not saved correctly after its last us‐
3740 age, and may contain inconsistent data.
3741
3742 auto The bitmap must reflect all changes of the virtual disk by any
3743 application that would write to this qcow2 file.
3744
3745 Since
3746 4.0
3747
3748 Qcow2BitmapInfo (Object)
3749 Qcow2 bitmap information.
3750
3751 Members
3752 name: string
3753 the name of the bitmap
3754
3755 granularity: int
3756 granularity of the bitmap in bytes
3757
3758 flags: array of Qcow2BitmapInfoFlags
3759 flags of the bitmap
3760
3761 Since
3762 4.0
3763
3764 BlockLatencyHistogramInfo (Object)
3765 Block latency histogram.
3766
3767 Members
3768 boundaries: array of int
3769 list of interval boundary values in nanoseconds, all greater
3770 than zero and in ascending order. For example, the list [10,
3771 50, 100] produces the following histogram intervals: [0, 10),
3772 [10, 50), [50, 100), [100, +inf).
3773
3774 bins: array of int
3775 list of io request counts corresponding to histogram intervals.
3776 len(bins) = len(boundaries) + 1 For the example above, bins may
3777 be something like [3, 1, 5, 2], and corresponding histogram
3778 looks like:
3779
3780 5| *
3781 4| *
3782 3| * *
3783 2| * * *
3784 1| * * * *
3785 +------------------
3786 10 50 100
3787
3788 Since
3789 4.0
3790
3791 BlockInfo (Object)
3792 Block device information. This structure describes a virtual device
3793 and the backing device associated with it.
3794
3795 Members
3796 device: string
3797 The device name associated with the virtual device.
3798
3799 qdev: string (optional)
3800 The qdev ID, or if no ID is assigned, the QOM path of the block
3801 device. (since 2.10)
3802
3803 type: string
3804 This field is returned only for compatibility reasons, it should
3805 not be used (always returns 'unknown')
3806
3807 removable: boolean
3808 True if the device supports removable media.
3809
3810 locked: boolean
3811 True if the guest has locked this device from having its media
3812 removed
3813
3814 tray_open: boolean (optional)
3815 True if the device's tray is open (only present if it has a
3816 tray)
3817
3818 io-status: BlockDeviceIoStatus (optional)
3819 BlockDeviceIoStatus. Only present if the device supports it and
3820 the VM is configured to stop on errors (supported device models:
3821 virtio-blk, IDE, SCSI except scsi-generic)
3822
3823 inserted: BlockDeviceInfo (optional)
3824 BlockDeviceInfo describing the device if media is present
3825
3826 Since
3827 0.14
3828
3829 BlockMeasureInfo (Object)
3830 Image file size calculation information. This structure describes the
3831 size requirements for creating a new image file.
3832
3833 The size requirements depend on the new image file format. File size
3834 always equals virtual disk size for the 'raw' format, even for sparse
3835 POSIX files. Compact formats such as 'qcow2' represent unallocated and
3836 zero regions efficiently so file size may be smaller than virtual disk
3837 size.
3838
3839 The values are upper bounds that are guaranteed to fit the new image
3840 file. Subsequent modification, such as internal snapshot or further
3841 bitmap creation, may require additional space and is not covered here.
3842
3843 Members
3844 required: int
3845 Size required for a new image file, in bytes, when copying just
3846 allocated guest-visible contents.
3847
3848 fully-allocated: int
3849 Image file size, in bytes, once data has been written to all
3850 sectors, when copying just guest-visible contents.
3851
3852 bitmaps: int (optional)
3853 Additional size required if all the top-level bitmap metadata in
3854 the source image were to be copied to the destination, present
3855 only when source and destination both support persistent bit‐
3856 maps. (since 5.1)
3857
3858 Since
3859 2.10
3860
3861 query-block (Command)
3862 Get a list of BlockInfo for all virtual block devices.
3863
3864 Returns
3865 a list of BlockInfo describing each virtual block device. Filter nodes
3866 that were created implicitly are skipped over.
3867
3868 Since
3869 0.14
3870
3871 Example
3872 -> { "execute": "query-block" }
3873 <- {
3874 "return":[
3875 {
3876 "io-status": "ok",
3877 "device":"ide0-hd0",
3878 "locked":false,
3879 "removable":false,
3880 "inserted":{
3881 "ro":false,
3882 "drv":"qcow2",
3883 "encrypted":false,
3884 "file":"disks/test.qcow2",
3885 "backing_file_depth":1,
3886 "bps":1000000,
3887 "bps_rd":0,
3888 "bps_wr":0,
3889 "iops":1000000,
3890 "iops_rd":0,
3891 "iops_wr":0,
3892 "bps_max": 8000000,
3893 "bps_rd_max": 0,
3894 "bps_wr_max": 0,
3895 "iops_max": 0,
3896 "iops_rd_max": 0,
3897 "iops_wr_max": 0,
3898 "iops_size": 0,
3899 "detect_zeroes": "on",
3900 "write_threshold": 0,
3901 "image":{
3902 "filename":"disks/test.qcow2",
3903 "format":"qcow2",
3904 "virtual-size":2048000,
3905 "backing_file":"base.qcow2",
3906 "full-backing-filename":"disks/base.qcow2",
3907 "backing-filename-format":"qcow2",
3908 "snapshots":[
3909 {
3910 "id": "1",
3911 "name": "snapshot1",
3912 "vm-state-size": 0,
3913 "date-sec": 10000200,
3914 "date-nsec": 12,
3915 "vm-clock-sec": 206,
3916 "vm-clock-nsec": 30
3917 }
3918 ],
3919 "backing-image":{
3920 "filename":"disks/base.qcow2",
3921 "format":"qcow2",
3922 "virtual-size":2048000
3923 }
3924 }
3925 },
3926 "qdev": "ide_disk",
3927 "type":"unknown"
3928 },
3929 {
3930 "io-status": "ok",
3931 "device":"ide1-cd0",
3932 "locked":false,
3933 "removable":true,
3934 "qdev": "/machine/unattached/device[23]",
3935 "tray_open": false,
3936 "type":"unknown"
3937 },
3938 {
3939 "device":"floppy0",
3940 "locked":false,
3941 "removable":true,
3942 "qdev": "/machine/unattached/device[20]",
3943 "type":"unknown"
3944 },
3945 {
3946 "device":"sd0",
3947 "locked":false,
3948 "removable":true,
3949 "type":"unknown"
3950 }
3951 ]
3952 }
3953
3954 BlockDeviceTimedStats (Object)
3955 Statistics of a block device during a given interval of time.
3956
3957 Members
3958 interval_length: int
3959 Interval used for calculating the statistics, in seconds.
3960
3961 min_rd_latency_ns: int
3962 Minimum latency of read operations in the defined interval, in
3963 nanoseconds.
3964
3965 min_wr_latency_ns: int
3966 Minimum latency of write operations in the defined interval, in
3967 nanoseconds.
3968
3969 min_flush_latency_ns: int
3970 Minimum latency of flush operations in the defined interval, in
3971 nanoseconds.
3972
3973 max_rd_latency_ns: int
3974 Maximum latency of read operations in the defined interval, in
3975 nanoseconds.
3976
3977 max_wr_latency_ns: int
3978 Maximum latency of write operations in the defined interval, in
3979 nanoseconds.
3980
3981 max_flush_latency_ns: int
3982 Maximum latency of flush operations in the defined interval, in
3983 nanoseconds.
3984
3985 avg_rd_latency_ns: int
3986 Average latency of read operations in the defined interval, in
3987 nanoseconds.
3988
3989 avg_wr_latency_ns: int
3990 Average latency of write operations in the defined interval, in
3991 nanoseconds.
3992
3993 avg_flush_latency_ns: int
3994 Average latency of flush operations in the defined interval, in
3995 nanoseconds.
3996
3997 avg_rd_queue_depth: number
3998 Average number of pending read operations in the defined inter‐
3999 val.
4000
4001 avg_wr_queue_depth: number
4002 Average number of pending write operations in the defined inter‐
4003 val.
4004
4005 Since
4006 2.5
4007
4008 BlockDeviceStats (Object)
4009 Statistics of a virtual block device or a block backing device.
4010
4011 Members
4012 rd_bytes: int
4013 The number of bytes read by the device.
4014
4015 wr_bytes: int
4016 The number of bytes written by the device.
4017
4018 unmap_bytes: int
4019 The number of bytes unmapped by the device (Since 4.2)
4020
4021 rd_operations: int
4022 The number of read operations performed by the device.
4023
4024 wr_operations: int
4025 The number of write operations performed by the device.
4026
4027 flush_operations: int
4028 The number of cache flush operations performed by the device
4029 (since 0.15)
4030
4031 unmap_operations: int
4032 The number of unmap operations performed by the device (Since
4033 4.2)
4034
4035 rd_total_time_ns: int
4036 Total time spent on reads in nanoseconds (since 0.15).
4037
4038 wr_total_time_ns: int
4039 Total time spent on writes in nanoseconds (since 0.15).
4040
4041 flush_total_time_ns: int
4042 Total time spent on cache flushes in nanoseconds (since 0.15).
4043
4044 unmap_total_time_ns: int
4045 Total time spent on unmap operations in nanoseconds (Since 4.2)
4046
4047 wr_highest_offset: int
4048 The offset after the greatest byte written to the device. The
4049 intended use of this information is for growable sparse files
4050 (like qcow2) that are used on top of a physical device.
4051
4052 rd_merged: int
4053 Number of read requests that have been merged into another re‐
4054 quest (Since 2.3).
4055
4056 wr_merged: int
4057 Number of write requests that have been merged into another re‐
4058 quest (Since 2.3).
4059
4060 unmap_merged: int
4061 Number of unmap requests that have been merged into another re‐
4062 quest (Since 4.2)
4063
4064 idle_time_ns: int (optional)
4065 Time since the last I/O operation, in nanoseconds. If the field
4066 is absent it means that there haven't been any operations yet
4067 (Since 2.5).
4068
4069 failed_rd_operations: int
4070 The number of failed read operations performed by the device
4071 (Since 2.5)
4072
4073 failed_wr_operations: int
4074 The number of failed write operations performed by the device
4075 (Since 2.5)
4076
4077 failed_flush_operations: int
4078 The number of failed flush operations performed by the device
4079 (Since 2.5)
4080
4081 failed_unmap_operations: int
4082 The number of failed unmap operations performed by the device
4083 (Since 4.2)
4084
4085 invalid_rd_operations: int
4086
4087 The number of invalid read operations
4088 performed by the device (Since 2.5)
4089
4090 invalid_wr_operations: int
4091 The number of invalid write operations performed by the device
4092 (Since 2.5)
4093
4094 invalid_flush_operations: int
4095 The number of invalid flush operations performed by the device
4096 (Since 2.5)
4097
4098 invalid_unmap_operations: int
4099 The number of invalid unmap operations performed by the device
4100 (Since 4.2)
4101
4102 account_invalid: boolean
4103 Whether invalid operations are included in the last access sta‐
4104 tistics (Since 2.5)
4105
4106 account_failed: boolean
4107 Whether failed operations are included in the latency and last
4108 access statistics (Since 2.5)
4109
4110 timed_stats: array of BlockDeviceTimedStats
4111 Statistics specific to the set of previously defined intervals
4112 of time (Since 2.5)
4113
4114 rd_latency_histogram: BlockLatencyHistogramInfo (optional)
4115 BlockLatencyHistogramInfo. (Since 4.0)
4116
4117 wr_latency_histogram: BlockLatencyHistogramInfo (optional)
4118 BlockLatencyHistogramInfo. (Since 4.0)
4119
4120 flush_latency_histogram: BlockLatencyHistogramInfo (optional)
4121 BlockLatencyHistogramInfo. (Since 4.0)
4122
4123 Since
4124 0.14
4125
4126 BlockStatsSpecificFile (Object)
4127 File driver statistics
4128
4129 Members
4130 discard-nb-ok: int
4131 The number of successful discard operations performed by the
4132 driver.
4133
4134 discard-nb-failed: int
4135 The number of failed discard operations performed by the driver.
4136
4137 discard-bytes-ok: int
4138 The number of bytes discarded by the driver.
4139
4140 Since
4141 4.2
4142
4143 BlockStatsSpecificNvme (Object)
4144 NVMe driver statistics
4145
4146 Members
4147 completion-errors: int
4148 The number of completion errors.
4149
4150 aligned-accesses: int
4151 The number of aligned accesses performed by the driver.
4152
4153 unaligned-accesses: int
4154 The number of unaligned accesses performed by the driver.
4155
4156 Since
4157 5.2
4158
4159 BlockStatsSpecific (Object)
4160 Block driver specific statistics
4161
4162 Members
4163 driver: BlockdevDriver
4164 Not documented
4165
4166 The members of BlockStatsSpecificFile when driver is "file"
4167
4168 The members of BlockStatsSpecificFile when driver is "host_device" (If:
4169 HAVE_HOST_BLOCK_DEVICE)
4170
4171 The members of BlockStatsSpecificNvme when driver is "nvme"
4172
4173 Since
4174 4.2
4175
4176 BlockStats (Object)
4177 Statistics of a virtual block device or a block backing device.
4178
4179 Members
4180 device: string (optional)
4181 If the stats are for a virtual block device, the name corre‐
4182 sponding to the virtual block device.
4183
4184 node-name: string (optional)
4185 The node name of the device. (Since 2.3)
4186
4187 qdev: string (optional)
4188 The qdev ID, or if no ID is assigned, the QOM path of the block
4189 device. (since 3.0)
4190
4191 stats: BlockDeviceStats
4192 A BlockDeviceStats for the device.
4193
4194 driver-specific: BlockStatsSpecific (optional)
4195 Optional driver-specific stats. (Since 4.2)
4196
4197 parent: BlockStats (optional)
4198 This describes the file block device if it has one. Contains
4199 recursively the statistics of the underlying protocol (e.g. the
4200 host file for a qcow2 image). If there is no underlying proto‐
4201 col, this field is omitted
4202
4203 backing: BlockStats (optional)
4204 This describes the backing block device if it has one. (Since
4205 2.0)
4206
4207 Since
4208 0.14
4209
4210 query-blockstats (Command)
4211 Query the BlockStats for all virtual block devices.
4212
4213 Arguments
4214 query-nodes: boolean (optional)
4215 If true, the command will query all the block nodes that have a
4216 node name, in a list which will include "parent" information,
4217 but not "backing". If false or omitted, the behavior is as be‐
4218 fore - query all the device backends, recursively including
4219 their "parent" and "backing". Filter nodes that were created im‐
4220 plicitly are skipped over in this mode. (Since 2.3)
4221
4222 Returns
4223 A list of BlockStats for each virtual block devices.
4224
4225 Since
4226 0.14
4227
4228 Example
4229 -> { "execute": "query-blockstats" }
4230 <- {
4231 "return":[
4232 {
4233 "device":"ide0-hd0",
4234 "parent":{
4235 "stats":{
4236 "wr_highest_offset":3686448128,
4237 "wr_bytes":9786368,
4238 "wr_operations":751,
4239 "rd_bytes":122567168,
4240 "rd_operations":36772
4241 "wr_total_times_ns":313253456
4242 "rd_total_times_ns":3465673657
4243 "flush_total_times_ns":49653
4244 "flush_operations":61,
4245 "rd_merged":0,
4246 "wr_merged":0,
4247 "idle_time_ns":2953431879,
4248 "account_invalid":true,
4249 "account_failed":false
4250 }
4251 },
4252 "stats":{
4253 "wr_highest_offset":2821110784,
4254 "wr_bytes":9786368,
4255 "wr_operations":692,
4256 "rd_bytes":122739200,
4257 "rd_operations":36604
4258 "flush_operations":51,
4259 "wr_total_times_ns":313253456
4260 "rd_total_times_ns":3465673657
4261 "flush_total_times_ns":49653,
4262 "rd_merged":0,
4263 "wr_merged":0,
4264 "idle_time_ns":2953431879,
4265 "account_invalid":true,
4266 "account_failed":false
4267 },
4268 "qdev": "/machine/unattached/device[23]"
4269 },
4270 {
4271 "device":"ide1-cd0",
4272 "stats":{
4273 "wr_highest_offset":0,
4274 "wr_bytes":0,
4275 "wr_operations":0,
4276 "rd_bytes":0,
4277 "rd_operations":0
4278 "flush_operations":0,
4279 "wr_total_times_ns":0
4280 "rd_total_times_ns":0
4281 "flush_total_times_ns":0,
4282 "rd_merged":0,
4283 "wr_merged":0,
4284 "account_invalid":false,
4285 "account_failed":false
4286 },
4287 "qdev": "/machine/unattached/device[24]"
4288 },
4289 {
4290 "device":"floppy0",
4291 "stats":{
4292 "wr_highest_offset":0,
4293 "wr_bytes":0,
4294 "wr_operations":0,
4295 "rd_bytes":0,
4296 "rd_operations":0
4297 "flush_operations":0,
4298 "wr_total_times_ns":0
4299 "rd_total_times_ns":0
4300 "flush_total_times_ns":0,
4301 "rd_merged":0,
4302 "wr_merged":0,
4303 "account_invalid":false,
4304 "account_failed":false
4305 },
4306 "qdev": "/machine/unattached/device[16]"
4307 },
4308 {
4309 "device":"sd0",
4310 "stats":{
4311 "wr_highest_offset":0,
4312 "wr_bytes":0,
4313 "wr_operations":0,
4314 "rd_bytes":0,
4315 "rd_operations":0
4316 "flush_operations":0,
4317 "wr_total_times_ns":0
4318 "rd_total_times_ns":0
4319 "flush_total_times_ns":0,
4320 "rd_merged":0,
4321 "wr_merged":0,
4322 "account_invalid":false,
4323 "account_failed":false
4324 }
4325 }
4326 ]
4327 }
4328
4329 BlockdevOnError (Enum)
4330 An enumeration of possible behaviors for errors on I/O operations. The
4331 exact meaning depends on whether the I/O was initiated by a guest or by
4332 a block job
4333
4334 Values
4335 report for guest operations, report the error to the guest; for jobs,
4336 cancel the job
4337
4338 ignore ignore the error, only report a QMP event (BLOCK_IO_ERROR or
4339 BLOCK_JOB_ERROR). The backup, mirror and commit block jobs retry
4340 the failing request later and may still complete successfully.
4341 The stream block job continues to stream and will complete with
4342 an error.
4343
4344 enospc same as stop on ENOSPC, same as report otherwise.
4345
4346 stop for guest operations, stop the virtual machine; for jobs, pause
4347 the job
4348
4349 auto inherit the error handling policy of the backend (since: 2.7)
4350
4351 Since
4352 1.3
4353
4354 MirrorSyncMode (Enum)
4355 An enumeration of possible behaviors for the initial synchronization
4356 phase of storage mirroring.
4357
4358 Values
4359 top copies data in the topmost image to the destination
4360
4361 full copies data from all images to the destination
4362
4363 none only copy data written from now on
4364
4365 incremental
4366 only copy data described by the dirty bitmap. (since: 2.4)
4367
4368 bitmap only copy data described by the dirty bitmap. (since: 4.2) Be‐
4369 havior on completion is determined by the BitmapSyncMode.
4370
4371 Since
4372 1.3
4373
4374 BitmapSyncMode (Enum)
4375 An enumeration of possible behaviors for the synchronization of a bit‐
4376 map when used for data copy operations.
4377
4378 Values
4379 on-success
4380 The bitmap is only synced when the operation is successful.
4381 This is the behavior always used for 'INCREMENTAL' backups.
4382
4383 never The bitmap is never synchronized with the operation, and is
4384 treated solely as a read-only manifest of blocks to copy.
4385
4386 always The bitmap is always synchronized with the operation, regardless
4387 of whether or not the operation was successful.
4388
4389 Since
4390 4.2
4391
4392 MirrorCopyMode (Enum)
4393 An enumeration whose values tell the mirror block job when to trigger
4394 writes to the target.
4395
4396 Values
4397 background
4398 copy data in background only.
4399
4400 write-blocking
4401 when data is written to the source, write it (synchronously) to
4402 the target as well. In addition, data is copied in background
4403 just like in background mode.
4404
4405 Since
4406 3.0
4407
4408 BlockJobInfo (Object)
4409 Information about a long-running block device operation.
4410
4411 Members
4412 type: string
4413 the job type ('stream' for image streaming)
4414
4415 device: string
4416 The job identifier. Originally the device name but other values
4417 are allowed since QEMU 2.7
4418
4419 len: int
4420 Estimated offset value at the completion of the job. This value
4421 can arbitrarily change while the job is running, in both direc‐
4422 tions.
4423
4424 offset: int
4425 Progress made until now. The unit is arbitrary and the value can
4426 only meaningfully be used for the ratio of offset to len. The
4427 value is monotonically increasing.
4428
4429 busy: boolean
4430 false if the job is known to be in a quiescent state, with no
4431 pending I/O. Since 1.3.
4432
4433 paused: boolean
4434 whether the job is paused or, if busy is true, will pause itself
4435 as soon as possible. Since 1.3.
4436
4437 speed: int
4438 the rate limit, bytes per second
4439
4440 io-status: BlockDeviceIoStatus
4441 the status of the job (since 1.3)
4442
4443 ready: boolean
4444 true if the job may be completed (since 2.2)
4445
4446 status: JobStatus
4447 Current job state/status (since 2.12)
4448
4449 auto-finalize: boolean
4450 Job will finalize itself when PENDING, moving to the CONCLUDED
4451 state. (since 2.12)
4452
4453 auto-dismiss: boolean
4454 Job will dismiss itself when CONCLUDED, moving to the NULL state
4455 and disappearing from the query list. (since 2.12)
4456
4457 error: string (optional)
4458 Error information if the job did not complete successfully. Not
4459 set if the job completed successfully. (since 2.12.1)
4460
4461 Since
4462 1.1
4463
4464 query-block-jobs (Command)
4465 Return information about long-running block device operations.
4466
4467 Returns
4468 a list of BlockJobInfo for each active block job
4469
4470 Since
4471 1.1
4472
4473 block_resize (Command)
4474 Resize a block image while a guest is running.
4475
4476 Either device or node-name must be set but not both.
4477
4478 Arguments
4479 device: string (optional)
4480 the name of the device to get the image resized
4481
4482 node-name: string (optional)
4483 graph node name to get the image resized (Since 2.0)
4484
4485 size: int
4486 new image size in bytes
4487
4488 Returns
4489 • nothing on success
4490
4491 • If device is not a valid block device, DeviceNotFound
4492
4493 Since
4494 0.14
4495
4496 Example
4497 -> { "execute": "block_resize",
4498 "arguments": { "device": "scratch", "size": 1073741824 } }
4499 <- { "return": {} }
4500
4501 NewImageMode (Enum)
4502 An enumeration that tells QEMU how to set the backing file path in a
4503 new image file.
4504
4505 Values
4506 existing
4507 QEMU should look for an existing image file.
4508
4509 absolute-paths
4510 QEMU should create a new image with absolute paths for the back‐
4511 ing file. If there is no backing file available, the new image
4512 will not be backed either.
4513
4514 Since
4515 1.1
4516
4517 BlockdevSnapshotSync (Object)
4518 Either device or node-name must be set but not both.
4519
4520 Members
4521 device: string (optional)
4522 the name of the device to take a snapshot of.
4523
4524 node-name: string (optional)
4525 graph node name to generate the snapshot from (Since 2.0)
4526
4527 snapshot-file: string
4528 the target of the new overlay image. If the file exists, or if
4529 it is a device, the overlay will be created in the existing
4530 file/device. Otherwise, a new file will be created.
4531
4532 snapshot-node-name: string (optional)
4533 the graph node name of the new image (Since 2.0)
4534
4535 format: string (optional)
4536 the format of the overlay image, default is 'qcow2'.
4537
4538 mode: NewImageMode (optional)
4539 whether and how QEMU should create a new image, default is 'ab‐
4540 solute-paths'.
4541
4542 BlockdevSnapshot (Object)
4543 Members
4544 node: string
4545 device or node name that will have a snapshot taken.
4546
4547 overlay: string
4548 reference to the existing block device that will become the
4549 overlay of node, as part of taking the snapshot. It must not
4550 have a current backing file (this can be achieved by passing
4551 "backing": null to blockdev-add).
4552
4553 Since
4554 2.5
4555
4556 BackupPerf (Object)
4557 Optional parameters for backup. These parameters don't affect function‐
4558 ality, but may significantly affect performance.
4559
4560 Members
4561 use-copy-range: boolean (optional)
4562 Use copy offloading. Default false.
4563
4564 max-workers: int (optional)
4565 Maximum number of parallel requests for the sustained background
4566 copying process. Doesn't influence copy-before-write operations.
4567 Default 64.
4568
4569 max-chunk: int (optional)
4570 Maximum request length for the sustained background copying
4571 process. Doesn't influence copy-before-write operations. 0
4572 means unlimited. If max-chunk is non-zero then it should not be
4573 less than job cluster size which is calculated as maximum of
4574 target image cluster size and 64k. Default 0.
4575
4576 Since
4577 6.0
4578
4579 BackupCommon (Object)
4580 Members
4581 job-id: string (optional)
4582 identifier for the newly-created block job. If omitted, the de‐
4583 vice name will be used. (Since 2.7)
4584
4585 device: string
4586 the device name or node-name of a root node which should be
4587 copied.
4588
4589 sync: MirrorSyncMode
4590 what parts of the disk image should be copied to the destination
4591 (all the disk, only the sectors allocated in the topmost image,
4592 from a dirty bitmap, or only new I/O).
4593
4594 speed: int (optional)
4595 the maximum speed, in bytes per second. The default is 0, for
4596 unlimited.
4597
4598 bitmap: string (optional)
4599 The name of a dirty bitmap to use. Must be present if sync is
4600 "bitmap" or "incremental". Can be present if sync is "full" or
4601 "top". Must not be present otherwise. (Since 2.4
4602 (drive-backup), 3.1 (blockdev-backup))
4603
4604 bitmap-mode: BitmapSyncMode (optional)
4605 Specifies the type of data the bitmap should contain after the
4606 operation concludes. Must be present if a bitmap was provided,
4607 Must NOT be present otherwise. (Since 4.2)
4608
4609 compress: boolean (optional)
4610 true to compress data, if the target format supports it. (de‐
4611 fault: false) (since 2.8)
4612
4613 on-source-error: BlockdevOnError (optional)
4614 the action to take on an error on the source, default 'report'.
4615 'stop' and 'enospc' can only be used if the block device sup‐
4616 ports io-status (see BlockInfo).
4617
4618 on-target-error: BlockdevOnError (optional)
4619 the action to take on an error on the target, default 'report'
4620 (no limitations, since this applies to a different block device
4621 than device).
4622
4623 auto-finalize: boolean (optional)
4624 When false, this job will wait in a PENDING state after it has
4625 finished its work, waiting for block-job-finalize before making
4626 any block graph changes. When true, this job will automatically
4627 perform its abort or commit actions. Defaults to true. (Since
4628 2.12)
4629
4630 auto-dismiss: boolean (optional)
4631 When false, this job will wait in a CONCLUDED state after it has
4632 completely ceased all work, and awaits block-job-dismiss. When
4633 true, this job will automatically disappear from the query list
4634 without user intervention. Defaults to true. (Since 2.12)
4635
4636 filter-node-name: string (optional)
4637 the node name that should be assigned to the filter driver that
4638 the backup job inserts into the graph above node specified by
4639 drive. If this option is not given, a node name is autogener‐
4640 ated. (Since: 4.2)
4641
4642 x-perf: BackupPerf (optional)
4643 Performance options. (Since 6.0)
4644
4645 Features
4646 unstable
4647 Member x-perf is experimental.
4648
4649 Note
4650 on-source-error and on-target-error only affect background I/O. If an
4651 error occurs during a guest write request, the device's rerror/werror
4652 actions will be used.
4653
4654 Since
4655 4.2
4656
4657 DriveBackup (Object)
4658 Members
4659 target: string
4660 the target of the new image. If the file exists, or if it is a
4661 device, the existing file/device will be used as the new desti‐
4662 nation. If it does not exist, a new file will be created.
4663
4664 format: string (optional)
4665 the format of the new destination, default is to probe if mode
4666 is 'existing', else the format of the source
4667
4668 mode: NewImageMode (optional)
4669 whether and how QEMU should create a new image, default is 'ab‐
4670 solute-paths'.
4671
4672 The members of BackupCommon
4673
4674 Since
4675 1.6
4676
4677 BlockdevBackup (Object)
4678 Members
4679 target: string
4680 the device name or node-name of the backup target node.
4681
4682 The members of BackupCommon
4683
4684 Since
4685 2.3
4686
4687 blockdev-snapshot-sync (Command)
4688 Takes a synchronous snapshot of a block device.
4689
4690 For the arguments, see the documentation of BlockdevSnapshotSync.
4691
4692 Returns
4693 • nothing on success
4694
4695 • If device is not a valid block device, DeviceNotFound
4696
4697 Since
4698 0.14
4699
4700 Example
4701 -> { "execute": "blockdev-snapshot-sync",
4702 "arguments": { "device": "ide-hd0",
4703 "snapshot-file":
4704 "/some/place/my-image",
4705 "format": "qcow2" } }
4706 <- { "return": {} }
4707
4708 blockdev-snapshot (Command)
4709 Takes a snapshot of a block device.
4710
4711 Take a snapshot, by installing 'node' as the backing image of 'over‐
4712 lay'. Additionally, if 'node' is associated with a block device, the
4713 block device changes to using 'overlay' as its new active image.
4714
4715 For the arguments, see the documentation of BlockdevSnapshot.
4716
4717 Features
4718 allow-write-only-overlay
4719 If present, the check whether this operation is safe was relaxed
4720 so that it can be used to change backing file of a destination
4721 of a blockdev-mirror. (since 5.0)
4722
4723 Since
4724 2.5
4725
4726 Example
4727 -> { "execute": "blockdev-add",
4728 "arguments": { "driver": "qcow2",
4729 "node-name": "node1534",
4730 "file": { "driver": "file",
4731 "filename": "hd1.qcow2" },
4732 "backing": null } }
4733
4734 <- { "return": {} }
4735
4736 -> { "execute": "blockdev-snapshot",
4737 "arguments": { "node": "ide-hd0",
4738 "overlay": "node1534" } }
4739 <- { "return": {} }
4740
4741 change-backing-file (Command)
4742 Change the backing file in the image file metadata. This does not
4743 cause QEMU to reopen the image file to reparse the backing filename (it
4744 may, however, perform a reopen to change permissions from r/o -> r/w ->
4745 r/o, if needed). The new backing file string is written into the image
4746 file metadata, and the QEMU internal strings are updated.
4747
4748 Arguments
4749 image-node-name: string
4750 The name of the block driver state node of the image to modify.
4751 The "device" argument is used to verify "image-node-name" is in
4752 the chain described by "device".
4753
4754 device: string
4755 The device name or node-name of the root node that owns im‐
4756 age-node-name.
4757
4758 backing-file: string
4759 The string to write as the backing file. This string is not
4760 validated, so care should be taken when specifying the string or
4761 the image chain may not be able to be reopened again.
4762
4763 Returns
4764 • Nothing on success
4765
4766 • If "device" does not exist or cannot be determined, DeviceNotFound
4767
4768 Since
4769 2.1
4770
4771 block-commit (Command)
4772 Live commit of data from overlay image nodes into backing nodes - i.e.,
4773 writes data between 'top' and 'base' into 'base'.
4774
4775 If top == base, that is an error. If top has no overlays on top of it,
4776 or if it is in use by a writer, the job will not be completed by it‐
4777 self. The user needs to complete the job with the block-job-complete
4778 command after getting the ready event. (Since 2.0)
4779
4780 If the base image is smaller than top, then the base image will be re‐
4781 sized to be the same size as top. If top is smaller than the base im‐
4782 age, the base will not be truncated. If you want the base image size
4783 to match the size of the smaller top, you can safely truncate it your‐
4784 self once the commit operation successfully completes.
4785
4786 Arguments
4787 job-id: string (optional)
4788 identifier for the newly-created block job. If omitted, the de‐
4789 vice name will be used. (Since 2.7)
4790
4791 device: string
4792 the device name or node-name of a root node
4793
4794 base-node: string (optional)
4795 The node name of the backing image to write data into. If not
4796 specified, this is the deepest backing image. (since: 3.1)
4797
4798 base: string (optional)
4799 Same as base-node, except that it is a file name rather than a
4800 node name. This must be the exact filename string that was used
4801 to open the node; other strings, even if addressing the same
4802 file, are not accepted
4803
4804 top-node: string (optional)
4805 The node name of the backing image within the image chain which
4806 contains the topmost data to be committed down. If not speci‐
4807 fied, this is the active layer. (since: 3.1)
4808
4809 top: string (optional)
4810 Same as top-node, except that it is a file name rather than a
4811 node name. This must be the exact filename string that was used
4812 to open the node; other strings, even if addressing the same
4813 file, are not accepted
4814
4815 backing-file: string (optional)
4816 The backing file string to write into the overlay image of
4817 'top'. If 'top' does not have an overlay image, or if 'top' is
4818 in use by a writer, specifying a backing file string is an er‐
4819 ror.
4820
4821 This filename is not validated. If a pathname string is such
4822 that it cannot be resolved by QEMU, that means that subsequent
4823 QMP or HMP commands must use node-names for the image in ques‐
4824 tion, as filename lookup methods will fail.
4825
4826 If not specified, QEMU will automatically determine the backing
4827 file string to use, or error out if there is no obvious choice.
4828 Care should be taken when specifying the string, to specify a
4829 valid filename or protocol. (Since 2.1)
4830
4831 speed: int (optional)
4832 the maximum speed, in bytes per second
4833
4834 on-error: BlockdevOnError (optional)
4835 the action to take on an error. 'ignore' means that the request
4836 should be retried. (default: report; Since: 5.0)
4837
4838 filter-node-name: string (optional)
4839 the node name that should be assigned to the filter driver that
4840 the commit job inserts into the graph above top. If this option
4841 is not given, a node name is autogenerated. (Since: 2.9)
4842
4843 auto-finalize: boolean (optional)
4844 When false, this job will wait in a PENDING state after it has
4845 finished its work, waiting for block-job-finalize before making
4846 any block graph changes. When true, this job will automatically
4847 perform its abort or commit actions. Defaults to true. (Since
4848 3.1)
4849
4850 auto-dismiss: boolean (optional)
4851 When false, this job will wait in a CONCLUDED state after it has
4852 completely ceased all work, and awaits block-job-dismiss. When
4853 true, this job will automatically disappear from the query list
4854 without user intervention. Defaults to true. (Since 3.1)
4855
4856 Features
4857 deprecated
4858 Members base and top are deprecated. Use base-node and top-node
4859 instead.
4860
4861 Returns
4862 • Nothing on success
4863
4864 • If device does not exist, DeviceNotFound
4865
4866 • Any other error returns a GenericError.
4867
4868 Since
4869 1.3
4870
4871 Example
4872 -> { "execute": "block-commit",
4873 "arguments": { "device": "virtio0",
4874 "top": "/tmp/snap1.qcow2" } }
4875 <- { "return": {} }
4876
4877 drive-backup (Command)
4878 Start a point-in-time copy of a block device to a new destination. The
4879 status of ongoing drive-backup operations can be checked with
4880 query-block-jobs where the BlockJobInfo.type field has the value
4881 'backup'. The operation can be stopped before it has completed using
4882 the block-job-cancel command.
4883
4884 Arguments
4885 The members of DriveBackup
4886
4887 Features
4888 deprecated
4889 This command is deprecated. Use blockdev-backup instead.
4890
4891 Returns
4892 • nothing on success
4893
4894 • If device is not a valid block device, GenericError
4895
4896 Since
4897 1.6
4898
4899 Example
4900 -> { "execute": "drive-backup",
4901 "arguments": { "device": "drive0",
4902 "sync": "full",
4903 "target": "backup.img" } }
4904 <- { "return": {} }
4905
4906 blockdev-backup (Command)
4907 Start a point-in-time copy of a block device to a new destination. The
4908 status of ongoing blockdev-backup operations can be checked with
4909 query-block-jobs where the BlockJobInfo.type field has the value
4910 'backup'. The operation can be stopped before it has completed using
4911 the block-job-cancel command.
4912
4913 Arguments
4914 The members of BlockdevBackup
4915
4916 Returns
4917 • nothing on success
4918
4919 • If device is not a valid block device, DeviceNotFound
4920
4921 Since
4922 2.3
4923
4924 Example
4925 -> { "execute": "blockdev-backup",
4926 "arguments": { "device": "src-id",
4927 "sync": "full",
4928 "target": "tgt-id" } }
4929 <- { "return": {} }
4930
4931 query-named-block-nodes (Command)
4932 Get the named block driver list
4933
4934 Arguments
4935 flat: boolean (optional)
4936 Omit the nested data about backing image ("backing-image" key)
4937 if true. Default is false (Since 5.0)
4938
4939 Returns
4940 the list of BlockDeviceInfo
4941
4942 Since
4943 2.0
4944
4945 Example
4946 -> { "execute": "query-named-block-nodes" }
4947 <- { "return": [ { "ro":false,
4948 "drv":"qcow2",
4949 "encrypted":false,
4950 "file":"disks/test.qcow2",
4951 "node-name": "my-node",
4952 "backing_file_depth":1,
4953 "detect_zeroes":"off",
4954 "bps":1000000,
4955 "bps_rd":0,
4956 "bps_wr":0,
4957 "iops":1000000,
4958 "iops_rd":0,
4959 "iops_wr":0,
4960 "bps_max": 8000000,
4961 "bps_rd_max": 0,
4962 "bps_wr_max": 0,
4963 "iops_max": 0,
4964 "iops_rd_max": 0,
4965 "iops_wr_max": 0,
4966 "iops_size": 0,
4967 "write_threshold": 0,
4968 "image":{
4969 "filename":"disks/test.qcow2",
4970 "format":"qcow2",
4971 "virtual-size":2048000,
4972 "backing_file":"base.qcow2",
4973 "full-backing-filename":"disks/base.qcow2",
4974 "backing-filename-format":"qcow2",
4975 "snapshots":[
4976 {
4977 "id": "1",
4978 "name": "snapshot1",
4979 "vm-state-size": 0,
4980 "date-sec": 10000200,
4981 "date-nsec": 12,
4982 "vm-clock-sec": 206,
4983 "vm-clock-nsec": 30
4984 }
4985 ],
4986 "backing-image":{
4987 "filename":"disks/base.qcow2",
4988 "format":"qcow2",
4989 "virtual-size":2048000
4990 }
4991 } } ] }
4992
4993 XDbgBlockGraphNodeType (Enum)
4994 Values
4995 block-backend
4996 corresponds to BlockBackend
4997
4998 block-job
4999 corresponds to BlockJob
5000
5001 block-driver
5002 corresponds to BlockDriverState
5003
5004 Since
5005 4.0
5006
5007 XDbgBlockGraphNode (Object)
5008 Members
5009 id: int
5010 Block graph node identifier. This id is generated only for x-de‐
5011 bug-query-block-graph and does not relate to any other identi‐
5012 fiers in Qemu.
5013
5014 type: XDbgBlockGraphNodeType
5015 Type of graph node. Can be one of block-backend, block-job or
5016 block-driver-state.
5017
5018 name: string
5019 Human readable name of the node. Corresponds to node-name for
5020 block-driver-state nodes; is not guaranteed to be unique in the
5021 whole graph (with block-jobs and block-backends).
5022
5023 Since
5024 4.0
5025
5026 BlockPermission (Enum)
5027 Enum of base block permissions.
5028
5029 Values
5030 consistent-read
5031 A user that has the "permission" of consistent reads is guaran‐
5032 teed that their view of the contents of the block device is com‐
5033 plete and self-consistent, representing the contents of a disk
5034 at a specific point. For most block devices (including their
5035 backing files) this is true, but the property cannot be main‐
5036 tained in a few situations like for intermediate nodes of a com‐
5037 mit block job.
5038
5039 write This permission is required to change the visible disk contents.
5040
5041 write-unchanged
5042 This permission (which is weaker than BLK_PERM_WRITE) is both
5043 enough and required for writes to the block node when the caller
5044 promises that the visible disk content doesn't change. As the
5045 BLK_PERM_WRITE permission is strictly stronger, either is suffi‐
5046 cient to perform an unchanging write.
5047
5048 resize This permission is required to change the size of a block node.
5049
5050 Since
5051 4.0
5052
5053 XDbgBlockGraphEdge (Object)
5054 Block Graph edge description for x-debug-query-block-graph.
5055
5056 Members
5057 parent: int
5058 parent id
5059
5060 child: int
5061 child id
5062
5063 name: string
5064 name of the relation (examples are 'file' and 'backing')
5065
5066 perm: array of BlockPermission
5067 granted permissions for the parent operating on the child
5068
5069 shared-perm: array of BlockPermission
5070 permissions that can still be granted to other users of the
5071 child while it is still attached to this parent
5072
5073 Since
5074 4.0
5075
5076 XDbgBlockGraph (Object)
5077 Block Graph - list of nodes and list of edges.
5078
5079 Members
5080 nodes: array of XDbgBlockGraphNode
5081 Not documented
5082
5083 edges: array of XDbgBlockGraphEdge
5084 Not documented
5085
5086 Since
5087 4.0
5088
5089 x-debug-query-block-graph (Command)
5090 Get the block graph.
5091
5092 Features
5093 unstable
5094 This command is meant for debugging.
5095
5096 Since
5097 4.0
5098
5099 drive-mirror (Command)
5100 Start mirroring a block device's writes to a new destination. target
5101 specifies the target of the new image. If the file exists, or if it is
5102 a device, it will be used as the new destination for writes. If it does
5103 not exist, a new file will be created. format specifies the format of
5104 the mirror image, default is to probe if mode='existing', else the for‐
5105 mat of the source.
5106
5107 Arguments
5108 The members of DriveMirror
5109
5110 Returns
5111 • nothing on success
5112
5113 • If device is not a valid block device, GenericError
5114
5115 Since
5116 1.3
5117
5118 Example
5119 -> { "execute": "drive-mirror",
5120 "arguments": { "device": "ide-hd0",
5121 "target": "/some/place/my-image",
5122 "sync": "full",
5123 "format": "qcow2" } }
5124 <- { "return": {} }
5125
5126 DriveMirror (Object)
5127 A set of parameters describing drive mirror setup.
5128
5129 Members
5130 job-id: string (optional)
5131 identifier for the newly-created block job. If omitted, the de‐
5132 vice name will be used. (Since 2.7)
5133
5134 device: string
5135 the device name or node-name of a root node whose writes should
5136 be mirrored.
5137
5138 target: string
5139 the target of the new image. If the file exists, or if it is a
5140 device, the existing file/device will be used as the new desti‐
5141 nation. If it does not exist, a new file will be created.
5142
5143 format: string (optional)
5144 the format of the new destination, default is to probe if mode
5145 is 'existing', else the format of the source
5146
5147 node-name: string (optional)
5148 the new block driver state node name in the graph (Since 2.1)
5149
5150 replaces: string (optional)
5151 with sync=full graph node name to be replaced by the new image
5152 when a whole image copy is done. This can be used to repair bro‐
5153 ken Quorum files. By default, device is replaced, although im‐
5154 plicitly created filters on it are kept. (Since 2.1)
5155
5156 mode: NewImageMode (optional)
5157 whether and how QEMU should create a new image, default is 'ab‐
5158 solute-paths'.
5159
5160 speed: int (optional)
5161 the maximum speed, in bytes per second
5162
5163 sync: MirrorSyncMode
5164 what parts of the disk image should be copied to the destination
5165 (all the disk, only the sectors allocated in the topmost image,
5166 or only new I/O).
5167
5168 granularity: int (optional)
5169 granularity of the dirty bitmap, default is 64K if the image
5170 format doesn't have clusters, 4K if the clusters are smaller
5171 than that, else the cluster size. Must be a power of 2 between
5172 512 and 64M (since 1.4).
5173
5174 buf-size: int (optional)
5175 maximum amount of data in flight from source to target (since
5176 1.4).
5177
5178 on-source-error: BlockdevOnError (optional)
5179 the action to take on an error on the source, default 'report'.
5180 'stop' and 'enospc' can only be used if the block device sup‐
5181 ports io-status (see BlockInfo).
5182
5183 on-target-error: BlockdevOnError (optional)
5184 the action to take on an error on the target, default 'report'
5185 (no limitations, since this applies to a different block device
5186 than device).
5187
5188 unmap: boolean (optional)
5189 Whether to try to unmap target sectors where source has only
5190 zero. If true, and target unallocated sectors will read as zero,
5191 target image sectors will be unmapped; otherwise, zeroes will be
5192 written. Both will result in identical contents. Default is
5193 true. (Since 2.4)
5194
5195 copy-mode: MirrorCopyMode (optional)
5196 when to copy data to the destination; defaults to 'background'
5197 (Since: 3.0)
5198
5199 auto-finalize: boolean (optional)
5200 When false, this job will wait in a PENDING state after it has
5201 finished its work, waiting for block-job-finalize before making
5202 any block graph changes. When true, this job will automatically
5203 perform its abort or commit actions. Defaults to true. (Since
5204 3.1)
5205
5206 auto-dismiss: boolean (optional)
5207 When false, this job will wait in a CONCLUDED state after it has
5208 completely ceased all work, and awaits block-job-dismiss. When
5209 true, this job will automatically disappear from the query list
5210 without user intervention. Defaults to true. (Since 3.1)
5211
5212 Since
5213 1.3
5214
5215 BlockDirtyBitmap (Object)
5216 Members
5217 node: string
5218 name of device/node which the bitmap is tracking
5219
5220 name: string
5221 name of the dirty bitmap
5222
5223 Since
5224 2.4
5225
5226 BlockDirtyBitmapAdd (Object)
5227 Members
5228 node: string
5229 name of device/node which the bitmap is tracking
5230
5231 name: string
5232 name of the dirty bitmap (must be less than 1024 bytes)
5233
5234 granularity: int (optional)
5235 the bitmap granularity, default is 64k for block-dirty-bit‐
5236 map-add
5237
5238 persistent: boolean (optional)
5239 the bitmap is persistent, i.e. it will be saved to the corre‐
5240 sponding block device image file on its close. For now only
5241 Qcow2 disks support persistent bitmaps. Default is false for
5242 block-dirty-bitmap-add. (Since: 2.10)
5243
5244 disabled: boolean (optional)
5245 the bitmap is created in the disabled state, which means that it
5246 will not track drive changes. The bitmap may be enabled with
5247 block-dirty-bitmap-enable. Default is false. (Since: 4.0)
5248
5249 Since
5250 2.4
5251
5252 BlockDirtyBitmapOrStr (Alternate)
5253 Members
5254 local: string
5255 name of the bitmap, attached to the same node as target bitmap.
5256
5257 external: BlockDirtyBitmap
5258 bitmap with specified node
5259
5260 Since
5261 4.1
5262
5263 BlockDirtyBitmapMerge (Object)
5264 Members
5265 node: string
5266 name of device/node which the target bitmap is tracking
5267
5268 target: string
5269 name of the destination dirty bitmap
5270
5271 bitmaps: array of BlockDirtyBitmapOrStr
5272 name(s) of the source dirty bitmap(s) at node and/or fully spec‐
5273 ified BlockDirtyBitmap elements. The latter are supported since
5274 4.1.
5275
5276 Since
5277 4.0
5278
5279 block-dirty-bitmap-add (Command)
5280 Create a dirty bitmap with a name on the node, and start tracking the
5281 writes.
5282
5283 Returns
5284 • nothing on success
5285
5286 • If node is not a valid block device or node, DeviceNotFound
5287
5288 • If name is already taken, GenericError with an explanation
5289
5290 Since
5291 2.4
5292
5293 Example
5294 -> { "execute": "block-dirty-bitmap-add",
5295 "arguments": { "node": "drive0", "name": "bitmap0" } }
5296 <- { "return": {} }
5297
5298 block-dirty-bitmap-remove (Command)
5299 Stop write tracking and remove the dirty bitmap that was created with
5300 block-dirty-bitmap-add. If the bitmap is persistent, remove it from its
5301 storage too.
5302
5303 Returns
5304 • nothing on success
5305
5306 • If node is not a valid block device or node, DeviceNotFound
5307
5308 • If name is not found, GenericError with an explanation
5309
5310 • if name is frozen by an operation, GenericError
5311
5312 Since
5313 2.4
5314
5315 Example
5316 -> { "execute": "block-dirty-bitmap-remove",
5317 "arguments": { "node": "drive0", "name": "bitmap0" } }
5318 <- { "return": {} }
5319
5320 block-dirty-bitmap-clear (Command)
5321 Clear (reset) a dirty bitmap on the device, so that an incremental
5322 backup from this point in time forward will only backup clusters modi‐
5323 fied after this clear operation.
5324
5325 Returns
5326 • nothing on success
5327
5328 • If node is not a valid block device, DeviceNotFound
5329
5330 • If name is not found, GenericError with an explanation
5331
5332 Since
5333 2.4
5334
5335 Example
5336 -> { "execute": "block-dirty-bitmap-clear",
5337 "arguments": { "node": "drive0", "name": "bitmap0" } }
5338 <- { "return": {} }
5339
5340 block-dirty-bitmap-enable (Command)
5341 Enables a dirty bitmap so that it will begin tracking disk changes.
5342
5343 Returns
5344 • nothing on success
5345
5346 • If node is not a valid block device, DeviceNotFound
5347
5348 • If name is not found, GenericError with an explanation
5349
5350 Since
5351 4.0
5352
5353 Example
5354 -> { "execute": "block-dirty-bitmap-enable",
5355 "arguments": { "node": "drive0", "name": "bitmap0" } }
5356 <- { "return": {} }
5357
5358 block-dirty-bitmap-disable (Command)
5359 Disables a dirty bitmap so that it will stop tracking disk changes.
5360
5361 Returns
5362 • nothing on success
5363
5364 • If node is not a valid block device, DeviceNotFound
5365
5366 • If name is not found, GenericError with an explanation
5367
5368 Since
5369 4.0
5370
5371 Example
5372 -> { "execute": "block-dirty-bitmap-disable",
5373 "arguments": { "node": "drive0", "name": "bitmap0" } }
5374 <- { "return": {} }
5375
5376 block-dirty-bitmap-merge (Command)
5377 Merge dirty bitmaps listed in bitmaps to the target dirty bitmap.
5378 Dirty bitmaps in bitmaps will be unchanged, except if it also appears
5379 as the target bitmap. Any bits already set in target will still be set
5380 after the merge, i.e., this operation does not clear the target. On
5381 error, target is unchanged.
5382
5383 The resulting bitmap will count as dirty any clusters that were dirty
5384 in any of the source bitmaps. This can be used to achieve backup check‐
5385 points, or in simpler usages, to copy bitmaps.
5386
5387 Returns
5388 • nothing on success
5389
5390 • If node is not a valid block device, DeviceNotFound
5391
5392 • If any bitmap in bitmaps or target is not found, GenericError
5393
5394 • If any of the bitmaps have different sizes or granularities, Gener‐
5395 icError
5396
5397 Since
5398 4.0
5399
5400 Example
5401 -> { "execute": "block-dirty-bitmap-merge",
5402 "arguments": { "node": "drive0", "target": "bitmap0",
5403 "bitmaps": ["bitmap1"] } }
5404 <- { "return": {} }
5405
5406 BlockDirtyBitmapSha256 (Object)
5407 SHA256 hash of dirty bitmap data
5408
5409 Members
5410 sha256: string
5411 ASCII representation of SHA256 bitmap hash
5412
5413 Since
5414 2.10
5415
5416 x-debug-block-dirty-bitmap-sha256 (Command)
5417 Get bitmap SHA256.
5418
5419 Features
5420 unstable
5421 This command is meant for debugging.
5422
5423 Returns
5424 • BlockDirtyBitmapSha256 on success
5425
5426 • If node is not a valid block device, DeviceNotFound
5427
5428 • If name is not found or if hashing has failed, GenericError with an
5429 explanation
5430
5431 Since
5432 2.10
5433
5434 blockdev-mirror (Command)
5435 Start mirroring a block device's writes to a new destination.
5436
5437 Arguments
5438 job-id: string (optional)
5439 identifier for the newly-created block job. If omitted, the de‐
5440 vice name will be used. (Since 2.7)
5441
5442 device: string
5443 The device name or node-name of a root node whose writes should
5444 be mirrored.
5445
5446 target: string
5447 the id or node-name of the block device to mirror to. This
5448 mustn't be attached to guest.
5449
5450 replaces: string (optional)
5451 with sync=full graph node name to be replaced by the new image
5452 when a whole image copy is done. This can be used to repair bro‐
5453 ken Quorum files. By default, device is replaced, although im‐
5454 plicitly created filters on it are kept.
5455
5456 speed: int (optional)
5457 the maximum speed, in bytes per second
5458
5459 sync: MirrorSyncMode
5460 what parts of the disk image should be copied to the destination
5461 (all the disk, only the sectors allocated in the topmost image,
5462 or only new I/O).
5463
5464 granularity: int (optional)
5465 granularity of the dirty bitmap, default is 64K if the image
5466 format doesn't have clusters, 4K if the clusters are smaller
5467 than that, else the cluster size. Must be a power of 2 between
5468 512 and 64M
5469
5470 buf-size: int (optional)
5471 maximum amount of data in flight from source to target
5472
5473 on-source-error: BlockdevOnError (optional)
5474 the action to take on an error on the source, default 'report'.
5475 'stop' and 'enospc' can only be used if the block device sup‐
5476 ports io-status (see BlockInfo).
5477
5478 on-target-error: BlockdevOnError (optional)
5479 the action to take on an error on the target, default 'report'
5480 (no limitations, since this applies to a different block device
5481 than device).
5482
5483 filter-node-name: string (optional)
5484 the node name that should be assigned to the filter driver that
5485 the mirror job inserts into the graph above device. If this op‐
5486 tion is not given, a node name is autogenerated. (Since: 2.9)
5487
5488 copy-mode: MirrorCopyMode (optional)
5489 when to copy data to the destination; defaults to 'background'
5490 (Since: 3.0)
5491
5492 auto-finalize: boolean (optional)
5493 When false, this job will wait in a PENDING state after it has
5494 finished its work, waiting for block-job-finalize before making
5495 any block graph changes. When true, this job will automatically
5496 perform its abort or commit actions. Defaults to true. (Since
5497 3.1)
5498
5499 auto-dismiss: boolean (optional)
5500 When false, this job will wait in a CONCLUDED state after it has
5501 completely ceased all work, and awaits block-job-dismiss. When
5502 true, this job will automatically disappear from the query list
5503 without user intervention. Defaults to true. (Since 3.1)
5504
5505 Returns
5506 nothing on success.
5507
5508 Since
5509 2.6
5510
5511 Example
5512 -> { "execute": "blockdev-mirror",
5513 "arguments": { "device": "ide-hd0",
5514 "target": "target0",
5515 "sync": "full" } }
5516 <- { "return": {} }
5517
5518 BlockIOThrottle (Object)
5519 A set of parameters describing block throttling.
5520
5521 Members
5522 device: string (optional)
5523 Block device name
5524
5525 id: string (optional)
5526 The name or QOM path of the guest device (since: 2.8)
5527
5528 bps: int
5529 total throughput limit in bytes per second
5530
5531 bps_rd: int
5532 read throughput limit in bytes per second
5533
5534 bps_wr: int
5535 write throughput limit in bytes per second
5536
5537 iops: int
5538 total I/O operations per second
5539
5540 iops_rd: int
5541 read I/O operations per second
5542
5543 iops_wr: int
5544 write I/O operations per second
5545
5546 bps_max: int (optional)
5547 total throughput limit during bursts, in bytes (Since 1.7)
5548
5549 bps_rd_max: int (optional)
5550 read throughput limit during bursts, in bytes (Since 1.7)
5551
5552 bps_wr_max: int (optional)
5553 write throughput limit during bursts, in bytes (Since 1.7)
5554
5555 iops_max: int (optional)
5556 total I/O operations per second during bursts, in bytes (Since
5557 1.7)
5558
5559 iops_rd_max: int (optional)
5560 read I/O operations per second during bursts, in bytes (Since
5561 1.7)
5562
5563 iops_wr_max: int (optional)
5564 write I/O operations per second during bursts, in bytes (Since
5565 1.7)
5566
5567 bps_max_length: int (optional)
5568 maximum length of the bps_max burst period, in seconds. It must
5569 only be set if bps_max is set as well. Defaults to 1. (Since
5570 2.6)
5571
5572 bps_rd_max_length: int (optional)
5573 maximum length of the bps_rd_max burst period, in seconds. It
5574 must only be set if bps_rd_max is set as well. Defaults to 1.
5575 (Since 2.6)
5576
5577 bps_wr_max_length: int (optional)
5578 maximum length of the bps_wr_max burst period, in seconds. It
5579 must only be set if bps_wr_max is set as well. Defaults to 1.
5580 (Since 2.6)
5581
5582 iops_max_length: int (optional)
5583 maximum length of the iops burst period, in seconds. It must
5584 only be set if iops_max is set as well. Defaults to 1. (Since
5585 2.6)
5586
5587 iops_rd_max_length: int (optional)
5588 maximum length of the iops_rd_max burst period, in seconds. It
5589 must only be set if iops_rd_max is set as well. Defaults to 1.
5590 (Since 2.6)
5591
5592 iops_wr_max_length: int (optional)
5593 maximum length of the iops_wr_max burst period, in seconds. It
5594 must only be set if iops_wr_max is set as well. Defaults to 1.
5595 (Since 2.6)
5596
5597 iops_size: int (optional)
5598 an I/O size in bytes (Since 1.7)
5599
5600 group: string (optional)
5601 throttle group name (Since 2.4)
5602
5603 Features
5604 deprecated
5605 Member device is deprecated. Use id instead.
5606
5607 Since
5608 1.1
5609
5610 ThrottleLimits (Object)
5611 Limit parameters for throttling. Since some limit combinations are il‐
5612 legal, limits should always be set in one transaction. All fields are
5613 optional. When setting limits, if a field is missing the current value
5614 is not changed.
5615
5616 Members
5617 iops-total: int (optional)
5618 limit total I/O operations per second
5619
5620 iops-total-max: int (optional)
5621 I/O operations burst
5622
5623 iops-total-max-length: int (optional)
5624 length of the iops-total-max burst period, in seconds It must
5625 only be set if iops-total-max is set as well.
5626
5627 iops-read: int (optional)
5628 limit read operations per second
5629
5630 iops-read-max: int (optional)
5631 I/O operations read burst
5632
5633 iops-read-max-length: int (optional)
5634 length of the iops-read-max burst period, in seconds It must
5635 only be set if iops-read-max is set as well.
5636
5637 iops-write: int (optional)
5638 limit write operations per second
5639
5640 iops-write-max: int (optional)
5641 I/O operations write burst
5642
5643 iops-write-max-length: int (optional)
5644 length of the iops-write-max burst period, in seconds It must
5645 only be set if iops-write-max is set as well.
5646
5647 bps-total: int (optional)
5648 limit total bytes per second
5649
5650 bps-total-max: int (optional)
5651 total bytes burst
5652
5653 bps-total-max-length: int (optional)
5654 length of the bps-total-max burst period, in seconds. It must
5655 only be set if bps-total-max is set as well.
5656
5657 bps-read: int (optional)
5658 limit read bytes per second
5659
5660 bps-read-max: int (optional)
5661 total bytes read burst
5662
5663 bps-read-max-length: int (optional)
5664 length of the bps-read-max burst period, in seconds It must only
5665 be set if bps-read-max is set as well.
5666
5667 bps-write: int (optional)
5668 limit write bytes per second
5669
5670 bps-write-max: int (optional)
5671 total bytes write burst
5672
5673 bps-write-max-length: int (optional)
5674 length of the bps-write-max burst period, in seconds It must
5675 only be set if bps-write-max is set as well.
5676
5677 iops-size: int (optional)
5678 when limiting by iops max size of an I/O in bytes
5679
5680 Since
5681 2.11
5682
5683 ThrottleGroupProperties (Object)
5684 Properties for throttle-group objects.
5685
5686 Members
5687 limits: ThrottleLimits (optional)
5688 limits to apply for this throttle group
5689
5690 x-iops-total: int (optional)
5691 Not documented
5692
5693 x-iops-total-max: int (optional)
5694 Not documented
5695
5696 x-iops-total-max-length: int (optional)
5697 Not documented
5698
5699 x-iops-read: int (optional)
5700 Not documented
5701
5702 x-iops-read-max: int (optional)
5703 Not documented
5704
5705 x-iops-read-max-length: int (optional)
5706 Not documented
5707
5708 x-iops-write: int (optional)
5709 Not documented
5710
5711 x-iops-write-max: int (optional)
5712 Not documented
5713
5714 x-iops-write-max-length: int (optional)
5715 Not documented
5716
5717 x-bps-total: int (optional)
5718 Not documented
5719
5720 x-bps-total-max: int (optional)
5721 Not documented
5722
5723 x-bps-total-max-length: int (optional)
5724 Not documented
5725
5726 x-bps-read: int (optional)
5727 Not documented
5728
5729 x-bps-read-max: int (optional)
5730 Not documented
5731
5732 x-bps-read-max-length: int (optional)
5733 Not documented
5734
5735 x-bps-write: int (optional)
5736 Not documented
5737
5738 x-bps-write-max: int (optional)
5739 Not documented
5740
5741 x-bps-write-max-length: int (optional)
5742 Not documented
5743
5744 x-iops-size: int (optional)
5745 Not documented
5746
5747 Features
5748 unstable
5749 All members starting with x- are aliases for the same key with‐
5750 out x- in the limits object. This is not a stable interface and
5751 may be removed or changed incompatibly in the future. Use lim‐
5752 its for a supported stable interface.
5753
5754 Since
5755 2.11
5756
5757 block-stream (Command)
5758 Copy data from a backing file into a block device.
5759
5760 The block streaming operation is performed in the background until the
5761 entire backing file has been copied. This command returns immediately
5762 once streaming has started. The status of ongoing block streaming op‐
5763 erations can be checked with query-block-jobs. The operation can be
5764 stopped before it has completed using the block-job-cancel command.
5765
5766 The node that receives the data is called the top image, can be located
5767 in any part of the chain (but always above the base image; see below)
5768 and can be specified using its device or node name. Earlier qemu ver‐
5769 sions only allowed 'device' to name the top level node; presence of the
5770 'base-node' parameter during introspection can be used as a witness of
5771 the enhanced semantics of 'device'.
5772
5773 If a base file is specified then sectors are not copied from that base
5774 file and its backing chain. This can be used to stream a subset of the
5775 backing file chain instead of flattening the entire image. When
5776 streaming completes the image file will have the base file as its back‐
5777 ing file, unless that node was changed while the job was running. In
5778 that case, base's parent's backing (or filtered, whichever exists)
5779 child (i.e., base at the beginning of the job) will be the new backing
5780 file.
5781
5782 On successful completion the image file is updated to drop the backing
5783 file and the BLOCK_JOB_COMPLETED event is emitted.
5784
5785 In case device is a filter node, block-stream modifies the first
5786 non-filter overlay node below it to point to the new backing node in‐
5787 stead of modifying device itself.
5788
5789 Arguments
5790 job-id: string (optional)
5791 identifier for the newly-created block job. If omitted, the de‐
5792 vice name will be used. (Since 2.7)
5793
5794 device: string
5795 the device or node name of the top image
5796
5797 base: string (optional)
5798 the common backing file name. It cannot be set if base-node or
5799 bottom is also set.
5800
5801 base-node: string (optional)
5802 the node name of the backing file. It cannot be set if base or
5803 bottom is also set. (Since 2.8)
5804
5805 bottom: string (optional)
5806 the last node in the chain that should be streamed into top. It
5807 cannot be set if base or base-node is also set. It cannot be
5808 filter node. (Since 6.0)
5809
5810 backing-file: string (optional)
5811 The backing file string to write into the top image. This file‐
5812 name is not validated.
5813
5814 If a pathname string is such that it cannot be resolved by QEMU,
5815 that means that subsequent QMP or HMP commands must use
5816 node-names for the image in question, as filename lookup methods
5817 will fail.
5818
5819 If not specified, QEMU will automatically determine the backing
5820 file string to use, or error out if there is no obvious choice.
5821 Care should be taken when specifying the string, to specify a
5822 valid filename or protocol. (Since 2.1)
5823
5824 speed: int (optional)
5825 the maximum speed, in bytes per second
5826
5827 on-error: BlockdevOnError (optional)
5828 the action to take on an error (default report). 'stop' and
5829 'enospc' can only be used if the block device supports io-status
5830 (see BlockInfo). Since 1.3.
5831
5832 filter-node-name: string (optional)
5833 the node name that should be assigned to the filter driver that
5834 the stream job inserts into the graph above device. If this op‐
5835 tion is not given, a node name is autogenerated. (Since: 6.0)
5836
5837 auto-finalize: boolean (optional)
5838 When false, this job will wait in a PENDING state after it has
5839 finished its work, waiting for block-job-finalize before making
5840 any block graph changes. When true, this job will automatically
5841 perform its abort or commit actions. Defaults to true. (Since
5842 3.1)
5843
5844 auto-dismiss: boolean (optional)
5845 When false, this job will wait in a CONCLUDED state after it has
5846 completely ceased all work, and awaits block-job-dismiss. When
5847 true, this job will automatically disappear from the query list
5848 without user intervention. Defaults to true. (Since 3.1)
5849
5850 Returns
5851 • Nothing on success.
5852
5853 • If device does not exist, DeviceNotFound.
5854
5855 Since
5856 1.1
5857
5858 Example
5859 -> { "execute": "block-stream",
5860 "arguments": { "device": "virtio0",
5861 "base": "/tmp/master.qcow2" } }
5862 <- { "return": {} }
5863
5864 block-job-set-speed (Command)
5865 Set maximum speed for a background block operation.
5866
5867 This command can only be issued when there is an active block job.
5868
5869 Throttling can be disabled by setting the speed to 0.
5870
5871 Arguments
5872 device: string
5873 The job identifier. This used to be a device name (hence the
5874 name of the parameter), but since QEMU 2.7 it can have other
5875 values.
5876
5877 speed: int
5878 the maximum speed, in bytes per second, or 0 for unlimited. De‐
5879 faults to 0.
5880
5881 Returns
5882 • Nothing on success
5883
5884 • If no background operation is active on this device, DeviceNotActive
5885
5886 Since
5887 1.1
5888
5889 block-job-cancel (Command)
5890 Stop an active background block operation.
5891
5892 This command returns immediately after marking the active background
5893 block operation for cancellation. It is an error to call this command
5894 if no operation is in progress.
5895
5896 The operation will cancel as soon as possible and then emit the
5897 BLOCK_JOB_CANCELLED event. Before that happens the job is still visi‐
5898 ble when enumerated using query-block-jobs.
5899
5900 Note that if you issue 'block-job-cancel' after 'drive-mirror' has in‐
5901 dicated (via the event BLOCK_JOB_READY) that the source and destination
5902 are synchronized, then the event triggered by this command changes to
5903 BLOCK_JOB_COMPLETED, to indicate that the mirroring has ended and the
5904 destination now has a point-in-time copy tied to the time of the can‐
5905 cellation.
5906
5907 For streaming, the image file retains its backing file unless the
5908 streaming operation happens to complete just as it is being cancelled.
5909 A new streaming operation can be started at a later time to finish
5910 copying all data from the backing file.
5911
5912 Arguments
5913 device: string
5914 The job identifier. This used to be a device name (hence the
5915 name of the parameter), but since QEMU 2.7 it can have other
5916 values.
5917
5918 force: boolean (optional)
5919 If true, and the job has already emitted the event
5920 BLOCK_JOB_READY, abandon the job immediately (even if it is
5921 paused) instead of waiting for the destination to complete its
5922 final synchronization (since 1.3)
5923
5924 Returns
5925 • Nothing on success
5926
5927 • If no background operation is active on this device, DeviceNotActive
5928
5929 Since
5930 1.1
5931
5932 block-job-pause (Command)
5933 Pause an active background block operation.
5934
5935 This command returns immediately after marking the active background
5936 block operation for pausing. It is an error to call this command if no
5937 operation is in progress or if the job is already paused.
5938
5939 The operation will pause as soon as possible. No event is emitted when
5940 the operation is actually paused. Cancelling a paused job automati‐
5941 cally resumes it.
5942
5943 Arguments
5944 device: string
5945 The job identifier. This used to be a device name (hence the
5946 name of the parameter), but since QEMU 2.7 it can have other
5947 values.
5948
5949 Returns
5950 • Nothing on success
5951
5952 • If no background operation is active on this device, DeviceNotActive
5953
5954 Since
5955 1.3
5956
5957 block-job-resume (Command)
5958 Resume an active background block operation.
5959
5960 This command returns immediately after resuming a paused background
5961 block operation. It is an error to call this command if no operation
5962 is in progress or if the job is not paused.
5963
5964 This command also clears the error status of the job.
5965
5966 Arguments
5967 device: string
5968 The job identifier. This used to be a device name (hence the
5969 name of the parameter), but since QEMU 2.7 it can have other
5970 values.
5971
5972 Returns
5973 • Nothing on success
5974
5975 • If no background operation is active on this device, DeviceNotActive
5976
5977 Since
5978 1.3
5979
5980 block-job-complete (Command)
5981 Manually trigger completion of an active background block operation.
5982 This is supported for drive mirroring, where it also switches the de‐
5983 vice to write to the target path only. The ability to complete is sig‐
5984 naled with a BLOCK_JOB_READY event.
5985
5986 This command completes an active background block operation syn‐
5987 chronously. The ordering of this command's return with the
5988 BLOCK_JOB_COMPLETED event is not defined. Note that if an I/O error
5989 occurs during the processing of this command: 1) the command itself
5990 will fail; 2) the error will be processed according to the rerror/wer‐
5991 ror arguments that were specified when starting the operation.
5992
5993 A cancelled or paused job cannot be completed.
5994
5995 Arguments
5996 device: string
5997 The job identifier. This used to be a device name (hence the
5998 name of the parameter), but since QEMU 2.7 it can have other
5999 values.
6000
6001 Returns
6002 • Nothing on success
6003
6004 • If no background operation is active on this device, DeviceNotActive
6005
6006 Since
6007 1.3
6008
6009 block-job-dismiss (Command)
6010 For jobs that have already concluded, remove them from the
6011 block-job-query list. This command only needs to be run for jobs which
6012 were started with QEMU 2.12+ job lifetime management semantics.
6013
6014 This command will refuse to operate on any job that has not yet reached
6015 its terminal state, JOB_STATUS_CONCLUDED. For jobs that make use of the
6016 BLOCK_JOB_READY event, block-job-cancel or block-job-complete will
6017 still need to be used as appropriate.
6018
6019 Arguments
6020 id: string
6021 The job identifier.
6022
6023 Returns
6024 Nothing on success
6025
6026 Since
6027 2.12
6028
6029 block-job-finalize (Command)
6030 Once a job that has manual=true reaches the pending state, it can be
6031 instructed to finalize any graph changes and do any necessary cleanup
6032 via this command. For jobs in a transaction, instructing one job to
6033 finalize will force ALL jobs in the transaction to finalize, so it is
6034 only necessary to instruct a single member job to finalize.
6035
6036 Arguments
6037 id: string
6038 The job identifier.
6039
6040 Returns
6041 Nothing on success
6042
6043 Since
6044 2.12
6045
6046 BlockdevDiscardOptions (Enum)
6047 Determines how to handle discard requests.
6048
6049 Values
6050 ignore Ignore the request
6051
6052 unmap Forward as an unmap request
6053
6054 Since
6055 2.9
6056
6057 BlockdevDetectZeroesOptions (Enum)
6058 Describes the operation mode for the automatic conversion of plain zero
6059 writes by the OS to driver specific optimized zero write commands.
6060
6061 Values
6062 off Disabled (default)
6063
6064 on Enabled
6065
6066 unmap Enabled and even try to unmap blocks if possible. This requires
6067 also that BlockdevDiscardOptions is set to unmap for this de‐
6068 vice.
6069
6070 Since
6071 2.1
6072
6073 BlockdevAioOptions (Enum)
6074 Selects the AIO backend to handle I/O requests
6075
6076 Values
6077 threads
6078 Use qemu's thread pool
6079
6080 native Use native AIO backend (only Linux and Windows)
6081
6082 io_uring (If: CONFIG_LINUX_IO_URING)
6083 Use linux io_uring (since 5.0)
6084
6085 Since
6086 2.9
6087
6088 BlockdevCacheOptions (Object)
6089 Includes cache-related options for block devices
6090
6091 Members
6092 direct: boolean (optional)
6093 enables use of O_DIRECT (bypass the host page cache; default:
6094 false)
6095
6096 no-flush: boolean (optional)
6097 ignore any flush requests for the device (default: false)
6098
6099 Since
6100 2.9
6101
6102 BlockdevDriver (Enum)
6103 Drivers that are supported in block device operations.
6104
6105 Values
6106 throttle
6107 Since 2.11
6108
6109 nvme Since 2.12
6110
6111 copy-on-read
6112 Since 3.0
6113
6114 blklogwrites
6115 Since 3.0
6116
6117 blkreplay
6118 Since 4.2
6119
6120 compress
6121 Since 5.0
6122
6123 copy-before-write
6124 Since 6.2
6125
6126 snapshot-access
6127 Since 7.0
6128
6129 blkdebug
6130 Not documented
6131
6132 blkverify
6133 Not documented
6134
6135 bochs Not documented
6136
6137 cloop Not documented
6138
6139 dmg Not documented
6140
6141 file Not documented
6142
6143 ftp Not documented
6144
6145 ftps Not documented
6146
6147 gluster
6148 Not documented
6149
6150 host_cdrom (If: HAVE_HOST_BLOCK_DEVICE)
6151 Not documented
6152
6153 host_device (If: HAVE_HOST_BLOCK_DEVICE)
6154 Not documented
6155
6156 http Not documented
6157
6158 https Not documented
6159
6160 io_uring (If: CONFIG_BLKIO)
6161 Not documented
6162
6163 iscsi Not documented
6164
6165 luks Not documented
6166
6167 nbd Not documented
6168
6169 nfs Not documented
6170
6171 null-aio
6172 Not documented
6173
6174 null-co
6175 Not documented
6176
6177 nvme-io_uring (If: CONFIG_BLKIO)
6178 Not documented
6179
6180 parallels
6181 Not documented
6182
6183 preallocate
6184 Not documented
6185
6186 qcow Not documented
6187
6188 qcow2 Not documented
6189
6190 qed Not documented
6191
6192 quorum Not documented
6193
6194 raw Not documented
6195
6196 rbd Not documented
6197
6198 replication (If: CONFIG_REPLICATION)
6199 Not documented
6200
6201 ssh Not documented
6202
6203 vdi Not documented
6204
6205 vhdx Not documented
6206
6207 virtio-blk-vfio-pci (If: CONFIG_BLKIO)
6208 Not documented
6209
6210 virtio-blk-vhost-user (If: CONFIG_BLKIO)
6211 Not documented
6212
6213 virtio-blk-vhost-vdpa (If: CONFIG_BLKIO)
6214 Not documented
6215
6216 vmdk Not documented
6217
6218 vpc Not documented
6219
6220 vvfat Not documented
6221
6222 Since
6223 2.9
6224
6225 BlockdevOptionsFile (Object)
6226 Driver specific block device options for the file backend.
6227
6228 Members
6229 filename: string
6230 path to the image file
6231
6232 pr-manager: string (optional)
6233 the id for the object that will handle persistent reservations
6234 for this device (default: none, forward the commands via SG_IO;
6235 since 2.11)
6236
6237 aio: BlockdevAioOptions (optional)
6238 AIO backend (default: threads) (since: 2.8)
6239
6240 aio-max-batch: int (optional)
6241 maximum number of requests to batch together into a single sub‐
6242 mission in the AIO backend. The smallest value between this and
6243 the aio-max-batch value of the IOThread object is chosen. 0
6244 means that the AIO backend will handle it automatically. (de‐
6245 fault: 0, since 6.2)
6246
6247 locking: OnOffAuto (optional)
6248 whether to enable file locking. If set to 'auto', only enable
6249 when Open File Descriptor (OFD) locking API is available (de‐
6250 fault: auto, since 2.10)
6251
6252 drop-cache: boolean (optional) (If: CONFIG_LINUX)
6253 invalidate page cache during live migration. This prevents
6254 stale data on the migration destination with cache.direct=off.
6255 Currently only supported on Linux hosts. (default: on, since:
6256 4.0)
6257
6258 x-check-cache-dropped: boolean (optional)
6259 whether to check that page cache was dropped on live migration.
6260 May cause noticeable delays if the image file is large, do not
6261 use in production. (default: off) (since: 3.0)
6262
6263 Features
6264 dynamic-auto-read-only
6265 If present, enabled auto-read-only means that the driver will
6266 open the image read-only at first, dynamically reopen the image
6267 file read-write when the first writer is attached to the node
6268 and reopen read-only when the last writer is detached. This al‐
6269 lows giving QEMU write permissions only on demand when an opera‐
6270 tion actually needs write access.
6271
6272 unstable
6273 Member x-check-cache-dropped is meant for debugging.
6274
6275 Since
6276 2.9
6277
6278 BlockdevOptionsNull (Object)
6279 Driver specific block device options for the null backend.
6280
6281 Members
6282 size: int (optional)
6283 size of the device in bytes.
6284
6285 latency-ns: int (optional)
6286 emulated latency (in nanoseconds) in processing requests. De‐
6287 fault to zero which completes requests immediately. (Since 2.4)
6288
6289 read-zeroes: boolean (optional)
6290 if true, reads from the device produce zeroes; if false, the
6291 buffer is left unchanged. (default: false; since: 4.1)
6292
6293 Since
6294 2.9
6295
6296 BlockdevOptionsNVMe (Object)
6297 Driver specific block device options for the NVMe backend.
6298
6299 Members
6300 device: string
6301 PCI controller address of the NVMe device in format hhhh:bb:ss.f
6302 (host:bus:slot.function)
6303
6304 namespace: int
6305 namespace number of the device, starting from 1.
6306 Note that the PCI device must have been unbound from any host kernel
6307 driver before instructing QEMU to add the blockdev.
6308
6309 Since
6310 2.12
6311
6312 BlockdevOptionsVVFAT (Object)
6313 Driver specific block device options for the vvfat protocol.
6314
6315 Members
6316 dir: string
6317 directory to be exported as FAT image
6318
6319 fat-type: int (optional)
6320 FAT type: 12, 16 or 32
6321
6322 floppy: boolean (optional)
6323 whether to export a floppy image (true) or partitioned hard disk
6324 (false; default)
6325
6326 label: string (optional)
6327 set the volume label, limited to 11 bytes. FAT16 and FAT32 tra‐
6328 ditionally have some restrictions on labels, which are ignored
6329 by most operating systems. Defaults to "QEMU VVFAT". (since
6330 2.4)
6331
6332 rw: boolean (optional)
6333 whether to allow write operations (default: false)
6334
6335 Since
6336 2.9
6337
6338 BlockdevOptionsGenericFormat (Object)
6339 Driver specific block device options for image format that have no op‐
6340 tion besides their data source.
6341
6342 Members
6343 file: BlockdevRef
6344 reference to or definition of the data source block device
6345
6346 Since
6347 2.9
6348
6349 BlockdevOptionsLUKS (Object)
6350 Driver specific block device options for LUKS.
6351
6352 Members
6353 key-secret: string (optional)
6354 the ID of a QCryptoSecret object providing the decryption key
6355 (since 2.6). Mandatory except when doing a metadata-only probe
6356 of the image.
6357
6358 The members of BlockdevOptionsGenericFormat
6359
6360 Since
6361 2.9
6362
6363 BlockdevOptionsGenericCOWFormat (Object)
6364 Driver specific block device options for image format that have no op‐
6365 tion besides their data source and an optional backing file.
6366
6367 Members
6368 backing: BlockdevRefOrNull (optional)
6369 reference to or definition of the backing file block device,
6370 null disables the backing file entirely. Defaults to the back‐
6371 ing file stored the image file.
6372
6373 The members of BlockdevOptionsGenericFormat
6374
6375 Since
6376 2.9
6377
6378 Qcow2OverlapCheckMode (Enum)
6379 General overlap check modes.
6380
6381 Values
6382 none Do not perform any checks
6383
6384 constant
6385 Perform only checks which can be done in constant time and with‐
6386 out reading anything from disk
6387
6388 cached Perform only checks which can be done without reading anything
6389 from disk
6390
6391 all Perform all available overlap checks
6392
6393 Since
6394 2.9
6395
6396 Qcow2OverlapCheckFlags (Object)
6397 Structure of flags for each metadata structure. Setting a field to
6398 'true' makes qemu guard that structure against unintended overwriting.
6399 The default value is chosen according to the template given.
6400
6401 Members
6402 template: Qcow2OverlapCheckMode (optional)
6403 Specifies a template mode which can be adjusted using the other
6404 flags, defaults to 'cached'
6405
6406 bitmap-directory: boolean (optional)
6407 since 3.0
6408
6409 main-header: boolean (optional)
6410 Not documented
6411
6412 active-l1: boolean (optional)
6413 Not documented
6414
6415 active-l2: boolean (optional)
6416 Not documented
6417
6418 refcount-table: boolean (optional)
6419 Not documented
6420
6421 refcount-block: boolean (optional)
6422 Not documented
6423
6424 snapshot-table: boolean (optional)
6425 Not documented
6426
6427 inactive-l1: boolean (optional)
6428 Not documented
6429
6430 inactive-l2: boolean (optional)
6431 Not documented
6432
6433 Since
6434 2.9
6435
6436 Qcow2OverlapChecks (Alternate)
6437 Specifies which metadata structures should be guarded against unin‐
6438 tended overwriting.
6439
6440 Members
6441 flags: Qcow2OverlapCheckFlags
6442 set of flags for separate specification of each metadata struc‐
6443 ture type
6444
6445 mode: Qcow2OverlapCheckMode
6446 named mode which chooses a specific set of flags
6447
6448 Since
6449 2.9
6450
6451 BlockdevQcowEncryptionFormat (Enum)
6452 Values
6453 aes AES-CBC with plain64 initialization vectors
6454
6455 Since
6456 2.10
6457
6458 BlockdevQcowEncryption (Object)
6459 Members
6460 format: BlockdevQcowEncryptionFormat
6461 Not documented
6462
6463 The members of QCryptoBlockOptionsQCow when format is "aes"
6464
6465 Since
6466 2.10
6467
6468 BlockdevOptionsQcow (Object)
6469 Driver specific block device options for qcow.
6470
6471 Members
6472 encrypt: BlockdevQcowEncryption (optional)
6473 Image decryption options. Mandatory for encrypted images, except
6474 when doing a metadata-only probe of the image.
6475
6476 The members of BlockdevOptionsGenericCOWFormat
6477
6478 Since
6479 2.10
6480
6481 BlockdevQcow2EncryptionFormat (Enum)
6482 Values
6483 aes AES-CBC with plain64 initialization vectors
6484
6485 luks Not documented
6486
6487 Since
6488 2.10
6489
6490 BlockdevQcow2Encryption (Object)
6491 Members
6492 format: BlockdevQcow2EncryptionFormat
6493 Not documented
6494
6495 The members of QCryptoBlockOptionsQCow when format is "aes"
6496
6497 The members of QCryptoBlockOptionsLUKS when format is "luks"
6498
6499 Since
6500 2.10
6501
6502 BlockdevOptionsPreallocate (Object)
6503 Filter driver intended to be inserted between format and protocol node
6504 and do preallocation in protocol node on write.
6505
6506 Members
6507 prealloc-align: int (optional)
6508 on preallocation, align file length to this number, default
6509 1048576 (1M)
6510
6511 prealloc-size: int (optional)
6512 how much to preallocate, default 134217728 (128M)
6513
6514 The members of BlockdevOptionsGenericFormat
6515
6516 Since
6517 6.0
6518
6519 BlockdevOptionsQcow2 (Object)
6520 Driver specific block device options for qcow2.
6521
6522 Members
6523 lazy-refcounts: boolean (optional)
6524 whether to enable the lazy refcounts feature (default is taken
6525 from the image file)
6526
6527 pass-discard-request: boolean (optional)
6528 whether discard requests to the qcow2 device should be forwarded
6529 to the data source
6530
6531 pass-discard-snapshot: boolean (optional)
6532 whether discard requests for the data source should be issued
6533 when a snapshot operation (e.g. deleting a snapshot) frees
6534 clusters in the qcow2 file
6535
6536 pass-discard-other: boolean (optional)
6537 whether discard requests for the data source should be issued on
6538 other occasions where a cluster gets freed
6539
6540 overlap-check: Qcow2OverlapChecks (optional)
6541 which overlap checks to perform for writes to the image, de‐
6542 faults to 'cached' (since 2.2)
6543
6544 cache-size: int (optional)
6545 the maximum total size of the L2 table and refcount block caches
6546 in bytes (since 2.2)
6547
6548 l2-cache-size: int (optional)
6549 the maximum size of the L2 table cache in bytes (since 2.2)
6550
6551 l2-cache-entry-size: int (optional)
6552 the size of each entry in the L2 cache in bytes. It must be a
6553 power of two between 512 and the cluster size. The default value
6554 is the cluster size (since 2.12)
6555
6556 refcount-cache-size: int (optional)
6557 the maximum size of the refcount block cache in bytes (since
6558 2.2)
6559
6560 cache-clean-interval: int (optional)
6561 clean unused entries in the L2 and refcount caches. The interval
6562 is in seconds. The default value is 600 on supporting platforms,
6563 and 0 on other platforms. 0 disables this feature. (since 2.5)
6564
6565 encrypt: BlockdevQcow2Encryption (optional)
6566 Image decryption options. Mandatory for encrypted images, except
6567 when doing a metadata-only probe of the image. (since 2.10)
6568
6569 data-file: BlockdevRef (optional)
6570 reference to or definition of the external data file. This may
6571 only be specified for images that require an external data file.
6572 If it is not specified for such an image, the data file name is
6573 loaded from the image file. (since 4.0)
6574
6575 The members of BlockdevOptionsGenericCOWFormat
6576
6577 Since
6578 2.9
6579
6580 SshHostKeyCheckMode (Enum)
6581 Values
6582 none Don't check the host key at all
6583
6584 hash Compare the host key with a given hash
6585
6586 known_hosts
6587 Check the host key against the known_hosts file
6588
6589 Since
6590 2.12
6591
6592 SshHostKeyCheckHashType (Enum)
6593 Values
6594 md5 The given hash is an md5 hash
6595
6596 sha1 The given hash is an sha1 hash
6597
6598 sha256 The given hash is an sha256 hash
6599
6600 Since
6601 2.12
6602
6603 SshHostKeyHash (Object)
6604 Members
6605 type: SshHostKeyCheckHashType
6606 The hash algorithm used for the hash
6607
6608 hash: string
6609 The expected hash value
6610
6611 Since
6612 2.12
6613
6614 SshHostKeyCheck (Object)
6615 Members
6616 mode: SshHostKeyCheckMode
6617 Not documented
6618
6619 The members of SshHostKeyHash when mode is "hash"
6620
6621 Since
6622 2.12
6623
6624 BlockdevOptionsSsh (Object)
6625 Members
6626 server: InetSocketAddress
6627 host address
6628
6629 path: string
6630 path to the image on the host
6631
6632 user: string (optional)
6633 user as which to connect, defaults to current local user name
6634
6635 host-key-check: SshHostKeyCheck (optional)
6636 Defines how and what to check the host key against (default:
6637 known_hosts)
6638
6639 Since
6640 2.9
6641
6642 BlkdebugEvent (Enum)
6643 Trigger events supported by blkdebug.
6644
6645 Values
6646 l1_shrink_write_table
6647 write zeros to the l1 table to shrink image. (since 2.11)
6648
6649 l1_shrink_free_l2_clusters
6650 discard the l2 tables. (since 2.11)
6651
6652 cor_write
6653 a write due to copy-on-read (since 2.11)
6654
6655 cluster_alloc_space
6656 an allocation of file space for a cluster (since 4.1)
6657
6658 none triggers once at creation of the blkdebug node (since 4.1)
6659
6660 l1_update
6661 Not documented
6662
6663 l1_grow_alloc_table
6664 Not documented
6665
6666 l1_grow_write_table
6667 Not documented
6668
6669 l1_grow_activate_table
6670 Not documented
6671
6672 l2_load
6673 Not documented
6674
6675 l2_update
6676 Not documented
6677
6678 l2_update_compressed
6679 Not documented
6680
6681 l2_alloc_cow_read
6682 Not documented
6683
6684 l2_alloc_write
6685 Not documented
6686
6687 read_aio
6688 Not documented
6689
6690 read_backing_aio
6691 Not documented
6692
6693 read_compressed
6694 Not documented
6695
6696 write_aio
6697 Not documented
6698
6699 write_compressed
6700 Not documented
6701
6702 vmstate_load
6703 Not documented
6704
6705 vmstate_save
6706 Not documented
6707
6708 cow_read
6709 Not documented
6710
6711 cow_write
6712 Not documented
6713
6714 reftable_load
6715 Not documented
6716
6717 reftable_grow
6718 Not documented
6719
6720 reftable_update
6721 Not documented
6722
6723 refblock_load
6724 Not documented
6725
6726 refblock_update
6727 Not documented
6728
6729 refblock_update_part
6730 Not documented
6731
6732 refblock_alloc
6733 Not documented
6734
6735 refblock_alloc_hookup
6736 Not documented
6737
6738 refblock_alloc_write
6739 Not documented
6740
6741 refblock_alloc_write_blocks
6742 Not documented
6743
6744 refblock_alloc_write_table
6745 Not documented
6746
6747 refblock_alloc_switch_table
6748 Not documented
6749
6750 cluster_alloc
6751 Not documented
6752
6753 cluster_alloc_bytes
6754 Not documented
6755
6756 cluster_free
6757 Not documented
6758
6759 flush_to_os
6760 Not documented
6761
6762 flush_to_disk
6763 Not documented
6764
6765 pwritev_rmw_head
6766 Not documented
6767
6768 pwritev_rmw_after_head
6769 Not documented
6770
6771 pwritev_rmw_tail
6772 Not documented
6773
6774 pwritev_rmw_after_tail
6775 Not documented
6776
6777 pwritev
6778 Not documented
6779
6780 pwritev_zero
6781 Not documented
6782
6783 pwritev_done
6784 Not documented
6785
6786 empty_image_prepare
6787 Not documented
6788
6789 Since
6790 2.9
6791
6792 BlkdebugIOType (Enum)
6793 Kinds of I/O that blkdebug can inject errors in.
6794
6795 Values
6796 read .bdrv_co_preadv()
6797
6798 write .bdrv_co_pwritev()
6799
6800 write-zeroes
6801 .bdrv_co_pwrite_zeroes()
6802
6803 discard
6804 .bdrv_co_pdiscard()
6805
6806 flush .bdrv_co_flush_to_disk()
6807
6808 block-status
6809 .bdrv_co_block_status()
6810
6811 Since
6812 4.1
6813
6814 BlkdebugInjectErrorOptions (Object)
6815 Describes a single error injection for blkdebug.
6816
6817 Members
6818 event: BlkdebugEvent
6819 trigger event
6820
6821 state: int (optional)
6822 the state identifier blkdebug needs to be in to actually trigger
6823 the event; defaults to "any"
6824
6825 iotype: BlkdebugIOType (optional)
6826 the type of I/O operations on which this error should be in‐
6827 jected; defaults to "all read, write, write-zeroes, discard, and
6828 flush operations" (since: 4.1)
6829
6830 errno: int (optional)
6831 error identifier (errno) to be returned; defaults to EIO
6832
6833 sector: int (optional)
6834 specifies the sector index which has to be affected in order to
6835 actually trigger the event; defaults to "any sector"
6836
6837 once: boolean (optional)
6838 disables further events after this one has been triggered; de‐
6839 faults to false
6840
6841 immediately: boolean (optional)
6842 fail immediately; defaults to false
6843
6844 Since
6845 2.9
6846
6847 BlkdebugSetStateOptions (Object)
6848 Describes a single state-change event for blkdebug.
6849
6850 Members
6851 event: BlkdebugEvent
6852 trigger event
6853
6854 state: int (optional)
6855 the current state identifier blkdebug needs to be in; defaults
6856 to "any"
6857
6858 new_state: int
6859 the state identifier blkdebug is supposed to assume if this
6860 event is triggered
6861
6862 Since
6863 2.9
6864
6865 BlockdevOptionsBlkdebug (Object)
6866 Driver specific block device options for blkdebug.
6867
6868 Members
6869 image: BlockdevRef
6870 underlying raw block device (or image file)
6871
6872 config: string (optional)
6873 filename of the configuration file
6874
6875 align: int (optional)
6876 required alignment for requests in bytes, must be positive power
6877 of 2, or 0 for default
6878
6879 max-transfer: int (optional)
6880 maximum size for I/O transfers in bytes, must be positive multi‐
6881 ple of align and of the underlying file's request alignment (but
6882 need not be a power of 2), or 0 for default (since 2.10)
6883
6884 opt-write-zero: int (optional)
6885 preferred alignment for write zero requests in bytes, must be
6886 positive multiple of align and of the underlying file's request
6887 alignment (but need not be a power of 2), or 0 for default
6888 (since 2.10)
6889
6890 max-write-zero: int (optional)
6891 maximum size for write zero requests in bytes, must be positive
6892 multiple of align, of opt-write-zero, and of the underlying
6893 file's request alignment (but need not be a power of 2), or 0
6894 for default (since 2.10)
6895
6896 opt-discard: int (optional)
6897 preferred alignment for discard requests in bytes, must be posi‐
6898 tive multiple of align and of the underlying file's request
6899 alignment (but need not be a power of 2), or 0 for default
6900 (since 2.10)
6901
6902 max-discard: int (optional)
6903 maximum size for discard requests in bytes, must be positive
6904 multiple of align, of opt-discard, and of the underlying file's
6905 request alignment (but need not be a power of 2), or 0 for de‐
6906 fault (since 2.10)
6907
6908 inject-error: array of BlkdebugInjectErrorOptions (optional)
6909 array of error injection descriptions
6910
6911 set-state: array of BlkdebugSetStateOptions (optional)
6912 array of state-change descriptions
6913
6914 take-child-perms: array of BlockPermission (optional)
6915 Permissions to take on image in addition to what is necessary
6916 anyway (which depends on how the blkdebug node is used). De‐
6917 faults to none. (since 5.0)
6918
6919 unshare-child-perms: array of BlockPermission (optional)
6920 Permissions not to share on image in addition to what cannot be
6921 shared anyway (which depends on how the blkdebug node is used).
6922 Defaults to none. (since 5.0)
6923
6924 Since
6925 2.9
6926
6927 BlockdevOptionsBlklogwrites (Object)
6928 Driver specific block device options for blklogwrites.
6929
6930 Members
6931 file: BlockdevRef
6932 block device
6933
6934 log: BlockdevRef
6935 block device used to log writes to file
6936
6937 log-sector-size: int (optional)
6938 sector size used in logging writes to file, determines granular‐
6939 ity of offsets and sizes of writes (default: 512)
6940
6941 log-append: boolean (optional)
6942 append to an existing log (default: false)
6943
6944 log-super-update-interval: int (optional)
6945 interval of write requests after which the log super block is
6946 updated to disk (default: 4096)
6947
6948 Since
6949 3.0
6950
6951 BlockdevOptionsBlkverify (Object)
6952 Driver specific block device options for blkverify.
6953
6954 Members
6955 test: BlockdevRef
6956 block device to be tested
6957
6958 raw: BlockdevRef
6959 raw image used for verification
6960
6961 Since
6962 2.9
6963
6964 BlockdevOptionsBlkreplay (Object)
6965 Driver specific block device options for blkreplay.
6966
6967 Members
6968 image: BlockdevRef
6969 disk image which should be controlled with blkreplay
6970
6971 Since
6972 4.2
6973
6974 QuorumReadPattern (Enum)
6975 An enumeration of quorum read patterns.
6976
6977 Values
6978 quorum read all the children and do a quorum vote on reads
6979
6980 fifo read only from the first child that has not failed
6981
6982 Since
6983 2.9
6984
6985 BlockdevOptionsQuorum (Object)
6986 Driver specific block device options for Quorum
6987
6988 Members
6989 blkverify: boolean (optional)
6990
6991 true if the driver must print content mismatch
6992 set to false by default
6993
6994 children: array of BlockdevRef
6995 the children block devices to use
6996
6997 vote-threshold: int
6998 the vote limit under which a read will fail
6999
7000 rewrite-corrupted: boolean (optional)
7001 rewrite corrupted data when quorum is reached (Since 2.1)
7002
7003 read-pattern: QuorumReadPattern (optional)
7004 choose read pattern and set to quorum by default (Since 2.2)
7005
7006 Since
7007 2.9
7008
7009 BlockdevOptionsGluster (Object)
7010 Driver specific block device options for Gluster
7011
7012 Members
7013 volume: string
7014 name of gluster volume where VM image resides
7015
7016 path: string
7017 absolute path to image file in gluster volume
7018
7019 server: array of SocketAddress
7020 gluster servers description
7021
7022 debug: int (optional)
7023 libgfapi log level (default '4' which is Error) (Since 2.8)
7024
7025 logfile: string (optional)
7026 libgfapi log file (default /dev/stderr) (Since 2.8)
7027
7028 Since
7029 2.9
7030
7031 BlockdevOptionsIoUring (Object)
7032 Driver specific block device options for the io_uring backend.
7033
7034 Members
7035 filename: string
7036 path to the image file
7037
7038 Since
7039 7.2
7040
7041 If
7042 CONFIG_BLKIO
7043
7044 BlockdevOptionsNvmeIoUring (Object)
7045 Driver specific block device options for the nvme-io_uring backend.
7046
7047 Members
7048 path: string
7049 path to the NVMe namespace's character device (e.g. /dev/ng0n1).
7050
7051 Since
7052 7.2
7053
7054 If
7055 CONFIG_BLKIO
7056
7057 BlockdevOptionsVirtioBlkVfioPci (Object)
7058 Driver specific block device options for the virtio-blk-vfio-pci back‐
7059 end.
7060
7061 Members
7062 path: string
7063 path to the PCI device's sysfs directory (e.g. /sys/bus/pci/de‐
7064 vices/0000:00:01.0).
7065
7066 Since
7067 7.2
7068
7069 If
7070 CONFIG_BLKIO
7071
7072 BlockdevOptionsVirtioBlkVhostUser (Object)
7073 Driver specific block device options for the virtio-blk-vhost-user
7074 backend.
7075
7076 Members
7077 path: string
7078 path to the vhost-user UNIX domain socket.
7079
7080 Since
7081 7.2
7082
7083 If
7084 CONFIG_BLKIO
7085
7086 BlockdevOptionsVirtioBlkVhostVdpa (Object)
7087 Driver specific block device options for the virtio-blk-vhost-vdpa
7088 backend.
7089
7090 Members
7091 path: string
7092 path to the vhost-vdpa character device.
7093
7094 Since
7095 7.2
7096
7097 If
7098 CONFIG_BLKIO
7099
7100 IscsiTransport (Enum)
7101 An enumeration of libiscsi transport types
7102
7103 Values
7104 tcp Not documented
7105
7106 iser Not documented
7107
7108 Since
7109 2.9
7110
7111 IscsiHeaderDigest (Enum)
7112 An enumeration of header digests supported by libiscsi
7113
7114 Values
7115 crc32c Not documented
7116
7117 none Not documented
7118
7119 crc32c-none
7120 Not documented
7121
7122 none-crc32c
7123 Not documented
7124
7125 Since
7126 2.9
7127
7128 BlockdevOptionsIscsi (Object)
7129 Members
7130 transport: IscsiTransport
7131 The iscsi transport type
7132
7133 portal: string
7134 The address of the iscsi portal
7135
7136 target: string
7137 The target iqn name
7138
7139 lun: int (optional)
7140 LUN to connect to. Defaults to 0.
7141
7142 user: string (optional)
7143 User name to log in with. If omitted, no CHAP authentication is
7144 performed.
7145
7146 password-secret: string (optional)
7147 The ID of a QCryptoSecret object providing the password for the
7148 login. This option is required if user is specified.
7149
7150 initiator-name: string (optional)
7151 The iqn name we want to identify to the target as. If this op‐
7152 tion is not specified, an initiator name is generated automati‐
7153 cally.
7154
7155 header-digest: IscsiHeaderDigest (optional)
7156 The desired header digest. Defaults to none-crc32c.
7157
7158 timeout: int (optional)
7159 Timeout in seconds after which a request will timeout. 0 means
7160 no timeout and is the default.
7161 Driver specific block device options for iscsi
7162
7163 Since
7164 2.9
7165
7166 RbdAuthMode (Enum)
7167 Values
7168 cephx Not documented
7169
7170 none Not documented
7171
7172 Since
7173 3.0
7174
7175 RbdImageEncryptionFormat (Enum)
7176 Values
7177 luks Not documented
7178
7179 luks2 Not documented
7180
7181 Since
7182 6.1
7183
7184 RbdEncryptionOptionsLUKSBase (Object)
7185 Members
7186 key-secret: string
7187 ID of a QCryptoSecret object providing a passphrase for unlock‐
7188 ing the encryption
7189
7190 Since
7191 6.1
7192
7193 RbdEncryptionCreateOptionsLUKSBase (Object)
7194 Members
7195 cipher-alg: QCryptoCipherAlgorithm (optional)
7196 The encryption algorithm
7197
7198 The members of RbdEncryptionOptionsLUKSBase
7199
7200 Since
7201 6.1
7202
7203 RbdEncryptionOptionsLUKS (Object)
7204 Members
7205 The members of RbdEncryptionOptionsLUKSBase
7206
7207 Since
7208 6.1
7209
7210 RbdEncryptionOptionsLUKS2 (Object)
7211 Members
7212 The members of RbdEncryptionOptionsLUKSBase
7213
7214 Since
7215 6.1
7216
7217 RbdEncryptionCreateOptionsLUKS (Object)
7218 Members
7219 The members of RbdEncryptionCreateOptionsLUKSBase
7220
7221 Since
7222 6.1
7223
7224 RbdEncryptionCreateOptionsLUKS2 (Object)
7225 Members
7226 The members of RbdEncryptionCreateOptionsLUKSBase
7227
7228 Since
7229 6.1
7230
7231 RbdEncryptionOptions (Object)
7232 Members
7233 format: RbdImageEncryptionFormat
7234 Not documented
7235
7236 The members of RbdEncryptionOptionsLUKS when format is "luks"
7237
7238 The members of RbdEncryptionOptionsLUKS2 when format is "luks2"
7239
7240 Since
7241 6.1
7242
7243 RbdEncryptionCreateOptions (Object)
7244 Members
7245 format: RbdImageEncryptionFormat
7246 Not documented
7247
7248 The members of RbdEncryptionCreateOptionsLUKS when format is "luks"
7249
7250 The members of RbdEncryptionCreateOptionsLUKS2 when format is "luks2"
7251
7252 Since
7253 6.1
7254
7255 BlockdevOptionsRbd (Object)
7256 Members
7257 pool: string
7258 Ceph pool name.
7259
7260 namespace: string (optional)
7261 Rados namespace name in the Ceph pool. (Since 5.0)
7262
7263 image: string
7264 Image name in the Ceph pool.
7265
7266 conf: string (optional)
7267 path to Ceph configuration file. Values in the configuration
7268 file will be overridden by options specified via QAPI.
7269
7270 snapshot: string (optional)
7271 Ceph snapshot name.
7272
7273 encrypt: RbdEncryptionOptions (optional)
7274 Image encryption options. (Since 6.1)
7275
7276 user: string (optional)
7277 Ceph id name.
7278
7279 auth-client-required: array of RbdAuthMode (optional)
7280 Acceptable authentication modes. This maps to Ceph configura‐
7281 tion option "auth_client_required". (Since 3.0)
7282
7283 key-secret: string (optional)
7284 ID of a QCryptoSecret object providing a key for cephx authenti‐
7285 cation. This maps to Ceph configuration option "key". (Since
7286 3.0)
7287
7288 server: array of InetSocketAddressBase (optional)
7289 Monitor host address and port. This maps to the "mon_host" Ceph
7290 option.
7291
7292 Since
7293 2.9
7294
7295 ReplicationMode (Enum)
7296 An enumeration of replication modes.
7297
7298 Values
7299 primary
7300 Primary mode, the vm's state will be sent to secondary QEMU.
7301
7302 secondary
7303 Secondary mode, receive the vm's state from primary QEMU.
7304
7305 Since
7306 2.9
7307
7308 If
7309 CONFIG_REPLICATION
7310
7311 BlockdevOptionsReplication (Object)
7312 Driver specific block device options for replication
7313
7314 Members
7315 mode: ReplicationMode
7316 the replication mode
7317
7318 top-id: string (optional)
7319 In secondary mode, node name or device ID of the root node who
7320 owns the replication node chain. Must not be given in primary
7321 mode.
7322
7323 The members of BlockdevOptionsGenericFormat
7324
7325 Since
7326 2.9
7327
7328 If
7329 CONFIG_REPLICATION
7330
7331 NFSTransport (Enum)
7332 An enumeration of NFS transport types
7333
7334 Values
7335 inet TCP transport
7336
7337 Since
7338 2.9
7339
7340 NFSServer (Object)
7341 Captures the address of the socket
7342
7343 Members
7344 type: NFSTransport
7345 transport type used for NFS (only TCP supported)
7346
7347 host: string
7348 host address for NFS server
7349
7350 Since
7351 2.9
7352
7353 BlockdevOptionsNfs (Object)
7354 Driver specific block device option for NFS
7355
7356 Members
7357 server: NFSServer
7358 host address
7359
7360 path: string
7361 path of the image on the host
7362
7363 user: int (optional)
7364 UID value to use when talking to the server (defaults to 65534
7365 on Windows and getuid() on unix)
7366
7367 group: int (optional)
7368 GID value to use when talking to the server (defaults to 65534
7369 on Windows and getgid() in unix)
7370
7371 tcp-syn-count: int (optional)
7372 number of SYNs during the session establishment (defaults to
7373 libnfs default)
7374
7375 readahead-size: int (optional)
7376 set the readahead size in bytes (defaults to libnfs default)
7377
7378 page-cache-size: int (optional)
7379 set the pagecache size in bytes (defaults to libnfs default)
7380
7381 debug: int (optional)
7382 set the NFS debug level (max 2) (defaults to libnfs default)
7383
7384 Since
7385 2.9
7386
7387 BlockdevOptionsCurlBase (Object)
7388 Driver specific block device options shared by all protocols supported
7389 by the curl backend.
7390
7391 Members
7392 url: string
7393 URL of the image file
7394
7395 readahead: int (optional)
7396 Size of the read-ahead cache; must be a multiple of 512 (de‐
7397 faults to 256 kB)
7398
7399 timeout: int (optional)
7400 Timeout for connections, in seconds (defaults to 5)
7401
7402 username: string (optional)
7403 Username for authentication (defaults to none)
7404
7405 password-secret: string (optional)
7406 ID of a QCryptoSecret object providing a password for authenti‐
7407 cation (defaults to no password)
7408
7409 proxy-username: string (optional)
7410 Username for proxy authentication (defaults to none)
7411
7412 proxy-password-secret: string (optional)
7413 ID of a QCryptoSecret object providing a password for proxy au‐
7414 thentication (defaults to no password)
7415
7416 Since
7417 2.9
7418
7419 BlockdevOptionsCurlHttp (Object)
7420 Driver specific block device options for HTTP connections over the curl
7421 backend. URLs must start with "http://".
7422
7423 Members
7424 cookie: string (optional)
7425 List of cookies to set; format is "name1=content1; name2=con‐
7426 tent2;" as explained by CURLOPT_COOKIE(3). Defaults to no cook‐
7427 ies.
7428
7429 cookie-secret: string (optional)
7430 ID of a QCryptoSecret object providing the cookie data in a se‐
7431 cure way. See cookie for the format. (since 2.10)
7432
7433 The members of BlockdevOptionsCurlBase
7434
7435 Since
7436 2.9
7437
7438 BlockdevOptionsCurlHttps (Object)
7439 Driver specific block device options for HTTPS connections over the
7440 curl backend. URLs must start with "https://".
7441
7442 Members
7443 cookie: string (optional)
7444 List of cookies to set; format is "name1=content1; name2=con‐
7445 tent2;" as explained by CURLOPT_COOKIE(3). Defaults to no cook‐
7446 ies.
7447
7448 sslverify: boolean (optional)
7449 Whether to verify the SSL certificate's validity (defaults to
7450 true)
7451
7452 cookie-secret: string (optional)
7453 ID of a QCryptoSecret object providing the cookie data in a se‐
7454 cure way. See cookie for the format. (since 2.10)
7455
7456 The members of BlockdevOptionsCurlBase
7457
7458 Since
7459 2.9
7460
7461 BlockdevOptionsCurlFtp (Object)
7462 Driver specific block device options for FTP connections over the curl
7463 backend. URLs must start with "ftp://".
7464
7465 Members
7466 The members of BlockdevOptionsCurlBase
7467
7468 Since
7469 2.9
7470
7471 BlockdevOptionsCurlFtps (Object)
7472 Driver specific block device options for FTPS connections over the curl
7473 backend. URLs must start with "ftps://".
7474
7475 Members
7476 sslverify: boolean (optional)
7477 Whether to verify the SSL certificate's validity (defaults to
7478 true)
7479
7480 The members of BlockdevOptionsCurlBase
7481
7482 Since
7483 2.9
7484
7485 BlockdevOptionsNbd (Object)
7486 Driver specific block device options for NBD.
7487
7488 Members
7489 server: SocketAddress
7490 NBD server address
7491
7492 export: string (optional)
7493 export name
7494
7495 tls-creds: string (optional)
7496 TLS credentials ID
7497
7498 tls-hostname: string (optional)
7499 TLS hostname override for certificate validation (Since 7.0)
7500
7501 x-dirty-bitmap: string (optional)
7502 A metadata context name such as "qemu:dirty-bitmap:NAME" or
7503 "qemu:allocation-depth" to query in place of the traditional
7504 "base:allocation" block status (see NBD_OPT_LIST_META_CONTEXT in
7505 the NBD protocol; and yes, naming this option x-context would
7506 have made more sense) (since 3.0)
7507
7508 reconnect-delay: int (optional)
7509 On an unexpected disconnect, the nbd client tries to connect
7510 again until succeeding or encountering a serious error. During
7511 the first reconnect-delay seconds, all requests are paused and
7512 will be rerun on a successful reconnect. After that time, any
7513 delayed requests and all future requests before a successful re‐
7514 connect will immediately fail. Default 0 (Since 4.2)
7515
7516 open-timeout: int (optional)
7517 In seconds. If zero, the nbd driver tries the connection only
7518 once, and fails to open if the connection fails. If non-zero,
7519 the nbd driver will repeat connection attempts until successful
7520 or until open-timeout seconds have elapsed. Default 0 (Since
7521 7.0)
7522
7523 Features
7524 unstable
7525 Member x-dirty-bitmap is experimental.
7526
7527 Since
7528 2.9
7529
7530 BlockdevOptionsRaw (Object)
7531 Driver specific block device options for the raw driver.
7532
7533 Members
7534 offset: int (optional)
7535 position where the block device starts
7536
7537 size: int (optional)
7538 the assumed size of the device
7539
7540 The members of BlockdevOptionsGenericFormat
7541
7542 Since
7543 2.9
7544
7545 BlockdevOptionsThrottle (Object)
7546 Driver specific block device options for the throttle driver
7547
7548 Members
7549 throttle-group: string
7550 the name of the throttle-group object to use. It must already
7551 exist.
7552
7553 file: BlockdevRef
7554 reference to or definition of the data source block device
7555
7556 Since
7557 2.11
7558
7559 BlockdevOptionsCor (Object)
7560 Driver specific block device options for the copy-on-read driver.
7561
7562 Members
7563 bottom: string (optional)
7564 The name of a non-filter node (allocation-bearing layer) that
7565 limits the COR operations in the backing chain (inclusive), so
7566 that no data below this node will be copied by this filter. If
7567 option is absent, the limit is not applied, so that data from
7568 all backing layers may be copied.
7569
7570 The members of BlockdevOptionsGenericFormat
7571
7572 Since
7573 6.0
7574
7575 OnCbwError (Enum)
7576 An enumeration of possible behaviors for copy-before-write operation
7577 failures.
7578
7579 Values
7580 break-guest-write
7581 report the error to the guest. This way, the guest will not be
7582 able to overwrite areas that cannot be backed up, so the backup
7583 process remains valid.
7584
7585 break-snapshot
7586 continue guest write. Doing so will make the provided snapshot
7587 state invalid and any backup or export process based on it will
7588 finally fail.
7589
7590 Since
7591 7.1
7592
7593 BlockdevOptionsCbw (Object)
7594 Driver specific block device options for the copy-before-write driver,
7595 which does so called copy-before-write operations: when data is written
7596 to the filter, the filter first reads corresponding blocks from its
7597 file child and copies them to target child. After successfully copying,
7598 the write request is propagated to file child. If copying fails, the
7599 original write request is failed too and no data is written to file
7600 child.
7601
7602 Members
7603 target: BlockdevRef
7604 The target for copy-before-write operations.
7605
7606 bitmap: BlockDirtyBitmap (optional)
7607 If specified, copy-before-write filter will do copy-before-write
7608 operations only for dirty regions of the bitmap. Bitmap size
7609 must be equal to length of file and target child of the filter.
7610 Note also, that bitmap is used only to initialize internal bit‐
7611 map of the process, so further modifications (or removing) of
7612 specified bitmap doesn't influence the filter. (Since 7.0)
7613
7614 on-cbw-error: OnCbwError (optional)
7615 Behavior on failure of copy-before-write operation. Default is
7616 break-guest-write. (Since 7.1)
7617
7618 cbw-timeout: int (optional)
7619 Zero means no limit. Non-zero sets the timeout in seconds for
7620 copy-before-write operation. When a timeout occurs, the respec‐
7621 tive copy-before-write operation will fail, and the on-cbw-error
7622 parameter will decide how this failure is handled. Default 0.
7623 (Since 7.1)
7624
7625 The members of BlockdevOptionsGenericFormat
7626
7627 Since
7628 6.2
7629
7630 BlockdevOptions (Object)
7631 Options for creating a block device. Many options are available for
7632 all block devices, independent of the block driver:
7633
7634 Members
7635 driver: BlockdevDriver
7636 block driver name
7637
7638 node-name: string (optional)
7639 the node name of the new node (Since 2.0). This option is re‐
7640 quired on the top level of blockdev-add. Valid node names start
7641 with an alphabetic character and may contain only alphanumeric
7642 characters, '-', '.' and '_'. Their maximum length is 31 charac‐
7643 ters.
7644
7645 discard: BlockdevDiscardOptions (optional)
7646 discard-related options (default: ignore)
7647
7648 cache: BlockdevCacheOptions (optional)
7649 cache-related options
7650
7651 read-only: boolean (optional)
7652 whether the block device should be read-only (default: false).
7653 Note that some block drivers support only read-only access, ei‐
7654 ther generally or in certain configurations. In this case, the
7655 default value does not work and the option must be specified ex‐
7656 plicitly.
7657
7658 auto-read-only: boolean (optional)
7659 if true and read-only is false, QEMU may automatically decide
7660 not to open the image read-write as requested, but fall back to
7661 read-only instead (and switch between the modes later), e.g. de‐
7662 pending on whether the image file is writable or whether a writ‐
7663 ing user is attached to the node (default: false, since 3.1)
7664
7665 detect-zeroes: BlockdevDetectZeroesOptions (optional)
7666 detect and optimize zero writes (Since 2.1) (default: off)
7667
7668 force-share: boolean (optional)
7669 force share all permission on added nodes. Requires
7670 read-only=true. (Since 2.10)
7671
7672 The members of BlockdevOptionsBlkdebug when driver is "blkdebug"
7673
7674 The members of BlockdevOptionsBlklogwrites when driver is "blklog‐
7675 writes"
7676
7677 The members of BlockdevOptionsBlkverify when driver is "blkverify"
7678
7679 The members of BlockdevOptionsBlkreplay when driver is "blkreplay"
7680
7681 The members of BlockdevOptionsGenericFormat when driver is "bochs"
7682
7683 The members of BlockdevOptionsGenericFormat when driver is "cloop"
7684
7685 The members of BlockdevOptionsGenericFormat when driver is "compress"
7686
7687 The members of BlockdevOptionsCbw when driver is "copy-before-write"
7688
7689 The members of BlockdevOptionsCor when driver is "copy-on-read"
7690
7691 The members of BlockdevOptionsGenericFormat when driver is "dmg"
7692
7693 The members of BlockdevOptionsFile when driver is "file"
7694
7695 The members of BlockdevOptionsCurlFtp when driver is "ftp"
7696
7697 The members of BlockdevOptionsCurlFtps when driver is "ftps"
7698
7699 The members of BlockdevOptionsGluster when driver is "gluster"
7700
7701 The members of BlockdevOptionsFile when driver is "host_cdrom" (If:
7702 HAVE_HOST_BLOCK_DEVICE)
7703
7704 The members of BlockdevOptionsFile when driver is "host_device" (If:
7705 HAVE_HOST_BLOCK_DEVICE)
7706
7707 The members of BlockdevOptionsCurlHttp when driver is "http"
7708
7709 The members of BlockdevOptionsCurlHttps when driver is "https"
7710
7711 The members of BlockdevOptionsIoUring when driver is "io_uring" (If:
7712 CONFIG_BLKIO)
7713
7714 The members of BlockdevOptionsIscsi when driver is "iscsi"
7715
7716 The members of BlockdevOptionsLUKS when driver is "luks"
7717
7718 The members of BlockdevOptionsNbd when driver is "nbd"
7719
7720 The members of BlockdevOptionsNfs when driver is "nfs"
7721
7722 The members of BlockdevOptionsNull when driver is "null-aio"
7723
7724 The members of BlockdevOptionsNull when driver is "null-co"
7725
7726 The members of BlockdevOptionsNVMe when driver is "nvme"
7727
7728 The members of BlockdevOptionsNvmeIoUring when driver is "nvme-io_ur‐
7729 ing" (If: CONFIG_BLKIO)
7730
7731 The members of BlockdevOptionsGenericFormat when driver is "parallels"
7732
7733 The members of BlockdevOptionsPreallocate when driver is "preallocate"
7734
7735 The members of BlockdevOptionsQcow2 when driver is "qcow2"
7736
7737 The members of BlockdevOptionsQcow when driver is "qcow"
7738
7739 The members of BlockdevOptionsGenericCOWFormat when driver is "qed"
7740
7741 The members of BlockdevOptionsQuorum when driver is "quorum"
7742
7743 The members of BlockdevOptionsRaw when driver is "raw"
7744
7745 The members of BlockdevOptionsRbd when driver is "rbd"
7746
7747 The members of BlockdevOptionsReplication when driver is "replication"
7748 (If: CONFIG_REPLICATION)
7749
7750 The members of BlockdevOptionsGenericFormat when driver is "snap‐
7751 shot-access"
7752
7753 The members of BlockdevOptionsSsh when driver is "ssh"
7754
7755 The members of BlockdevOptionsThrottle when driver is "throttle"
7756
7757 The members of BlockdevOptionsGenericFormat when driver is "vdi"
7758
7759 The members of BlockdevOptionsGenericFormat when driver is "vhdx"
7760
7761 The members of BlockdevOptionsVirtioBlkVfioPci when driver is "vir‐
7762 tio-blk-vfio-pci" (If: CONFIG_BLKIO)
7763
7764 The members of BlockdevOptionsVirtioBlkVhostUser when driver is "vir‐
7765 tio-blk-vhost-user" (If: CONFIG_BLKIO)
7766
7767 The members of BlockdevOptionsVirtioBlkVhostVdpa when driver is "vir‐
7768 tio-blk-vhost-vdpa" (If: CONFIG_BLKIO)
7769
7770 The members of BlockdevOptionsGenericCOWFormat when driver is "vmdk"
7771
7772 The members of BlockdevOptionsGenericFormat when driver is "vpc"
7773
7774 The members of BlockdevOptionsVVFAT when driver is "vvfat"
7775 Remaining options are determined by the block driver.
7776
7777 Since
7778 2.9
7779
7780 BlockdevRef (Alternate)
7781 Reference to a block device.
7782
7783 Members
7784 definition: BlockdevOptions
7785 defines a new block device inline
7786
7787 reference: string
7788 references the ID of an existing block device
7789
7790 Since
7791 2.9
7792
7793 BlockdevRefOrNull (Alternate)
7794 Reference to a block device.
7795
7796 Members
7797 definition: BlockdevOptions
7798 defines a new block device inline
7799
7800 reference: string
7801 references the ID of an existing block device. An empty string
7802 means that no block device should be referenced. Deprecated;
7803 use null instead.
7804
7805 null: null
7806 No block device should be referenced (since 2.10)
7807
7808 Since
7809 2.9
7810
7811 blockdev-add (Command)
7812 Creates a new block device.
7813
7814 Arguments
7815 The members of BlockdevOptions
7816
7817 Since
7818 2.9
7819
7820 Example
7821 1.
7822 -> { "execute": "blockdev-add",
7823 "arguments": {
7824 "driver": "qcow2",
7825 "node-name": "test1",
7826 "file": {
7827 "driver": "file",
7828 "filename": "test.qcow2"
7829 }
7830 }
7831 }
7832 <- { "return": {} }
7833
7834 2.
7835 -> { "execute": "blockdev-add",
7836 "arguments": {
7837 "driver": "qcow2",
7838 "node-name": "node0",
7839 "discard": "unmap",
7840 "cache": {
7841 "direct": true
7842 },
7843 "file": {
7844 "driver": "file",
7845 "filename": "/tmp/test.qcow2"
7846 },
7847 "backing": {
7848 "driver": "raw",
7849 "file": {
7850 "driver": "file",
7851 "filename": "/dev/fdset/4"
7852 }
7853 }
7854 }
7855 }
7856
7857 <- { "return": {} }
7858
7859 blockdev-reopen (Command)
7860 Reopens one or more block devices using the given set of options. Any
7861 option not specified will be reset to its default value regardless of
7862 its previous status. If an option cannot be changed or a particular
7863 driver does not support reopening then the command will return an er‐
7864 ror. All devices in the list are reopened in one transaction, so if one
7865 of them fails then the whole transaction is cancelled.
7866
7867 The command receives a list of block devices to reopen. For each one of
7868 them, the top-level node-name option (from BlockdevOptions) must be
7869 specified and is used to select the block device to be reopened. Other
7870 node-name options must be either omitted or set to the current name of
7871 the appropriate node. This command won't change any node name and any
7872 attempt to do it will result in an error.
7873
7874 In the case of options that refer to child nodes, the behavior of this
7875 command depends on the value:
7876
7877 1. A set of options (BlockdevOptions): the child is reopened with
7878 the specified set of options.
7879
7880 2. A reference to the current child: the child is reopened using its
7881 existing set of options.
7882
7883 3. A reference to a different node: the current child is replaced
7884 with the specified one.
7885
7886 4. NULL: the current child (if any) is detached.
7887
7888 Options (1) and (2) are supported in all cases. Option (3) is supported
7889 for file and backing, and option (4) for backing only.
7890
7891 Unlike with blockdev-add, the backing option must always be present un‐
7892 less the node being reopened does not have a backing file and its image
7893 does not have a default backing file name as part of its metadata.
7894
7895 Arguments
7896 options: array of BlockdevOptions
7897 Not documented
7898
7899 Since
7900 6.1
7901
7902 blockdev-del (Command)
7903 Deletes a block device that has been added using blockdev-add. The
7904 command will fail if the node is attached to a device or is otherwise
7905 being used.
7906
7907 Arguments
7908 node-name: string
7909 Name of the graph node to delete.
7910
7911 Since
7912 2.9
7913
7914 Example
7915 -> { "execute": "blockdev-add",
7916 "arguments": {
7917 "driver": "qcow2",
7918 "node-name": "node0",
7919 "file": {
7920 "driver": "file",
7921 "filename": "test.qcow2"
7922 }
7923 }
7924 }
7925 <- { "return": {} }
7926
7927 -> { "execute": "blockdev-del",
7928 "arguments": { "node-name": "node0" }
7929 }
7930 <- { "return": {} }
7931
7932 BlockdevCreateOptionsFile (Object)
7933 Driver specific image creation options for file.
7934
7935 Members
7936 filename: string
7937 Filename for the new image file
7938
7939 size: int
7940 Size of the virtual disk in bytes
7941
7942 preallocation: PreallocMode (optional)
7943 Preallocation mode for the new image (default: off; allowed val‐
7944 ues: off, falloc (if CONFIG_POSIX_FALLOCATE), full (if CON‐
7945 FIG_POSIX))
7946
7947 nocow: boolean (optional)
7948 Turn off copy-on-write (valid only on btrfs; default: off)
7949
7950 extent-size-hint: int (optional)
7951 Extent size hint to add to the image file; 0 for not adding an
7952 extent size hint (default: 1 MB, since 5.1)
7953
7954 Since
7955 2.12
7956
7957 BlockdevCreateOptionsGluster (Object)
7958 Driver specific image creation options for gluster.
7959
7960 Members
7961 location: BlockdevOptionsGluster
7962 Where to store the new image file
7963
7964 size: int
7965 Size of the virtual disk in bytes
7966
7967 preallocation: PreallocMode (optional)
7968 Preallocation mode for the new image (default: off; allowed val‐
7969 ues: off, falloc (if CONFIG_GLUSTERFS_FALLOCATE), full (if CON‐
7970 FIG_GLUSTERFS_ZEROFILL))
7971
7972 Since
7973 2.12
7974
7975 BlockdevCreateOptionsLUKS (Object)
7976 Driver specific image creation options for LUKS.
7977
7978 Members
7979 file: BlockdevRef
7980 Node to create the image format on
7981
7982 size: int
7983 Size of the virtual disk in bytes
7984
7985 preallocation: PreallocMode (optional)
7986 Preallocation mode for the new image (since: 4.2) (default: off;
7987 allowed values: off, metadata, falloc, full)
7988
7989 The members of QCryptoBlockCreateOptionsLUKS
7990
7991 Since
7992 2.12
7993
7994 BlockdevCreateOptionsNfs (Object)
7995 Driver specific image creation options for NFS.
7996
7997 Members
7998 location: BlockdevOptionsNfs
7999 Where to store the new image file
8000
8001 size: int
8002 Size of the virtual disk in bytes
8003
8004 Since
8005 2.12
8006
8007 BlockdevCreateOptionsParallels (Object)
8008 Driver specific image creation options for parallels.
8009
8010 Members
8011 file: BlockdevRef
8012 Node to create the image format on
8013
8014 size: int
8015 Size of the virtual disk in bytes
8016
8017 cluster-size: int (optional)
8018 Cluster size in bytes (default: 1 MB)
8019
8020 Since
8021 2.12
8022
8023 BlockdevCreateOptionsQcow (Object)
8024 Driver specific image creation options for qcow.
8025
8026 Members
8027 file: BlockdevRef
8028 Node to create the image format on
8029
8030 size: int
8031 Size of the virtual disk in bytes
8032
8033 backing-file: string (optional)
8034 File name of the backing file if a backing file should be used
8035
8036 encrypt: QCryptoBlockCreateOptions (optional)
8037 Encryption options if the image should be encrypted
8038
8039 Since
8040 2.12
8041
8042 BlockdevQcow2Version (Enum)
8043 Values
8044 v2 The original QCOW2 format as introduced in qemu 0.10 (version 2)
8045
8046 v3 The extended QCOW2 format as introduced in qemu 1.1 (version 3)
8047
8048 Since
8049 2.12
8050
8051 Qcow2CompressionType (Enum)
8052 Compression type used in qcow2 image file
8053
8054 Values
8055 zlib zlib compression, see <http://zlib.net/>
8056
8057 zstd (If: CONFIG_ZSTD)
8058 zstd compression, see <http://github.com/facebook/zstd>
8059
8060 Since
8061 5.1
8062
8063 BlockdevCreateOptionsQcow2 (Object)
8064 Driver specific image creation options for qcow2.
8065
8066 Members
8067 file: BlockdevRef
8068 Node to create the image format on
8069
8070 data-file: BlockdevRef (optional)
8071 Node to use as an external data file in which all guest data is
8072 stored so that only metadata remains in the qcow2 file (since:
8073 4.0)
8074
8075 data-file-raw: boolean (optional)
8076 True if the external data file must stay valid as a standalone
8077 (read-only) raw image without looking at qcow2 metadata (de‐
8078 fault: false; since: 4.0)
8079
8080 extended-l2: boolean (optional)
8081 True to make the image have extended L2 entries (default: false;
8082 since 5.2)
8083
8084 size: int
8085 Size of the virtual disk in bytes
8086
8087 version: BlockdevQcow2Version (optional)
8088 Compatibility level (default: v3)
8089
8090 backing-file: string (optional)
8091 File name of the backing file if a backing file should be used
8092
8093 backing-fmt: BlockdevDriver (optional)
8094 Name of the block driver to use for the backing file
8095
8096 encrypt: QCryptoBlockCreateOptions (optional)
8097 Encryption options if the image should be encrypted
8098
8099 cluster-size: int (optional)
8100 qcow2 cluster size in bytes (default: 65536)
8101
8102 preallocation: PreallocMode (optional)
8103 Preallocation mode for the new image (default: off; allowed val‐
8104 ues: off, falloc, full, metadata)
8105
8106 lazy-refcounts: boolean (optional)
8107 True if refcounts may be updated lazily (default: off)
8108
8109 refcount-bits: int (optional)
8110 Width of reference counts in bits (default: 16)
8111
8112 compression-type: Qcow2CompressionType (optional)
8113 The image cluster compression method (default: zlib, since 5.1)
8114
8115 Since
8116 2.12
8117
8118 BlockdevCreateOptionsQed (Object)
8119 Driver specific image creation options for qed.
8120
8121 Members
8122 file: BlockdevRef
8123 Node to create the image format on
8124
8125 size: int
8126 Size of the virtual disk in bytes
8127
8128 backing-file: string (optional)
8129 File name of the backing file if a backing file should be used
8130
8131 backing-fmt: BlockdevDriver (optional)
8132 Name of the block driver to use for the backing file
8133
8134 cluster-size: int (optional)
8135 Cluster size in bytes (default: 65536)
8136
8137 table-size: int (optional)
8138 L1/L2 table size (in clusters)
8139
8140 Since
8141 2.12
8142
8143 BlockdevCreateOptionsRbd (Object)
8144 Driver specific image creation options for rbd/Ceph.
8145
8146 Members
8147 location: BlockdevOptionsRbd
8148 Where to store the new image file. This location cannot point to
8149 a snapshot.
8150
8151 size: int
8152 Size of the virtual disk in bytes
8153
8154 cluster-size: int (optional)
8155 RBD object size
8156
8157 encrypt: RbdEncryptionCreateOptions (optional)
8158 Image encryption options. (Since 6.1)
8159
8160 Since
8161 2.12
8162
8163 BlockdevVmdkSubformat (Enum)
8164 Subformat options for VMDK images
8165
8166 Values
8167 monolithicSparse
8168 Single file image with sparse cluster allocation
8169
8170 monolithicFlat
8171 Single flat data image and a descriptor file
8172
8173 twoGbMaxExtentSparse
8174 Data is split into 2GB (per virtual LBA) sparse extent files, in
8175 addition to a descriptor file
8176
8177 twoGbMaxExtentFlat
8178 Data is split into 2GB (per virtual LBA) flat extent files, in
8179 addition to a descriptor file
8180
8181 streamOptimized
8182 Single file image sparse cluster allocation, optimized for
8183 streaming over network.
8184
8185 Since
8186 4.0
8187
8188 BlockdevVmdkAdapterType (Enum)
8189 Adapter type info for VMDK images
8190
8191 Values
8192 ide Not documented
8193
8194 buslogic
8195 Not documented
8196
8197 lsilogic
8198 Not documented
8199
8200 legacyESX
8201 Not documented
8202
8203 Since
8204 4.0
8205
8206 BlockdevCreateOptionsVmdk (Object)
8207 Driver specific image creation options for VMDK.
8208
8209 Members
8210 file: BlockdevRef
8211 Where to store the new image file. This refers to the image file
8212 for monolithcSparse and streamOptimized format, or the descrip‐
8213 tor file for other formats.
8214
8215 size: int
8216 Size of the virtual disk in bytes
8217
8218 extents: array of BlockdevRef (optional)
8219 Where to store the data extents. Required for monolithcFlat,
8220 twoGbMaxExtentSparse and twoGbMaxExtentFlat formats. For mono‐
8221 lithicFlat, only one entry is required; for twoGbMaxExtent* for‐
8222 mats, the number of entries required is calculated as ex‐
8223 tent_number = virtual_size / 2GB. Providing more extents than
8224 will be used is an error.
8225
8226 subformat: BlockdevVmdkSubformat (optional)
8227 The subformat of the VMDK image. Default: "monolithicSparse".
8228
8229 backing-file: string (optional)
8230 The path of backing file. Default: no backing file is used.
8231
8232 adapter-type: BlockdevVmdkAdapterType (optional)
8233 The adapter type used to fill in the descriptor. Default: ide.
8234
8235 hwversion: string (optional)
8236 Hardware version. The meaningful options are "4" or "6". De‐
8237 fault: "4".
8238
8239 toolsversion: string (optional)
8240 VMware guest tools version. Default: "2147483647" (Since 6.2)
8241
8242 zeroed-grain: boolean (optional)
8243 Whether to enable zeroed-grain feature for sparse subformats.
8244 Default: false.
8245
8246 Since
8247 4.0
8248
8249 BlockdevCreateOptionsSsh (Object)
8250 Driver specific image creation options for SSH.
8251
8252 Members
8253 location: BlockdevOptionsSsh
8254 Where to store the new image file
8255
8256 size: int
8257 Size of the virtual disk in bytes
8258
8259 Since
8260 2.12
8261
8262 BlockdevCreateOptionsVdi (Object)
8263 Driver specific image creation options for VDI.
8264
8265 Members
8266 file: BlockdevRef
8267 Node to create the image format on
8268
8269 size: int
8270 Size of the virtual disk in bytes
8271
8272 preallocation: PreallocMode (optional)
8273 Preallocation mode for the new image (default: off; allowed val‐
8274 ues: off, metadata)
8275
8276 Since
8277 2.12
8278
8279 BlockdevVhdxSubformat (Enum)
8280 Values
8281 dynamic
8282 Growing image file
8283
8284 fixed Preallocated fixed-size image file
8285
8286 Since
8287 2.12
8288
8289 BlockdevCreateOptionsVhdx (Object)
8290 Driver specific image creation options for vhdx.
8291
8292 Members
8293 file: BlockdevRef
8294 Node to create the image format on
8295
8296 size: int
8297 Size of the virtual disk in bytes
8298
8299 log-size: int (optional)
8300 Log size in bytes, must be a multiple of 1 MB (default: 1 MB)
8301
8302 block-size: int (optional)
8303 Block size in bytes, must be a multiple of 1 MB and not larger
8304 than 256 MB (default: automatically choose a block size depend‐
8305 ing on the image size)
8306
8307 subformat: BlockdevVhdxSubformat (optional)
8308 vhdx subformat (default: dynamic)
8309
8310 block-state-zero: boolean (optional)
8311 Force use of payload blocks of type 'ZERO'. Non-standard, but
8312 default. Do not set to 'off' when using 'qemu-img convert' with
8313 subformat=dynamic.
8314
8315 Since
8316 2.12
8317
8318 BlockdevVpcSubformat (Enum)
8319 Values
8320 dynamic
8321 Growing image file
8322
8323 fixed Preallocated fixed-size image file
8324
8325 Since
8326 2.12
8327
8328 BlockdevCreateOptionsVpc (Object)
8329 Driver specific image creation options for vpc (VHD).
8330
8331 Members
8332 file: BlockdevRef
8333 Node to create the image format on
8334
8335 size: int
8336 Size of the virtual disk in bytes
8337
8338 subformat: BlockdevVpcSubformat (optional)
8339 vhdx subformat (default: dynamic)
8340
8341 force-size: boolean (optional)
8342 Force use of the exact byte size instead of rounding to the next
8343 size that can be represented in CHS geometry (default: false)
8344
8345 Since
8346 2.12
8347
8348 BlockdevCreateOptions (Object)
8349 Options for creating an image format on a given node.
8350
8351 Members
8352 driver: BlockdevDriver
8353 block driver to create the image format
8354
8355 The members of BlockdevCreateOptionsFile when driver is "file"
8356
8357 The members of BlockdevCreateOptionsGluster when driver is "gluster"
8358
8359 The members of BlockdevCreateOptionsLUKS when driver is "luks"
8360
8361 The members of BlockdevCreateOptionsNfs when driver is "nfs"
8362
8363 The members of BlockdevCreateOptionsParallels when driver is "paral‐
8364 lels"
8365
8366 The members of BlockdevCreateOptionsQcow when driver is "qcow"
8367
8368 The members of BlockdevCreateOptionsQcow2 when driver is "qcow2"
8369
8370 The members of BlockdevCreateOptionsQed when driver is "qed"
8371
8372 The members of BlockdevCreateOptionsRbd when driver is "rbd"
8373
8374 The members of BlockdevCreateOptionsSsh when driver is "ssh"
8375
8376 The members of BlockdevCreateOptionsVdi when driver is "vdi"
8377
8378 The members of BlockdevCreateOptionsVhdx when driver is "vhdx"
8379
8380 The members of BlockdevCreateOptionsVmdk when driver is "vmdk"
8381
8382 The members of BlockdevCreateOptionsVpc when driver is "vpc"
8383
8384 Since
8385 2.12
8386
8387 blockdev-create (Command)
8388 Starts a job to create an image format on a given node. The job is au‐
8389 tomatically finalized, but a manual job-dismiss is required.
8390
8391 Arguments
8392 job-id: string
8393 Identifier for the newly created job.
8394
8395 options: BlockdevCreateOptions
8396 Options for the image creation.
8397
8398 Since
8399 3.0
8400
8401 BlockdevAmendOptionsLUKS (Object)
8402 Driver specific image amend options for LUKS.
8403
8404 Members
8405 The members of QCryptoBlockAmendOptionsLUKS
8406
8407 Since
8408 5.1
8409
8410 BlockdevAmendOptionsQcow2 (Object)
8411 Driver specific image amend options for qcow2. For now, only encryp‐
8412 tion options can be amended
8413
8414 encrypt Encryption options to be amended
8415
8416 Members
8417 encrypt: QCryptoBlockAmendOptions (optional)
8418 Not documented
8419
8420 Since
8421 5.1
8422
8423 BlockdevAmendOptions (Object)
8424 Options for amending an image format
8425
8426 Members
8427 driver: BlockdevDriver
8428 Block driver of the node to amend.
8429
8430 The members of BlockdevAmendOptionsLUKS when driver is "luks"
8431
8432 The members of BlockdevAmendOptionsQcow2 when driver is "qcow2"
8433
8434 Since
8435 5.1
8436
8437 x-blockdev-amend (Command)
8438 Starts a job to amend format specific options of an existing open block
8439 device The job is automatically finalized, but a manual job-dismiss is
8440 required.
8441
8442 Arguments
8443 job-id: string
8444 Identifier for the newly created job.
8445
8446 node-name: string
8447 Name of the block node to work on
8448
8449 options: BlockdevAmendOptions
8450 Options (driver specific)
8451
8452 force: boolean (optional)
8453 Allow unsafe operations, format specific For luks that allows
8454 erase of the last active keyslot (permanent loss of data), and
8455 replacement of an active keyslot (possible loss of data if IO
8456 error happens)
8457
8458 Features
8459 unstable
8460 This command is experimental.
8461
8462 Since
8463 5.1
8464
8465 BlockErrorAction (Enum)
8466 An enumeration of action that has been taken when a DISK I/O occurs
8467
8468 Values
8469 ignore error has been ignored
8470
8471 report error has been reported to the device
8472
8473 stop error caused VM to be stopped
8474
8475 Since
8476 2.1
8477
8478 BLOCK_IMAGE_CORRUPTED (Event)
8479 Emitted when a disk image is being marked corrupt. The image can be
8480 identified by its device or node name. The 'device' field is always
8481 present for compatibility reasons, but it can be empty ("") if the im‐
8482 age does not have a device name associated.
8483
8484 Arguments
8485 device: string
8486 device name. This is always present for compatibility reasons,
8487 but it can be empty ("") if the image does not have a device
8488 name associated.
8489
8490 node-name: string (optional)
8491 node name (Since: 2.4)
8492
8493 msg: string
8494 informative message for human consumption, such as the kind of
8495 corruption being detected. It should not be parsed by machine as
8496 it is not guaranteed to be stable
8497
8498 offset: int (optional)
8499 if the corruption resulted from an image access, this is the
8500 host's access offset into the image
8501
8502 size: int (optional)
8503 if the corruption resulted from an image access, this is the ac‐
8504 cess size
8505
8506 fatal: boolean
8507 if set, the image is marked corrupt and therefore unusable after
8508 this event and must be repaired (Since 2.2; before, every
8509 BLOCK_IMAGE_CORRUPTED event was fatal)
8510
8511 Note
8512 If action is "stop", a STOP event will eventually follow the
8513 BLOCK_IO_ERROR event.
8514
8515 Example
8516 <- { "event": "BLOCK_IMAGE_CORRUPTED",
8517 "data": { "device": "", "node-name": "drive", "fatal": false,
8518 "msg": "L2 table offset 0x2a2a2a00 unaligned (L1 index: 0)" },
8519 "timestamp": { "seconds": 1648243240, "microseconds": 906060 } }
8520
8521 Since
8522 1.7
8523
8524 BLOCK_IO_ERROR (Event)
8525 Emitted when a disk I/O error occurs
8526
8527 Arguments
8528 device: string
8529 device name. This is always present for compatibility reasons,
8530 but it can be empty ("") if the image does not have a device
8531 name associated.
8532
8533 node-name: string (optional)
8534 node name. Note that errors may be reported for the root node
8535 that is directly attached to a guest device rather than for the
8536 node where the error occurred. The node name is not present if
8537 the drive is empty. (Since: 2.8)
8538
8539 operation: IoOperationType
8540 I/O operation
8541
8542 action: BlockErrorAction
8543 action that has been taken
8544
8545 nospace: boolean (optional)
8546 true if I/O error was caused due to a no-space condition. This
8547 key is only present if query-block's io-status is present,
8548 please see query-block documentation for more information
8549 (since: 2.2)
8550
8551 reason: string
8552 human readable string describing the error cause. (This field
8553 is a debugging aid for humans, it should not be parsed by appli‐
8554 cations) (since: 2.2)
8555
8556 Note
8557 If action is "stop", a STOP event will eventually follow the
8558 BLOCK_IO_ERROR event
8559
8560 Since
8561 0.13
8562
8563 Example
8564 <- { "event": "BLOCK_IO_ERROR",
8565 "data": { "device": "ide0-hd1",
8566 "node-name": "#block212",
8567 "operation": "write",
8568 "action": "stop",
8569 "reason": "No space left on device" },
8570 "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
8571
8572 BLOCK_JOB_COMPLETED (Event)
8573 Emitted when a block job has completed
8574
8575 Arguments
8576 type: JobType
8577 job type
8578
8579 device: string
8580 The job identifier. Originally the device name but other values
8581 are allowed since QEMU 2.7
8582
8583 len: int
8584 maximum progress value
8585
8586 offset: int
8587 current progress value. On success this is equal to len. On
8588 failure this is less than len
8589
8590 speed: int
8591 rate limit, bytes per second
8592
8593 error: string (optional)
8594 error message. Only present on failure. This field contains a
8595 human-readable error message. There are no semantics other than
8596 that streaming has failed and clients should not try to inter‐
8597 pret the error string
8598
8599 Since
8600 1.1
8601
8602 Example
8603 <- { "event": "BLOCK_JOB_COMPLETED",
8604 "data": { "type": "stream", "device": "virtio-disk0",
8605 "len": 10737418240, "offset": 10737418240,
8606 "speed": 0 },
8607 "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
8608
8609 BLOCK_JOB_CANCELLED (Event)
8610 Emitted when a block job has been cancelled
8611
8612 Arguments
8613 type: JobType
8614 job type
8615
8616 device: string
8617 The job identifier. Originally the device name but other values
8618 are allowed since QEMU 2.7
8619
8620 len: int
8621 maximum progress value
8622
8623 offset: int
8624 current progress value. On success this is equal to len. On
8625 failure this is less than len
8626
8627 speed: int
8628 rate limit, bytes per second
8629
8630 Since
8631 1.1
8632
8633 Example
8634 <- { "event": "BLOCK_JOB_CANCELLED",
8635 "data": { "type": "stream", "device": "virtio-disk0",
8636 "len": 10737418240, "offset": 134217728,
8637 "speed": 0 },
8638 "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
8639
8640 BLOCK_JOB_ERROR (Event)
8641 Emitted when a block job encounters an error
8642
8643 Arguments
8644 device: string
8645 The job identifier. Originally the device name but other values
8646 are allowed since QEMU 2.7
8647
8648 operation: IoOperationType
8649 I/O operation
8650
8651 action: BlockErrorAction
8652 action that has been taken
8653
8654 Since
8655 1.3
8656
8657 Example
8658 <- { "event": "BLOCK_JOB_ERROR",
8659 "data": { "device": "ide0-hd1",
8660 "operation": "write",
8661 "action": "stop" },
8662 "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
8663
8664 BLOCK_JOB_READY (Event)
8665 Emitted when a block job is ready to complete
8666
8667 Arguments
8668 type: JobType
8669 job type
8670
8671 device: string
8672 The job identifier. Originally the device name but other values
8673 are allowed since QEMU 2.7
8674
8675 len: int
8676 maximum progress value
8677
8678 offset: int
8679 current progress value. On success this is equal to len. On
8680 failure this is less than len
8681
8682 speed: int
8683 rate limit, bytes per second
8684
8685 Note
8686 The "ready to complete" status is always reset by a BLOCK_JOB_ERROR
8687 event
8688
8689 Since
8690 1.3
8691
8692 Example
8693 <- { "event": "BLOCK_JOB_READY",
8694 "data": { "device": "drive0", "type": "mirror", "speed": 0,
8695 "len": 2097152, "offset": 2097152 },
8696 "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
8697
8698 BLOCK_JOB_PENDING (Event)
8699 Emitted when a block job is awaiting explicit authorization to finalize
8700 graph changes via block-job-finalize. If this job is part of a transac‐
8701 tion, it will not emit this event until the transaction has converged
8702 first.
8703
8704 Arguments
8705 type: JobType
8706 job type
8707
8708 id: string
8709 The job identifier.
8710
8711 Since
8712 2.12
8713
8714 Example
8715 <- { "event": "BLOCK_JOB_PENDING",
8716 "data": { "type": "mirror", "id": "backup_1" },
8717 "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
8718
8719 PreallocMode (Enum)
8720 Preallocation mode of QEMU image file
8721
8722 Values
8723 off no preallocation
8724
8725 metadata
8726 preallocate only for metadata
8727
8728 falloc like full preallocation but allocate disk space by posix_fallo‐
8729 cate() rather than writing data.
8730
8731 full preallocate all data by writing it to the device to ensure disk
8732 space is really available. This data may or may not be zero, de‐
8733 pending on the image format and storage. full preallocation
8734 also sets up metadata correctly.
8735
8736 Since
8737 2.2
8738
8739 BLOCK_WRITE_THRESHOLD (Event)
8740 Emitted when writes on block device reaches or exceeds the configured
8741 write threshold. For thin-provisioned devices, this means the device
8742 should be extended to avoid pausing for disk exhaustion. The event is
8743 one shot. Once triggered, it needs to be re-registered with another
8744 block-set-write-threshold command.
8745
8746 Arguments
8747 node-name: string
8748 graph node name on which the threshold was exceeded.
8749
8750 amount-exceeded: int
8751 amount of data which exceeded the threshold, in bytes.
8752
8753 write-threshold: int
8754 last configured threshold, in bytes.
8755
8756 Since
8757 2.3
8758
8759 block-set-write-threshold (Command)
8760 Change the write threshold for a block drive. An event will be deliv‐
8761 ered if a write to this block drive crosses the configured threshold.
8762 The threshold is an offset, thus must be non-negative. Default is no
8763 write threshold. Setting the threshold to zero disables it.
8764
8765 This is useful to transparently resize thin-provisioned drives without
8766 the guest OS noticing.
8767
8768 Arguments
8769 node-name: string
8770 graph node name on which the threshold must be set.
8771
8772 write-threshold: int
8773 configured threshold for the block device, bytes. Use 0 to dis‐
8774 able the threshold.
8775
8776 Since
8777 2.3
8778
8779 Example
8780 -> { "execute": "block-set-write-threshold",
8781 "arguments": { "node-name": "mydev",
8782 "write-threshold": 17179869184 } }
8783 <- { "return": {} }
8784
8785 x-blockdev-change (Command)
8786 Dynamically reconfigure the block driver state graph. It can be used to
8787 add, remove, insert or replace a graph node. Currently only the Quorum
8788 driver implements this feature to add or remove its child. This is use‐
8789 ful to fix a broken quorum child.
8790
8791 If node is specified, it will be inserted under parent. child may not
8792 be specified in this case. If both parent and child are specified but
8793 node is not, child will be detached from parent.
8794
8795 Arguments
8796 parent: string
8797 the id or name of the parent node.
8798
8799 child: string (optional)
8800 the name of a child under the given parent node.
8801
8802 node: string (optional)
8803 the name of the node that will be added.
8804
8805 Features
8806 unstable
8807 This command is experimental, and its API is not stable. It
8808 does not support all kinds of operations, all kinds of children,
8809 nor all block drivers.
8810
8811 FIXME Removing children from a quorum node means introducing
8812 gaps in the child indices. This cannot be represented in the
8813 'children' list of BlockdevOptionsQuorum, as returned by
8814 .bdrv_refresh_filename().
8815
8816 Warning: The data in a new quorum child MUST be consistent with
8817 that of the rest of the array.
8818
8819 Since
8820 2.7
8821
8822 Example
8823 1. Add a new node to a quorum
8824 -> { "execute": "blockdev-add",
8825 "arguments": {
8826 "driver": "raw",
8827 "node-name": "new_node",
8828 "file": { "driver": "file",
8829 "filename": "test.raw" } } }
8830 <- { "return": {} }
8831 -> { "execute": "x-blockdev-change",
8832 "arguments": { "parent": "disk1",
8833 "node": "new_node" } }
8834 <- { "return": {} }
8835
8836 2. Delete a quorum's node
8837 -> { "execute": "x-blockdev-change",
8838 "arguments": { "parent": "disk1",
8839 "child": "children.1" } }
8840 <- { "return": {} }
8841
8842 x-blockdev-set-iothread (Command)
8843 Move node and its children into the iothread. If iothread is null then
8844 move node and its children into the main loop.
8845
8846 The node must not be attached to a BlockBackend.
8847
8848 Arguments
8849 node-name: string
8850 the name of the block driver node
8851
8852 iothread: StrOrNull
8853 the name of the IOThread object or null for the main loop
8854
8855 force: boolean (optional)
8856 true if the node and its children should be moved when a Block‐
8857 Backend is already attached
8858
8859 Features
8860 unstable
8861 This command is experimental and intended for test cases that
8862 need control over IOThreads only.
8863
8864 Since
8865 2.12
8866
8867 Example
8868 1. Move a node into an IOThread
8869 -> { "execute": "x-blockdev-set-iothread",
8870 "arguments": { "node-name": "disk1",
8871 "iothread": "iothread0" } }
8872 <- { "return": {} }
8873
8874 2. Move a node into the main loop
8875 -> { "execute": "x-blockdev-set-iothread",
8876 "arguments": { "node-name": "disk1",
8877 "iothread": null } }
8878 <- { "return": {} }
8879
8880 QuorumOpType (Enum)
8881 An enumeration of the quorum operation types
8882
8883 Values
8884 read read operation
8885
8886 write write operation
8887
8888 flush flush operation
8889
8890 Since
8891 2.6
8892
8893 QUORUM_FAILURE (Event)
8894 Emitted by the Quorum block driver if it fails to establish a quorum
8895
8896 Arguments
8897 reference: string
8898 device name if defined else node name
8899
8900 sector-num: int
8901 number of the first sector of the failed read operation
8902
8903 sectors-count: int
8904 failed read operation sector count
8905
8906 Note
8907 This event is rate-limited.
8908
8909 Since
8910 2.0
8911
8912 Example
8913 <- { "event": "QUORUM_FAILURE",
8914 "data": { "reference": "usr1", "sector-num": 345435, "sectors-count": 5 },
8915 "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
8916
8917 QUORUM_REPORT_BAD (Event)
8918 Emitted to report a corruption of a Quorum file
8919
8920 Arguments
8921 type: QuorumOpType
8922 quorum operation type (Since 2.6)
8923
8924 error: string (optional)
8925 error message. Only present on failure. This field contains a
8926 human-readable error message. There are no semantics other than
8927 that the block layer reported an error and clients should not
8928 try to interpret the error string.
8929
8930 node-name: string
8931 the graph node name of the block driver state
8932
8933 sector-num: int
8934 number of the first sector of the failed read operation
8935
8936 sectors-count: int
8937 failed read operation sector count
8938
8939 Note
8940 This event is rate-limited.
8941
8942 Since
8943 2.0
8944
8945 Example
8946 1. Read operation
8947
8948 { "event": "QUORUM_REPORT_BAD",
8949 "data": { "node-name": "node0", "sector-num": 345435, "sectors-count": 5,
8950 "type": "read" },
8951 "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
8952
8953 2. Flush operation
8954
8955 { "event": "QUORUM_REPORT_BAD",
8956 "data": { "node-name": "node0", "sector-num": 0, "sectors-count": 2097120,
8957 "type": "flush", "error": "Broken pipe" },
8958 "timestamp": { "seconds": 1456406829, "microseconds": 291763 } }
8959
8960 BlockdevSnapshotInternal (Object)
8961 Members
8962 device: string
8963 the device name or node-name of a root node to generate the
8964 snapshot from
8965
8966 name: string
8967 the name of the internal snapshot to be created
8968
8969 Notes
8970 In transaction, if name is empty, or any snapshot matching name exists,
8971 the operation will fail. Only some image formats support it, for exam‐
8972 ple, qcow2, and rbd.
8973
8974 Since
8975 1.7
8976
8977 blockdev-snapshot-internal-sync (Command)
8978 Synchronously take an internal snapshot of a block device, when the
8979 format of the image used supports it. If the name is an empty string,
8980 or a snapshot with name already exists, the operation will fail.
8981
8982 For the arguments, see the documentation of BlockdevSnapshotInternal.
8983
8984 Returns
8985 • nothing on success
8986
8987 • If device is not a valid block device, GenericError
8988
8989 • If any snapshot matching name exists, or name is empty, GenericError
8990
8991 • If the format of the image used does not support it, BlockFormatFea‐
8992 tureNotSupported
8993
8994 Since
8995 1.7
8996
8997 Example
8998 -> { "execute": "blockdev-snapshot-internal-sync",
8999 "arguments": { "device": "ide-hd0",
9000 "name": "snapshot0" }
9001 }
9002 <- { "return": {} }
9003
9004 blockdev-snapshot-delete-internal-sync (Command)
9005 Synchronously delete an internal snapshot of a block device, when the
9006 format of the image used support it. The snapshot is identified by name
9007 or id or both. One of the name or id is required. Return SnapshotInfo
9008 for the successfully deleted snapshot.
9009
9010 Arguments
9011 device: string
9012 the device name or node-name of a root node to delete the snap‐
9013 shot from
9014
9015 id: string (optional)
9016 optional the snapshot's ID to be deleted
9017
9018 name: string (optional)
9019 optional the snapshot's name to be deleted
9020
9021 Returns
9022 • SnapshotInfo on success
9023
9024 • If device is not a valid block device, GenericError
9025
9026 • If snapshot not found, GenericError
9027
9028 • If the format of the image used does not support it, BlockFormatFea‐
9029 tureNotSupported
9030
9031 • If id and name are both not specified, GenericError
9032
9033 Since
9034 1.7
9035
9036 Example
9037 -> { "execute": "blockdev-snapshot-delete-internal-sync",
9038 "arguments": { "device": "ide-hd0",
9039 "name": "snapshot0" }
9040 }
9041 <- { "return": {
9042 "id": "1",
9043 "name": "snapshot0",
9044 "vm-state-size": 0,
9045 "date-sec": 1000012,
9046 "date-nsec": 10,
9047 "vm-clock-sec": 100,
9048 "vm-clock-nsec": 20,
9049 "icount": 220414
9050 }
9051 }
9052
9053 Additional block stuff (VM related)
9054 BiosAtaTranslation (Enum)
9055 Policy that BIOS should use to interpret cylinder/head/sector ad‐
9056 dresses. Note that Bochs BIOS and SeaBIOS will not actually translate
9057 logical CHS to physical; instead, they will use logical block address‐
9058 ing.
9059
9060 Values
9061 auto If cylinder/heads/sizes are passed, choose between none and LBA
9062 depending on the size of the disk. If they are not passed,
9063 choose none if QEMU can guess that the disk had 16 or fewer
9064 heads, large if QEMU can guess that the disk had 131072 or fewer
9065 tracks across all heads (i.e. cylinders*heads<131072), otherwise
9066 LBA.
9067
9068 none The physical disk geometry is equal to the logical geometry.
9069
9070 lba Assume 63 sectors per track and one of 16, 32, 64, 128 or 255
9071 heads (if fewer than 255 are enough to cover the whole disk with
9072 1024 cylinders/head). The number of cylinders/head is then com‐
9073 puted based on the number of sectors and heads.
9074
9075 large The number of cylinders per head is scaled down to 1024 by cor‐
9076 respondingly scaling up the number of heads.
9077
9078 rechs Same as large, but first convert a 16-head geometry to 15-head,
9079 by proportionally scaling up the number of cylinders/head.
9080
9081 Since
9082 2.0
9083
9084 FloppyDriveType (Enum)
9085 Type of Floppy drive to be emulated by the Floppy Disk Controller.
9086
9087 Values
9088 144 1.44MB 3.5" drive
9089
9090 288 2.88MB 3.5" drive
9091
9092 120 1.2MB 5.25" drive
9093
9094 none No drive connected
9095
9096 auto Automatically determined by inserted media at boot
9097
9098 Since
9099 2.6
9100
9101 PRManagerInfo (Object)
9102 Information about a persistent reservation manager
9103
9104 Members
9105 id: string
9106 the identifier of the persistent reservation manager
9107
9108 connected: boolean
9109 true if the persistent reservation manager is connected to the
9110 underlying storage or helper
9111
9112 Since
9113 3.0
9114
9115 query-pr-managers (Command)
9116 Returns a list of information about each persistent reservation man‐
9117 ager.
9118
9119 Returns
9120 a list of PRManagerInfo for each persistent reservation manager
9121
9122 Since
9123 3.0
9124
9125 eject (Command)
9126 Ejects the medium from a removable drive.
9127
9128 Arguments
9129 device: string (optional)
9130 Block device name
9131
9132 id: string (optional)
9133 The name or QOM path of the guest device (since: 2.8)
9134
9135 force: boolean (optional)
9136 If true, eject regardless of whether the drive is locked. If
9137 not specified, the default value is false.
9138
9139 Features
9140 deprecated
9141 Member device is deprecated. Use id instead.
9142
9143 Returns
9144 • Nothing on success
9145
9146 • If device is not a valid block device, DeviceNotFound
9147
9148 Notes
9149 Ejecting a device with no media results in success
9150
9151 Since
9152 0.14
9153
9154 Example
9155 -> { "execute": "eject", "arguments": { "id": "ide1-0-1" } }
9156 <- { "return": {} }
9157
9158 blockdev-open-tray (Command)
9159 Opens a block device's tray. If there is a block driver state tree in‐
9160 serted as a medium, it will become inaccessible to the guest (but it
9161 will remain associated to the block device, so closing the tray will
9162 make it accessible again).
9163
9164 If the tray was already open before, this will be a no-op.
9165
9166 Once the tray opens, a DEVICE_TRAY_MOVED event is emitted. There are
9167 cases in which no such event will be generated, these include:
9168
9169 • if the guest has locked the tray, force is false and the guest does
9170 not respond to the eject request
9171
9172 • if the BlockBackend denoted by device does not have a guest device
9173 attached to it
9174
9175 • if the guest device does not have an actual tray
9176
9177 Arguments
9178 device: string (optional)
9179 Block device name
9180
9181 id: string (optional)
9182 The name or QOM path of the guest device (since: 2.8)
9183
9184 force: boolean (optional)
9185 if false (the default), an eject request will be sent to the
9186 guest if it has locked the tray (and the tray will not be opened
9187 immediately); if true, the tray will be opened regardless of
9188 whether it is locked
9189
9190 Features
9191 deprecated
9192 Member device is deprecated. Use id instead.
9193
9194 Since
9195 2.5
9196
9197 Example
9198 -> { "execute": "blockdev-open-tray",
9199 "arguments": { "id": "ide0-1-0" } }
9200
9201 <- { "timestamp": { "seconds": 1418751016,
9202 "microseconds": 716996 },
9203 "event": "DEVICE_TRAY_MOVED",
9204 "data": { "device": "ide1-cd0",
9205 "id": "ide0-1-0",
9206 "tray-open": true } }
9207
9208 <- { "return": {} }
9209
9210 blockdev-close-tray (Command)
9211 Closes a block device's tray. If there is a block driver state tree as‐
9212 sociated with the block device (which is currently ejected), that tree
9213 will be loaded as the medium.
9214
9215 If the tray was already closed before, this will be a no-op.
9216
9217 Arguments
9218 device: string (optional)
9219 Block device name
9220
9221 id: string (optional)
9222 The name or QOM path of the guest device (since: 2.8)
9223
9224 Features
9225 deprecated
9226 Member device is deprecated. Use id instead.
9227
9228 Since
9229 2.5
9230
9231 Example
9232 -> { "execute": "blockdev-close-tray",
9233 "arguments": { "id": "ide0-1-0" } }
9234
9235 <- { "timestamp": { "seconds": 1418751345,
9236 "microseconds": 272147 },
9237 "event": "DEVICE_TRAY_MOVED",
9238 "data": { "device": "ide1-cd0",
9239 "id": "ide0-1-0",
9240 "tray-open": false } }
9241
9242 <- { "return": {} }
9243
9244 blockdev-remove-medium (Command)
9245 Removes a medium (a block driver state tree) from a block device. That
9246 block device's tray must currently be open (unless there is no attached
9247 guest device).
9248
9249 If the tray is open and there is no medium inserted, this will be a
9250 no-op.
9251
9252 Arguments
9253 id: string
9254 The name or QOM path of the guest device
9255
9256 Since
9257 2.12
9258
9259 Example
9260 -> { "execute": "blockdev-remove-medium",
9261 "arguments": { "id": "ide0-1-0" } }
9262
9263 <- { "error": { "class": "GenericError",
9264 "desc": "Tray of device 'ide0-1-0' is not open" } }
9265
9266 -> { "execute": "blockdev-open-tray",
9267 "arguments": { "id": "ide0-1-0" } }
9268
9269 <- { "timestamp": { "seconds": 1418751627,
9270 "microseconds": 549958 },
9271 "event": "DEVICE_TRAY_MOVED",
9272 "data": { "device": "ide1-cd0",
9273 "id": "ide0-1-0",
9274 "tray-open": true } }
9275
9276 <- { "return": {} }
9277
9278 -> { "execute": "blockdev-remove-medium",
9279 "arguments": { "id": "ide0-1-0" } }
9280
9281 <- { "return": {} }
9282
9283 blockdev-insert-medium (Command)
9284 Inserts a medium (a block driver state tree) into a block device. That
9285 block device's tray must currently be open (unless there is no attached
9286 guest device) and there must be no medium inserted already.
9287
9288 Arguments
9289 id: string
9290 The name or QOM path of the guest device
9291
9292 node-name: string
9293 name of a node in the block driver state graph
9294
9295 Since
9296 2.12
9297
9298 Example
9299 -> { "execute": "blockdev-add",
9300 "arguments": {
9301 "node-name": "node0",
9302 "driver": "raw",
9303 "file": { "driver": "file",
9304 "filename": "fedora.iso" } } }
9305 <- { "return": {} }
9306
9307 -> { "execute": "blockdev-insert-medium",
9308 "arguments": { "id": "ide0-1-0",
9309 "node-name": "node0" } }
9310
9311 <- { "return": {} }
9312
9313 BlockdevChangeReadOnlyMode (Enum)
9314 Specifies the new read-only mode of a block device subject to the
9315 blockdev-change-medium command.
9316
9317 Values
9318 retain Retains the current read-only mode
9319
9320 read-only
9321 Makes the device read-only
9322
9323 read-write
9324 Makes the device writable
9325
9326 Since
9327 2.3
9328
9329 blockdev-change-medium (Command)
9330 Changes the medium inserted into a block device by ejecting the current
9331 medium and loading a new image file which is inserted as the new medium
9332 (this command combines blockdev-open-tray, blockdev-remove-medium,
9333 blockdev-insert-medium and blockdev-close-tray).
9334
9335 Arguments
9336 device: string (optional)
9337 Block device name
9338
9339 id: string (optional)
9340 The name or QOM path of the guest device (since: 2.8)
9341
9342 filename: string
9343 filename of the new image to be loaded
9344
9345 format: string (optional)
9346 format to open the new image with (defaults to the probed for‐
9347 mat)
9348
9349 read-only-mode: BlockdevChangeReadOnlyMode (optional)
9350 change the read-only mode of the device; defaults to 'retain'
9351
9352 force: boolean (optional)
9353 if false (the default), an eject request through block‐
9354 dev-open-tray will be sent to the guest if it has locked the
9355 tray (and the tray will not be opened immediately); if true, the
9356 tray will be opened regardless of whether it is locked. (since
9357 7.1)
9358
9359 Features
9360 deprecated
9361 Member device is deprecated. Use id instead.
9362
9363 Since
9364 2.5
9365
9366 Examples
9367 1. Change a removable medium
9368
9369 -> { "execute": "blockdev-change-medium",
9370 "arguments": { "id": "ide0-1-0",
9371 "filename": "/srv/images/Fedora-12-x86_64-DVD.iso",
9372 "format": "raw" } }
9373 <- { "return": {} }
9374
9375 2. Load a read-only medium into a writable drive
9376
9377 -> { "execute": "blockdev-change-medium",
9378 "arguments": { "id": "floppyA",
9379 "filename": "/srv/images/ro.img",
9380 "format": "raw",
9381 "read-only-mode": "retain" } }
9382
9383 <- { "error":
9384 { "class": "GenericError",
9385 "desc": "Could not open '/srv/images/ro.img': Permission denied" } }
9386
9387 -> { "execute": "blockdev-change-medium",
9388 "arguments": { "id": "floppyA",
9389 "filename": "/srv/images/ro.img",
9390 "format": "raw",
9391 "read-only-mode": "read-only" } }
9392
9393 <- { "return": {} }
9394
9395 DEVICE_TRAY_MOVED (Event)
9396 Emitted whenever the tray of a removable device is moved by the guest
9397 or by HMP/QMP commands
9398
9399 Arguments
9400 device: string
9401 Block device name. This is always present for compatibility rea‐
9402 sons, but it can be empty ("") if the image does not have a de‐
9403 vice name associated.
9404
9405 id: string
9406 The name or QOM path of the guest device (since 2.8)
9407
9408 tray-open: boolean
9409 true if the tray has been opened or false if it has been closed
9410
9411 Since
9412 1.1
9413
9414 Example
9415 <- { "event": "DEVICE_TRAY_MOVED",
9416 "data": { "device": "ide1-cd0",
9417 "id": "/machine/unattached/device[22]",
9418 "tray-open": true
9419 },
9420 "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
9421
9422 PR_MANAGER_STATUS_CHANGED (Event)
9423 Emitted whenever the connected status of a persistent reservation man‐
9424 ager changes.
9425
9426 Arguments
9427 id: string
9428 The id of the PR manager object
9429
9430 connected: boolean
9431 true if the PR manager is connected to a backend
9432
9433 Since
9434 3.0
9435
9436 Example
9437 <- { "event": "PR_MANAGER_STATUS_CHANGED",
9438 "data": { "id": "pr-helper0",
9439 "connected": true
9440 },
9441 "timestamp": { "seconds": 1519840375, "microseconds": 450486 } }
9442
9443 block_set_io_throttle (Command)
9444 Change I/O throttle limits for a block drive.
9445
9446 Since QEMU 2.4, each device with I/O limits is member of a throttle
9447 group.
9448
9449 If two or more devices are members of the same group, the limits will
9450 apply to the combined I/O of the whole group in a round-robin fashion.
9451 Therefore, setting new I/O limits to a device will affect the whole
9452 group.
9453
9454 The name of the group can be specified using the 'group' parameter. If
9455 the parameter is unset, it is assumed to be the current group of that
9456 device. If it's not in any group yet, the name of the device will be
9457 used as the name for its group.
9458
9459 The 'group' parameter can also be used to move a device to a different
9460 group. In this case the limits specified in the parameters will be ap‐
9461 plied to the new group only.
9462
9463 I/O limits can be disabled by setting all of them to 0. In this case
9464 the device will be removed from its group and the rest of its members
9465 will not be affected. The 'group' parameter is ignored.
9466
9467 Arguments
9468 The members of BlockIOThrottle
9469
9470 Returns
9471 • Nothing on success
9472
9473 • If device is not a valid block device, DeviceNotFound
9474
9475 Since
9476 1.1
9477
9478 Example
9479 -> { "execute": "block_set_io_throttle",
9480 "arguments": { "id": "virtio-blk-pci0/virtio-backend",
9481 "bps": 0,
9482 "bps_rd": 0,
9483 "bps_wr": 0,
9484 "iops": 512,
9485 "iops_rd": 0,
9486 "iops_wr": 0,
9487 "bps_max": 0,
9488 "bps_rd_max": 0,
9489 "bps_wr_max": 0,
9490 "iops_max": 0,
9491 "iops_rd_max": 0,
9492 "iops_wr_max": 0,
9493 "bps_max_length": 0,
9494 "iops_size": 0 } }
9495 <- { "return": {} }
9496
9497 -> { "execute": "block_set_io_throttle",
9498 "arguments": { "id": "ide0-1-0",
9499 "bps": 1000000,
9500 "bps_rd": 0,
9501 "bps_wr": 0,
9502 "iops": 0,
9503 "iops_rd": 0,
9504 "iops_wr": 0,
9505 "bps_max": 8000000,
9506 "bps_rd_max": 0,
9507 "bps_wr_max": 0,
9508 "iops_max": 0,
9509 "iops_rd_max": 0,
9510 "iops_wr_max": 0,
9511 "bps_max_length": 60,
9512 "iops_size": 0 } }
9513 <- { "return": {} }
9514
9515 block-latency-histogram-set (Command)
9516 Manage read, write and flush latency histograms for the device.
9517
9518 If only id parameter is specified, remove all present latency his‐
9519 tograms for the device. Otherwise, add/reset some of (or all) latency
9520 histograms.
9521
9522 Arguments
9523 id: string
9524 The name or QOM path of the guest device.
9525
9526 boundaries: array of int (optional)
9527 list of interval boundary values (see description in BlockLaten‐
9528 cyHistogramInfo definition). If specified, all latency his‐
9529 tograms are removed, and empty ones created for all io types
9530 with intervals corresponding to boundaries (except for io types,
9531 for which specific boundaries are set through the following pa‐
9532 rameters).
9533
9534 boundaries-read: array of int (optional)
9535 list of interval boundary values for read latency histogram. If
9536 specified, old read latency histogram is removed, and empty one
9537 created with intervals corresponding to boundaries-read. The pa‐
9538 rameter has higher priority then boundaries.
9539
9540 boundaries-write: array of int (optional)
9541 list of interval boundary values for write latency histogram.
9542
9543 boundaries-flush: array of int (optional)
9544 list of interval boundary values for flush latency histogram.
9545
9546 Returns
9547 error if device is not found or any boundary arrays are invalid.
9548
9549 Since
9550 4.0
9551
9552 Example
9553 set new histograms for all io types with intervals
9554 [0, 10), [10, 50), [50, 100), [100, +inf):
9555
9556 -> { "execute": "block-latency-histogram-set",
9557 "arguments": { "id": "drive0",
9558 "boundaries": [10, 50, 100] } }
9559 <- { "return": {} }
9560
9561 Example
9562 set new histogram only for write, other histograms will remain
9563 not changed (or not created):
9564
9565 -> { "execute": "block-latency-histogram-set",
9566 "arguments": { "id": "drive0",
9567 "boundaries-write": [10, 50, 100] } }
9568 <- { "return": {} }
9569
9570 Example
9571 set new histograms with the following intervals:
9572 read, flush: [0, 10), [10, 50), [50, 100), [100, +inf)
9573 write: [0, 1000), [1000, 5000), [5000, +inf)
9574
9575 -> { "execute": "block-latency-histogram-set",
9576 "arguments": { "id": "drive0",
9577 "boundaries": [10, 50, 100],
9578 "boundaries-write": [1000, 5000] } }
9579 <- { "return": {} }
9580
9581 Example
9582 remove all latency histograms:
9583
9584 -> { "execute": "block-latency-histogram-set",
9585 "arguments": { "id": "drive0" } }
9586 <- { "return": {} }
9587
9588 Block device exports
9589 NbdServerOptions (Object)
9590 Keep this type consistent with the nbd-server-start arguments. The only
9591 intended difference is using SocketAddress instead of SocketAddressLe‐
9592 gacy.
9593
9594 Members
9595 addr: SocketAddress
9596 Address on which to listen.
9597
9598 tls-creds: string (optional)
9599 ID of the TLS credentials object (since 2.6).
9600
9601 tls-authz: string (optional)
9602 ID of the QAuthZ authorization object used to validate the
9603 client's x509 distinguished name. This object is is only re‐
9604 solved at time of use, so can be deleted and recreated on the
9605 fly while the NBD server is active. If missing, it will default
9606 to denying access (since 4.0).
9607
9608 max-connections: int (optional)
9609 The maximum number of connections to allow at the same time, 0
9610 for unlimited. Setting this to 1 also stops the server from ad‐
9611 vertising multiple client support (since 5.2; default: 0)
9612
9613 Since
9614 4.2
9615
9616 nbd-server-start (Command)
9617 Start an NBD server listening on the given host and port. Block de‐
9618 vices can then be exported using nbd-server-add. The NBD server will
9619 present them as named exports; for example, another QEMU instance could
9620 refer to them as "nbd:HOST:PORT:exportname=NAME".
9621
9622 Keep this type consistent with the NbdServerOptions type. The only in‐
9623 tended difference is using SocketAddressLegacy instead of SocketAd‐
9624 dress.
9625
9626 Arguments
9627 addr: SocketAddressLegacy
9628 Address on which to listen.
9629
9630 tls-creds: string (optional)
9631 ID of the TLS credentials object (since 2.6).
9632
9633 tls-authz: string (optional)
9634 ID of the QAuthZ authorization object used to validate the
9635 client's x509 distinguished name. This object is is only re‐
9636 solved at time of use, so can be deleted and recreated on the
9637 fly while the NBD server is active. If missing, it will default
9638 to denying access (since 4.0).
9639
9640 max-connections: int (optional)
9641 The maximum number of connections to allow at the same time, 0
9642 for unlimited. Setting this to 1 also stops the server from ad‐
9643 vertising multiple client support (since 5.2; default: 0).
9644
9645 Returns
9646 error if the server is already running.
9647
9648 Since
9649 1.3
9650
9651 BlockExportOptionsNbdBase (Object)
9652 An NBD block export (common options shared between nbd-server-add and
9653 the NBD branch of block-export-add).
9654
9655 Members
9656 name: string (optional)
9657 Export name. If unspecified, the device parameter is used as the
9658 export name. (Since 2.12)
9659
9660 description: string (optional)
9661 Free-form description of the export, up to 4096 bytes. (Since
9662 5.0)
9663
9664 Since
9665 5.0
9666
9667 BlockExportOptionsNbd (Object)
9668 An NBD block export (distinct options used in the NBD branch of
9669 block-export-add).
9670
9671 Members
9672 bitmaps: array of BlockDirtyBitmapOrStr (optional)
9673 Also export each of the named dirty bitmaps reachable from de‐
9674 vice, so the NBD client can use NBD_OPT_SET_META_CONTEXT with
9675 the metadata context name "qemu:dirty-bitmap:BITMAP" to inspect
9676 each bitmap. Since 7.1 bitmap may be specified by node/name
9677 pair.
9678
9679 allocation-depth: boolean (optional)
9680 Also export the allocation depth map for device, so the NBD
9681 client can use NBD_OPT_SET_META_CONTEXT with the metadata con‐
9682 text name "qemu:allocation-depth" to inspect allocation details.
9683 (since 5.2)
9684
9685 The members of BlockExportOptionsNbdBase
9686
9687 Since
9688 5.2
9689
9690 BlockExportOptionsVhostUserBlk (Object)
9691 A vhost-user-blk block export.
9692
9693 Members
9694 addr: SocketAddress
9695 The vhost-user socket on which to listen. Both 'unix' and 'fd'
9696 SocketAddress types are supported. Passed fds must be UNIX do‐
9697 main sockets.
9698
9699 logical-block-size: int (optional)
9700 Logical block size in bytes. Defaults to 512 bytes.
9701
9702 num-queues: int (optional)
9703 Number of request virtqueues. Must be greater than 0. Defaults
9704 to 1.
9705
9706 Since
9707 5.2
9708
9709 FuseExportAllowOther (Enum)
9710 Possible allow_other modes for FUSE exports.
9711
9712 Values
9713 off Do not pass allow_other as a mount option.
9714
9715 on Pass allow_other as a mount option.
9716
9717 auto Try mounting with allow_other first, and if that fails, retry
9718 without allow_other.
9719
9720 Since
9721 6.1
9722
9723 BlockExportOptionsFuse (Object)
9724 Options for exporting a block graph node on some (file) mountpoint as a
9725 raw image.
9726
9727 Members
9728 mountpoint: string
9729 Path on which to export the block device via FUSE. This must
9730 point to an existing regular file.
9731
9732 growable: boolean (optional)
9733 Whether writes beyond the EOF should grow the block node accord‐
9734 ingly. (default: false)
9735
9736 allow-other: FuseExportAllowOther (optional)
9737 If this is off, only qemu's user is allowed access to this ex‐
9738 port. That cannot be changed even with chmod or chown. En‐
9739 abling this option will allow other users access to the export
9740 with the FUSE mount option "allow_other". Note that using al‐
9741 low_other as a non-root user requires user_allow_other to be en‐
9742 abled in the global fuse.conf configuration file. In auto mode
9743 (the default), the FUSE export driver will first attempt to
9744 mount the export with allow_other, and if that fails, try again
9745 without. (since 6.1; default: auto)
9746
9747 Since
9748 6.0
9749
9750 If
9751 CONFIG_FUSE
9752
9753 BlockExportOptionsVduseBlk (Object)
9754 A vduse-blk block export.
9755
9756 Members
9757 name: string
9758 the name of VDUSE device (must be unique across the host).
9759
9760 num-queues: int (optional)
9761 the number of virtqueues. Defaults to 1.
9762
9763 queue-size: int (optional)
9764 the size of virtqueue. Defaults to 256.
9765
9766 logical-block-size: int (optional)
9767 Logical block size in bytes. Range [512, PAGE_SIZE] and must be
9768 power of 2. Defaults to 512 bytes.
9769
9770 serial: string (optional)
9771 the serial number of virtio block device. Defaults to empty
9772 string.
9773
9774 Since
9775 7.1
9776
9777 NbdServerAddOptions (Object)
9778 An NBD block export, per legacy nbd-server-add command.
9779
9780 Members
9781 device: string
9782 The device name or node name of the node to be exported
9783
9784 writable: boolean (optional)
9785 Whether clients should be able to write to the device via the
9786 NBD connection (default false).
9787
9788 bitmap: string (optional)
9789 Also export a single dirty bitmap reachable from device, so the
9790 NBD client can use NBD_OPT_SET_META_CONTEXT with the metadata
9791 context name "qemu:dirty-bitmap:BITMAP" to inspect the bitmap
9792 (since 4.0).
9793
9794 The members of BlockExportOptionsNbdBase
9795
9796 Since
9797 5.0
9798
9799 nbd-server-add (Command)
9800 Export a block node to QEMU's embedded NBD server.
9801
9802 The export name will be used as the id for the resulting block export.
9803
9804 Arguments
9805 The members of NbdServerAddOptions
9806
9807 Features
9808 deprecated
9809 This command is deprecated. Use block-export-add instead.
9810
9811 Returns
9812 error if the server is not running, or export with the same name al‐
9813 ready exists.
9814
9815 Since
9816 1.3
9817
9818 BlockExportRemoveMode (Enum)
9819 Mode for removing a block export.
9820
9821 Values
9822 safe Remove export if there are no existing connections, fail other‐
9823 wise.
9824
9825 hard Drop all connections immediately and remove export.
9826
9827 TODO
9828 Potential additional modes to be added in the future:
9829
9830 hide: Just hide export from new clients, leave existing connections as
9831 is. Remove export after all clients are disconnected.
9832
9833 soft: Hide export from new clients, answer with ESHUTDOWN for all fur‐
9834 ther requests from existing clients.
9835
9836 Since
9837 2.12
9838
9839 nbd-server-remove (Command)
9840 Remove NBD export by name.
9841
9842 Arguments
9843 name: string
9844 Block export id.
9845
9846 mode: BlockExportRemoveMode (optional)
9847 Mode of command operation. See BlockExportRemoveMode descrip‐
9848 tion. Default is 'safe'.
9849
9850 Features
9851 deprecated
9852 This command is deprecated. Use block-export-del instead.
9853
9854 Returns
9855 error if
9856
9857 • the server is not running
9858
9859 • export is not found
9860
9861 • mode is 'safe' and there are existing connections
9862
9863 Since
9864 2.12
9865
9866 nbd-server-stop (Command)
9867 Stop QEMU's embedded NBD server, and unregister all devices previously
9868 added via nbd-server-add.
9869
9870 Since
9871 1.3
9872
9873 BlockExportType (Enum)
9874 An enumeration of block export types
9875
9876 Values
9877 nbd NBD export
9878
9879 vhost-user-blk (If: CONFIG_VHOST_USER_BLK_SERVER)
9880 vhost-user-blk export (since 5.2)
9881
9882 fuse (If: CONFIG_FUSE)
9883 FUSE export (since: 6.0)
9884
9885 vduse-blk (If: CONFIG_VDUSE_BLK_EXPORT)
9886 vduse-blk export (since 7.1)
9887
9888 Since
9889 4.2
9890
9891 BlockExportOptions (Object)
9892 Describes a block export, i.e. how single node should be exported on an
9893 external interface.
9894
9895 Members
9896 id: string
9897 A unique identifier for the block export (across all export
9898 types)
9899
9900 node-name: string
9901 The node name of the block node to be exported (since: 5.2)
9902
9903 writable: boolean (optional)
9904 True if clients should be able to write to the export (default
9905 false)
9906
9907 writethrough: boolean (optional)
9908 If true, caches are flushed after every write request to the ex‐
9909 port before completion is signalled. (since: 5.2; default:
9910 false)
9911
9912 iothread: string (optional)
9913 The name of the iothread object where the export will run. The
9914 default is to use the thread currently associated with the block
9915 node. (since: 5.2)
9916
9917 fixed-iothread: boolean (optional)
9918 True prevents the block node from being moved to another thread
9919 while the export is active. If true and iothread is given, ex‐
9920 port creation fails if the block node cannot be moved to the io‐
9921 thread. The default is false. (since: 5.2)
9922
9923 type: BlockExportType
9924 Not documented
9925
9926 The members of BlockExportOptionsNbd when type is "nbd"
9927
9928 The members of BlockExportOptionsVhostUserBlk when type is
9929 "vhost-user-blk" (If: CONFIG_VHOST_USER_BLK_SERVER)
9930
9931 The members of BlockExportOptionsFuse when type is "fuse" (If: CON‐
9932 FIG_FUSE)
9933
9934 The members of BlockExportOptionsVduseBlk when type is "vduse-blk" (If:
9935 CONFIG_VDUSE_BLK_EXPORT)
9936
9937 Since
9938 4.2
9939
9940 block-export-add (Command)
9941 Creates a new block export.
9942
9943 Arguments
9944 The members of BlockExportOptions
9945
9946 Since
9947 5.2
9948
9949 block-export-del (Command)
9950 Request to remove a block export. This drops the user's reference to
9951 the export, but the export may still stay around after this command re‐
9952 turns until the shutdown of the export has completed.
9953
9954 Arguments
9955 id: string
9956 Block export id.
9957
9958 mode: BlockExportRemoveMode (optional)
9959 Mode of command operation. See BlockExportRemoveMode descrip‐
9960 tion. Default is 'safe'.
9961
9962 Returns
9963 Error if the export is not found or mode is 'safe' and the export is
9964 still in use (e.g. by existing client connections)
9965
9966 Since
9967 5.2
9968
9969 BLOCK_EXPORT_DELETED (Event)
9970 Emitted when a block export is removed and its id can be reused.
9971
9972 Arguments
9973 id: string
9974 Block export id.
9975
9976 Since
9977 5.2
9978
9979 BlockExportInfo (Object)
9980 Information about a single block export.
9981
9982 Members
9983 id: string
9984 The unique identifier for the block export
9985
9986 type: BlockExportType
9987 The block export type
9988
9989 node-name: string
9990 The node name of the block node that is exported
9991
9992 shutting-down: boolean
9993 True if the export is shutting down (e.g. after a block-ex‐
9994 port-del command, but before the shutdown has completed)
9995
9996 Since
9997 5.2
9998
9999 query-block-exports (Command)
10000 Returns
10001 A list of BlockExportInfo describing all block exports
10002
10003 Since
10004 5.2
10005
10007 ChardevInfo (Object)
10008 Information about a character device.
10009
10010 Members
10011 label: string
10012 the label of the character device
10013
10014 filename: string
10015 the filename of the character device
10016
10017 frontend-open: boolean
10018 shows whether the frontend device attached to this backend (eg.
10019 with the chardev=... option) is in open or closed state (since
10020 2.1)
10021
10022 Notes
10023 filename is encoded using the QEMU command line character device encod‐
10024 ing. See the QEMU man page for details.
10025
10026 Since
10027 0.14
10028
10029 query-chardev (Command)
10030 Returns information about current character devices.
10031
10032 Returns
10033 a list of ChardevInfo
10034
10035 Since
10036 0.14
10037
10038 Example
10039 -> { "execute": "query-chardev" }
10040 <- {
10041 "return": [
10042 {
10043 "label": "charchannel0",
10044 "filename": "unix:/var/lib/libvirt/qemu/seabios.rhel6.agent,server=on",
10045 "frontend-open": false
10046 },
10047 {
10048 "label": "charmonitor",
10049 "filename": "unix:/var/lib/libvirt/qemu/seabios.rhel6.monitor,server=on",
10050 "frontend-open": true
10051 },
10052 {
10053 "label": "charserial0",
10054 "filename": "pty:/dev/pts/2",
10055 "frontend-open": true
10056 }
10057 ]
10058 }
10059
10060 ChardevBackendInfo (Object)
10061 Information about a character device backend
10062
10063 Members
10064 name: string
10065 The backend name
10066
10067 Since
10068 2.0
10069
10070 query-chardev-backends (Command)
10071 Returns information about character device backends.
10072
10073 Returns
10074 a list of ChardevBackendInfo
10075
10076 Since
10077 2.0
10078
10079 Example
10080 -> { "execute": "query-chardev-backends" }
10081 <- {
10082 "return":[
10083 {
10084 "name":"udp"
10085 },
10086 {
10087 "name":"tcp"
10088 },
10089 {
10090 "name":"unix"
10091 },
10092 {
10093 "name":"spiceport"
10094 }
10095 ]
10096 }
10097
10098 DataFormat (Enum)
10099 An enumeration of data format.
10100
10101 Values
10102 utf8 Data is a UTF-8 string (RFC 3629)
10103
10104 base64 Data is Base64 encoded binary (RFC 3548)
10105
10106 Since
10107 1.4
10108
10109 ringbuf-write (Command)
10110 Write to a ring buffer character device.
10111
10112 Arguments
10113 device: string
10114 the ring buffer character device name
10115
10116 data: string
10117 data to write
10118
10119 format: DataFormat (optional)
10120 data encoding (default 'utf8').
10121
10122 • base64: data must be base64 encoded text. Its binary decoding
10123 gets written.
10124
10125 • utf8: data's UTF-8 encoding is written
10126
10127 • data itself is always Unicode regardless of format, like any
10128 other string.
10129
10130 Returns
10131 Nothing on success
10132
10133 Since
10134 1.4
10135
10136 Example
10137 -> { "execute": "ringbuf-write",
10138 "arguments": { "device": "foo",
10139 "data": "abcdefgh",
10140 "format": "utf8" } }
10141 <- { "return": {} }
10142
10143 ringbuf-read (Command)
10144 Read from a ring buffer character device.
10145
10146 Arguments
10147 device: string
10148 the ring buffer character device name
10149
10150 size: int
10151 how many bytes to read at most
10152
10153 format: DataFormat (optional)
10154 data encoding (default 'utf8').
10155
10156 • base64: the data read is returned in base64 encoding.
10157
10158 • utf8: the data read is interpreted as UTF-8. Bug: can screw
10159 up when the buffer contains invalid UTF-8 sequences, NUL char‐
10160 acters, after the ring buffer lost data, and when reading
10161 stops because the size limit is reached.
10162
10163 • The return value is always Unicode regardless of format, like
10164 any other string.
10165
10166 Returns
10167 data read from the device
10168
10169 Since
10170 1.4
10171
10172 Example
10173 -> { "execute": "ringbuf-read",
10174 "arguments": { "device": "foo",
10175 "size": 1000,
10176 "format": "utf8" } }
10177 <- { "return": "abcdefgh" }
10178
10179 ChardevCommon (Object)
10180 Configuration shared across all chardev backends
10181
10182 Members
10183 logfile: string (optional)
10184 The name of a logfile to save output
10185
10186 logappend: boolean (optional)
10187 true to append instead of truncate (default to false to trun‐
10188 cate)
10189
10190 Since
10191 2.6
10192
10193 ChardevFile (Object)
10194 Configuration info for file chardevs.
10195
10196 Members
10197 in: string (optional)
10198 The name of the input file
10199
10200 out: string
10201 The name of the output file
10202
10203 append: boolean (optional)
10204 Open the file in append mode (default false to truncate) (Since
10205 2.6)
10206
10207 The members of ChardevCommon
10208
10209 Since
10210 1.4
10211
10212 ChardevHostdev (Object)
10213 Configuration info for device and pipe chardevs.
10214
10215 Members
10216 device: string
10217 The name of the special file for the device, i.e. /dev/ttyS0 on
10218 Unix or COM1: on Windows
10219
10220 The members of ChardevCommon
10221
10222 Since
10223 1.4
10224
10225 ChardevSocket (Object)
10226 Configuration info for (stream) socket chardevs.
10227
10228 Members
10229 addr: SocketAddressLegacy
10230 socket address to listen on (server=true) or connect to
10231 (server=false)
10232
10233 tls-creds: string (optional)
10234 the ID of the TLS credentials object (since 2.6)
10235
10236 tls-authz: string (optional)
10237 the ID of the QAuthZ authorization object against which the
10238 client's x509 distinguished name will be validated. This object
10239 is only resolved at time of use, so can be deleted and recreated
10240 on the fly while the chardev server is active. If missing, it
10241 will default to denying access (since 4.0)
10242
10243 server: boolean (optional)
10244 create server socket (default: true)
10245
10246 wait: boolean (optional)
10247 wait for incoming connection on server sockets (default: false).
10248 Silently ignored with server: false. This use is deprecated.
10249
10250 nodelay: boolean (optional)
10251 set TCP_NODELAY socket option (default: false)
10252
10253 telnet: boolean (optional)
10254 enable telnet protocol on server sockets (default: false)
10255
10256 tn3270: boolean (optional)
10257 enable tn3270 protocol on server sockets (default: false)
10258 (Since: 2.10)
10259
10260 websocket: boolean (optional)
10261 enable websocket protocol on server sockets (default: false)
10262 (Since: 3.1)
10263
10264 reconnect: int (optional)
10265 For a client socket, if a socket is disconnected, then attempt a
10266 reconnect after the given number of seconds. Setting this to
10267 zero disables this function. (default: 0) (Since: 2.2)
10268
10269 The members of ChardevCommon
10270
10271 Since
10272 1.4
10273
10274 ChardevUdp (Object)
10275 Configuration info for datagram socket chardevs.
10276
10277 Members
10278 remote: SocketAddressLegacy
10279 remote address
10280
10281 local: SocketAddressLegacy (optional)
10282 local address
10283
10284 The members of ChardevCommon
10285
10286 Since
10287 1.5
10288
10289 ChardevMux (Object)
10290 Configuration info for mux chardevs.
10291
10292 Members
10293 chardev: string
10294 name of the base chardev.
10295
10296 The members of ChardevCommon
10297
10298 Since
10299 1.5
10300
10301 ChardevStdio (Object)
10302 Configuration info for stdio chardevs.
10303
10304 Members
10305 signal: boolean (optional)
10306 Allow signals (such as SIGINT triggered by ^C) be delivered to
10307 qemu. Default: true.
10308
10309 The members of ChardevCommon
10310
10311 Since
10312 1.5
10313
10314 ChardevSpiceChannel (Object)
10315 Configuration info for spice vm channel chardevs.
10316
10317 Members
10318 type: string
10319 kind of channel (for example vdagent).
10320
10321 The members of ChardevCommon
10322
10323 Since
10324 1.5
10325
10326 If
10327 CONFIG_SPICE
10328
10329 ChardevSpicePort (Object)
10330 Configuration info for spice port chardevs.
10331
10332 Members
10333 fqdn: string
10334 name of the channel (see docs/spice-port-fqdn.txt)
10335
10336 The members of ChardevCommon
10337
10338 Since
10339 1.5
10340
10341 If
10342 CONFIG_SPICE
10343
10344 ChardevDBus (Object)
10345 Configuration info for DBus chardevs.
10346
10347 Members
10348 name: string
10349 name of the channel (following docs/spice-port-fqdn.txt)
10350
10351 The members of ChardevCommon
10352
10353 Since
10354 7.0
10355
10356 If
10357 CONFIG_DBUS_DISPLAY
10358
10359 ChardevVC (Object)
10360 Configuration info for virtual console chardevs.
10361
10362 Members
10363 width: int (optional)
10364 console width, in pixels
10365
10366 height: int (optional)
10367 console height, in pixels
10368
10369 cols: int (optional)
10370 console width, in chars
10371
10372 rows: int (optional)
10373 console height, in chars
10374
10375 The members of ChardevCommon
10376
10377 Since
10378 1.5
10379
10380 ChardevRingbuf (Object)
10381 Configuration info for ring buffer chardevs.
10382
10383 Members
10384 size: int (optional)
10385 ring buffer size, must be power of two, default is 65536
10386
10387 The members of ChardevCommon
10388
10389 Since
10390 1.5
10391
10392 ChardevQemuVDAgent (Object)
10393 Configuration info for qemu vdagent implementation.
10394
10395 Members
10396 mouse: boolean (optional)
10397 enable/disable mouse, default is enabled.
10398
10399 clipboard: boolean (optional)
10400 enable/disable clipboard, default is disabled.
10401
10402 The members of ChardevCommon
10403
10404 Since
10405 6.1
10406
10407 If
10408 CONFIG_SPICE_PROTOCOL
10409
10410 ChardevBackendKind (Enum)
10411 Values
10412 pipe Since 1.5
10413
10414 udp Since 1.5
10415
10416 mux Since 1.5
10417
10418 msmouse
10419 Since 1.5
10420
10421 wctablet
10422 Since 2.9
10423
10424 braille
10425 Since 1.5
10426
10427 testdev
10428 Since 2.2
10429
10430 stdio Since 1.5
10431
10432 console
10433 Since 1.5
10434
10435 spicevmc (If: CONFIG_SPICE)
10436 Since 1.5
10437
10438 spiceport (If: CONFIG_SPICE)
10439 Since 1.5
10440
10441 qemu-vdagent (If: CONFIG_SPICE_PROTOCOL)
10442 Since 6.1
10443
10444 dbus (If: CONFIG_DBUS_DISPLAY)
10445 Since 7.0
10446
10447 vc v1.5
10448
10449 ringbuf
10450 Since 1.6
10451
10452 memory Since 1.5
10453
10454 file Not documented
10455
10456 serial Not documented
10457
10458 parallel
10459 Not documented
10460
10461 socket Not documented
10462
10463 pty Not documented
10464
10465 null Not documented
10466
10467 Since
10468 1.4
10469
10470 ChardevFileWrapper (Object)
10471 Members
10472 data: ChardevFile
10473 Not documented
10474
10475 Since
10476 1.4
10477
10478 ChardevHostdevWrapper (Object)
10479 Members
10480 data: ChardevHostdev
10481 Not documented
10482
10483 Since
10484 1.4
10485
10486 ChardevSocketWrapper (Object)
10487 Members
10488 data: ChardevSocket
10489 Not documented
10490
10491 Since
10492 1.4
10493
10494 ChardevUdpWrapper (Object)
10495 Members
10496 data: ChardevUdp
10497 Not documented
10498
10499 Since
10500 1.5
10501
10502 ChardevCommonWrapper (Object)
10503 Members
10504 data: ChardevCommon
10505 Not documented
10506
10507 Since
10508 2.6
10509
10510 ChardevMuxWrapper (Object)
10511 Members
10512 data: ChardevMux
10513 Not documented
10514
10515 Since
10516 1.5
10517
10518 ChardevStdioWrapper (Object)
10519 Members
10520 data: ChardevStdio
10521 Not documented
10522
10523 Since
10524 1.5
10525
10526 ChardevSpiceChannelWrapper (Object)
10527 Members
10528 data: ChardevSpiceChannel
10529 Not documented
10530
10531 Since
10532 1.5
10533
10534 If
10535 CONFIG_SPICE
10536
10537 ChardevSpicePortWrapper (Object)
10538 Members
10539 data: ChardevSpicePort
10540 Not documented
10541
10542 Since
10543 1.5
10544
10545 If
10546 CONFIG_SPICE
10547
10548 ChardevQemuVDAgentWrapper (Object)
10549 Members
10550 data: ChardevQemuVDAgent
10551 Not documented
10552
10553 Since
10554 6.1
10555
10556 If
10557 CONFIG_SPICE_PROTOCOL
10558
10559 ChardevDBusWrapper (Object)
10560 Members
10561 data: ChardevDBus
10562 Not documented
10563
10564 Since
10565 7.0
10566
10567 If
10568 CONFIG_DBUS_DISPLAY
10569
10570 ChardevVCWrapper (Object)
10571 Members
10572 data: ChardevVC
10573 Not documented
10574
10575 Since
10576 1.5
10577
10578 ChardevRingbufWrapper (Object)
10579 Members
10580 data: ChardevRingbuf
10581 Not documented
10582
10583 Since
10584 1.5
10585
10586 ChardevBackend (Object)
10587 Configuration info for the new chardev backend.
10588
10589 Members
10590 type: ChardevBackendKind
10591 Not documented
10592
10593 The members of ChardevFileWrapper when type is "file"
10594
10595 The members of ChardevHostdevWrapper when type is "serial"
10596
10597 The members of ChardevHostdevWrapper when type is "parallel"
10598
10599 The members of ChardevHostdevWrapper when type is "pipe"
10600
10601 The members of ChardevSocketWrapper when type is "socket"
10602
10603 The members of ChardevUdpWrapper when type is "udp"
10604
10605 The members of ChardevCommonWrapper when type is "pty"
10606
10607 The members of ChardevCommonWrapper when type is "null"
10608
10609 The members of ChardevMuxWrapper when type is "mux"
10610
10611 The members of ChardevCommonWrapper when type is "msmouse"
10612
10613 The members of ChardevCommonWrapper when type is "wctablet"
10614
10615 The members of ChardevCommonWrapper when type is "braille"
10616
10617 The members of ChardevCommonWrapper when type is "testdev"
10618
10619 The members of ChardevStdioWrapper when type is "stdio"
10620
10621 The members of ChardevCommonWrapper when type is "console"
10622
10623 The members of ChardevSpiceChannelWrapper when type is "spicevmc" (If:
10624 CONFIG_SPICE)
10625
10626 The members of ChardevSpicePortWrapper when type is "spiceport" (If:
10627 CONFIG_SPICE)
10628
10629 The members of ChardevQemuVDAgentWrapper when type is "qemu-vdagent"
10630 (If: CONFIG_SPICE_PROTOCOL)
10631
10632 The members of ChardevDBusWrapper when type is "dbus" (If: CON‐
10633 FIG_DBUS_DISPLAY)
10634
10635 The members of ChardevVCWrapper when type is "vc"
10636
10637 The members of ChardevRingbufWrapper when type is "ringbuf"
10638
10639 The members of ChardevRingbufWrapper when type is "memory"
10640
10641 Since
10642 1.4
10643
10644 ChardevReturn (Object)
10645 Return info about the chardev backend just created.
10646
10647 Members
10648 pty: string (optional)
10649 name of the slave pseudoterminal device, present if and only if
10650 a chardev of type 'pty' was created
10651
10652 Since
10653 1.4
10654
10655 chardev-add (Command)
10656 Add a character device backend
10657
10658 Arguments
10659 id: string
10660 the chardev's ID, must be unique
10661
10662 backend: ChardevBackend
10663 backend type and parameters
10664
10665 Returns
10666 ChardevReturn.
10667
10668 Since
10669 1.4
10670
10671 Example
10672 -> { "execute" : "chardev-add",
10673 "arguments" : { "id" : "foo",
10674 "backend" : { "type" : "null", "data" : {} } } }
10675 <- { "return": {} }
10676
10677 -> { "execute" : "chardev-add",
10678 "arguments" : { "id" : "bar",
10679 "backend" : { "type" : "file",
10680 "data" : { "out" : "/tmp/bar.log" } } } }
10681 <- { "return": {} }
10682
10683 -> { "execute" : "chardev-add",
10684 "arguments" : { "id" : "baz",
10685 "backend" : { "type" : "pty", "data" : {} } } }
10686 <- { "return": { "pty" : "/dev/pty/42" } }
10687
10688 chardev-change (Command)
10689 Change a character device backend
10690
10691 Arguments
10692 id: string
10693 the chardev's ID, must exist
10694
10695 backend: ChardevBackend
10696 new backend type and parameters
10697
10698 Returns
10699 ChardevReturn.
10700
10701 Since
10702 2.10
10703
10704 Example
10705 -> { "execute" : "chardev-change",
10706 "arguments" : { "id" : "baz",
10707 "backend" : { "type" : "pty", "data" : {} } } }
10708 <- { "return": { "pty" : "/dev/pty/42" } }
10709
10710 -> {"execute" : "chardev-change",
10711 "arguments" : {
10712 "id" : "charchannel2",
10713 "backend" : {
10714 "type" : "socket",
10715 "data" : {
10716 "addr" : {
10717 "type" : "unix" ,
10718 "data" : {
10719 "path" : "/tmp/charchannel2.socket"
10720 }
10721 },
10722 "server" : true,
10723 "wait" : false }}}}
10724 <- {"return": {}}
10725
10726 chardev-remove (Command)
10727 Remove a character device backend
10728
10729 Arguments
10730 id: string
10731 the chardev's ID, must exist and not be in use
10732
10733 Returns
10734 Nothing on success
10735
10736 Since
10737 1.4
10738
10739 Example
10740 -> { "execute": "chardev-remove", "arguments": { "id" : "foo" } }
10741 <- { "return": {} }
10742
10743 chardev-send-break (Command)
10744 Send a break to a character device
10745
10746 Arguments
10747 id: string
10748 the chardev's ID, must exist
10749
10750 Returns
10751 Nothing on success
10752
10753 Since
10754 2.10
10755
10756 Example
10757 -> { "execute": "chardev-send-break", "arguments": { "id" : "foo" } }
10758 <- { "return": {} }
10759
10760 VSERPORT_CHANGE (Event)
10761 Emitted when the guest opens or closes a virtio-serial port.
10762
10763 Arguments
10764 id: string
10765 device identifier of the virtio-serial port
10766
10767 open: boolean
10768 true if the guest has opened the virtio-serial port
10769
10770 Note
10771 This event is rate-limited.
10772
10773 Since
10774 2.1
10775
10776 Example
10777 <- { "event": "VSERPORT_CHANGE",
10778 "data": { "id": "channel0", "open": true },
10779 "timestamp": { "seconds": 1401385907, "microseconds": 422329 } }
10780
10782 DumpGuestMemoryFormat (Enum)
10783 An enumeration of guest-memory-dump's format.
10784
10785 Values
10786 elf elf format
10787
10788 kdump-zlib
10789 kdump-compressed format with zlib-compressed
10790
10791 kdump-lzo
10792 kdump-compressed format with lzo-compressed
10793
10794 kdump-snappy
10795 kdump-compressed format with snappy-compressed
10796
10797 win-dmp
10798 Windows full crashdump format, can be used instead of ELF con‐
10799 verting (since 2.13)
10800
10801 Since
10802 2.0
10803
10804 dump-guest-memory (Command)
10805 Dump guest's memory to vmcore. It is a synchronous operation that can
10806 take very long depending on the amount of guest memory.
10807
10808 Arguments
10809 paging: boolean
10810 if true, do paging to get guest's memory mapping. This allows
10811 using gdb to process the core file.
10812
10813 IMPORTANT: this option can make QEMU allocate several gigabytes
10814 of RAM. This can happen for a large guest, or a malicious guest
10815 pretending to be large.
10816
10817 Also, paging=true has the following limitations:
10818
10819 1. The guest may be in a catastrophic state or can have cor‐
10820 rupted memory, which cannot be trusted
10821
10822 2. The guest can be in real-mode even if paging is enabled.
10823 For example, the guest uses ACPI to sleep, and ACPI sleep
10824 state goes in real-mode
10825
10826 3. Currently only supported on i386 and x86_64.
10827
10828 protocol: string
10829 the filename or file descriptor of the vmcore. The supported
10830 protocols are:
10831
10832 1. file: the protocol starts with "file:", and the following
10833 string is the file's path.
10834
10835 2. fd: the protocol starts with "fd:", and the following string
10836 is the fd's name.
10837
10838 detach: boolean (optional)
10839 if true, QMP will return immediately rather than waiting for the
10840 dump to finish. The user can track progress using "query-dump".
10841 (since 2.6).
10842
10843 begin: int (optional)
10844 if specified, the starting physical address.
10845
10846 length: int (optional)
10847 if specified, the memory size, in bytes. If you don't want to
10848 dump all guest's memory, please specify the start begin and
10849 length
10850
10851 format: DumpGuestMemoryFormat (optional)
10852 if specified, the format of guest memory dump. But non-elf for‐
10853 mat is conflict with paging and filter, ie. paging, begin and
10854 length is not allowed to be specified with non-elf format at the
10855 same time (since 2.0)
10856
10857 Note
10858 All boolean arguments default to false
10859
10860 Returns
10861 nothing on success
10862
10863 Since
10864 1.2
10865
10866 Example
10867 -> { "execute": "dump-guest-memory",
10868 "arguments": { "paging": false, "protocol": "fd:dump" } }
10869 <- { "return": {} }
10870
10871 DumpStatus (Enum)
10872 Describe the status of a long-running background guest memory dump.
10873
10874 Values
10875 none no dump-guest-memory has started yet.
10876
10877 active there is one dump running in background.
10878
10879 completed
10880 the last dump has finished successfully.
10881
10882 failed the last dump has failed.
10883
10884 Since
10885 2.6
10886
10887 DumpQueryResult (Object)
10888 The result format for 'query-dump'.
10889
10890 Members
10891 status: DumpStatus
10892 enum of DumpStatus, which shows current dump status
10893
10894 completed: int
10895 bytes written in latest dump (uncompressed)
10896
10897 total: int
10898 total bytes to be written in latest dump (uncompressed)
10899
10900 Since
10901 2.6
10902
10903 query-dump (Command)
10904 Query latest dump status.
10905
10906 Returns
10907 A DumpStatus object showing the dump status.
10908
10909 Since
10910 2.6
10911
10912 Example
10913 -> { "execute": "query-dump" }
10914 <- { "return": { "status": "active", "completed": 1024000,
10915 "total": 2048000 } }
10916
10917 DUMP_COMPLETED (Event)
10918 Emitted when background dump has completed
10919
10920 Arguments
10921 result: DumpQueryResult
10922 final dump status
10923
10924 error: string (optional)
10925 human-readable error string that provides hint on why dump
10926 failed. Only presents on failure. The user should not try to in‐
10927 terpret the error string.
10928
10929 Since
10930 2.6
10931
10932 Example
10933 <- { "event": "DUMP_COMPLETED",
10934 "data": { "result": { "total": 1090650112, "status": "completed",
10935 "completed": 1090650112 } },
10936 "timestamp": { "seconds": 1648244171, "microseconds": 950316 } }
10937
10938 DumpGuestMemoryCapability (Object)
10939 A list of the available formats for dump-guest-memory
10940
10941 Members
10942 formats: array of DumpGuestMemoryFormat
10943 Not documented
10944
10945 Since
10946 2.0
10947
10948 query-dump-guest-memory-capability (Command)
10949 Returns the available formats for dump-guest-memory
10950
10951 Returns
10952 A DumpGuestMemoryCapability object listing available formats for
10953 dump-guest-memory
10954
10955 Since
10956 2.0
10957
10958 Example
10959 -> { "execute": "query-dump-guest-memory-capability" }
10960 <- { "return": { "formats":
10961 ["elf", "kdump-zlib", "kdump-lzo", "kdump-snappy"] } }
10962
10964 set_link (Command)
10965 Sets the link status of a virtual network adapter.
10966
10967 Arguments
10968 name: string
10969 the device name of the virtual network adapter
10970
10971 up: boolean
10972 true to set the link status to be up
10973
10974 Returns
10975 Nothing on success If name is not a valid network device, DeviceNot‐
10976 Found
10977
10978 Since
10979 0.14
10980
10981 Notes
10982 Not all network adapters support setting link status. This command
10983 will succeed even if the network adapter does not support link status
10984 notification.
10985
10986 Example
10987 -> { "execute": "set_link",
10988 "arguments": { "name": "e1000.0", "up": false } }
10989 <- { "return": {} }
10990
10991 netdev_add (Command)
10992 Add a network backend.
10993
10994 Additional arguments depend on the type.
10995
10996 Arguments
10997 The members of Netdev
10998
10999 Since
11000 0.14
11001
11002 Returns
11003 Nothing on success If type is not a valid network backend, DeviceNot‐
11004 Found
11005
11006 Example
11007 -> { "execute": "netdev_add",
11008 "arguments": { "type": "user", "id": "netdev1",
11009 "dnssearch": [ { "str": "example.org" } ] } }
11010 <- { "return": {} }
11011
11012 netdev_del (Command)
11013 Remove a network backend.
11014
11015 Arguments
11016 id: string
11017 the name of the network backend to remove
11018
11019 Returns
11020 Nothing on success If id is not a valid network backend, DeviceNotFound
11021
11022 Since
11023 0.14
11024
11025 Example
11026 -> { "execute": "netdev_del", "arguments": { "id": "netdev1" } }
11027 <- { "return": {} }
11028
11029 NetLegacyNicOptions (Object)
11030 Create a new Network Interface Card.
11031
11032 Members
11033 netdev: string (optional)
11034 id of -netdev to connect to
11035
11036 macaddr: string (optional)
11037 MAC address
11038
11039 model: string (optional)
11040 device model (e1000, rtl8139, virtio etc.)
11041
11042 addr: string (optional)
11043 PCI device address
11044
11045 vectors: int (optional)
11046 number of MSI-x vectors, 0 to disable MSI-X
11047
11048 Since
11049 1.2
11050
11051 NetdevUserOptions (Object)
11052 Use the user mode network stack which requires no administrator privi‐
11053 lege to run.
11054
11055 Members
11056 hostname: string (optional)
11057 client hostname reported by the builtin DHCP server
11058
11059 restrict: boolean (optional)
11060 isolate the guest from the host
11061
11062 ipv4: boolean (optional)
11063 whether to support IPv4, default true for enabled (since 2.6)
11064
11065 ipv6: boolean (optional)
11066 whether to support IPv6, default true for enabled (since 2.6)
11067
11068 ip: string (optional)
11069 legacy parameter, use net= instead
11070
11071 net: string (optional)
11072 IP network address that the guest will see, in the form
11073 addr[/netmask] The netmask is optional, and can be either in the
11074 form a.b.c.d or as a number of valid top-most bits. Default is
11075 10.0.2.0/24.
11076
11077 host: string (optional)
11078 guest-visible address of the host
11079
11080 tftp: string (optional)
11081 root directory of the built-in TFTP server
11082
11083 bootfile: string (optional)
11084 BOOTP filename, for use with tftp=
11085
11086 dhcpstart: string (optional)
11087 the first of the 16 IPs the built-in DHCP server can assign
11088
11089 dns: string (optional)
11090 guest-visible address of the virtual nameserver
11091
11092 dnssearch: array of String (optional)
11093 list of DNS suffixes to search, passed as DHCP option to the
11094 guest
11095
11096 domainname: string (optional)
11097 guest-visible domain name of the virtual nameserver (since 3.0)
11098
11099 ipv6-prefix: string (optional)
11100 IPv6 network prefix (default is fec0::) (since 2.6). The network
11101 prefix is given in the usual hexadecimal IPv6 address notation.
11102
11103 ipv6-prefixlen: int (optional)
11104 IPv6 network prefix length (default is 64) (since 2.6)
11105
11106 ipv6-host: string (optional)
11107 guest-visible IPv6 address of the host (since 2.6)
11108
11109 ipv6-dns: string (optional)
11110 guest-visible IPv6 address of the virtual nameserver (since 2.6)
11111
11112 smb: string (optional)
11113 root directory of the built-in SMB server
11114
11115 smbserver: string (optional)
11116 IP address of the built-in SMB server
11117
11118 hostfwd: array of String (optional)
11119 redirect incoming TCP or UDP host connections to guest endpoints
11120
11121 guestfwd: array of String (optional)
11122 forward guest TCP connections
11123
11124 tftp-server-name: string (optional)
11125 RFC2132 "TFTP server name" string (Since 3.1)
11126
11127 Since
11128 1.2
11129
11130 NetdevTapOptions (Object)
11131 Used to configure a host TAP network interface backend.
11132
11133 Members
11134 ifname: string (optional)
11135 interface name
11136
11137 fd: string (optional)
11138 file descriptor of an already opened tap
11139
11140 fds: string (optional)
11141 multiple file descriptors of already opened multiqueue capable
11142 tap
11143
11144 script: string (optional)
11145 script to initialize the interface
11146
11147 downscript: string (optional)
11148 script to shut down the interface
11149
11150 br: string (optional)
11151 bridge name (since 2.8)
11152
11153 helper: string (optional)
11154 command to execute to configure bridge
11155
11156 sndbuf: int (optional)
11157 send buffer limit. Understands [TGMKkb] suffixes.
11158
11159 vnet_hdr: boolean (optional)
11160 enable the IFF_VNET_HDR flag on the tap interface
11161
11162 vhost: boolean (optional)
11163 enable vhost-net network accelerator
11164
11165 vhostfd: string (optional)
11166 file descriptor of an already opened vhost net device
11167
11168 vhostfds: string (optional)
11169 file descriptors of multiple already opened vhost net devices
11170
11171 vhostforce: boolean (optional)
11172 vhost on for non-MSIX virtio guests
11173
11174 queues: int (optional)
11175 number of queues to be created for multiqueue capable tap
11176
11177 poll-us: int (optional)
11178 maximum number of microseconds that could be spent on busy
11179 polling for tap (since 2.7)
11180
11181 Since
11182 1.2
11183
11184 NetdevSocketOptions (Object)
11185 Socket netdevs are used to establish a network connection to another
11186 QEMU virtual machine via a TCP socket.
11187
11188 Members
11189 fd: string (optional)
11190 file descriptor of an already opened socket
11191
11192 listen: string (optional)
11193 port number, and optional hostname, to listen on
11194
11195 connect: string (optional)
11196 port number, and optional hostname, to connect to
11197
11198 mcast: string (optional)
11199 UDP multicast address and port number
11200
11201 localaddr: string (optional)
11202 source address and port for multicast and udp packets
11203
11204 udp: string (optional)
11205 UDP unicast address and port number
11206
11207 Since
11208 1.2
11209
11210 NetdevL2TPv3Options (Object)
11211 Configure an Ethernet over L2TPv3 tunnel.
11212
11213 Members
11214 src: string
11215 source address
11216
11217 dst: string
11218 destination address
11219
11220 srcport: string (optional)
11221 source port - mandatory for udp, optional for ip
11222
11223 dstport: string (optional)
11224 destination port - mandatory for udp, optional for ip
11225
11226 ipv6: boolean (optional)
11227 force the use of ipv6
11228
11229 udp: boolean (optional)
11230 use the udp version of l2tpv3 encapsulation
11231
11232 cookie64: boolean (optional)
11233 use 64 bit cookies
11234
11235 counter: boolean (optional)
11236 have sequence counter
11237
11238 pincounter: boolean (optional)
11239 pin sequence counter to zero - workaround for buggy implementa‐
11240 tions or networks with packet reorder
11241
11242 txcookie: int (optional)
11243 32 or 64 bit transmit cookie
11244
11245 rxcookie: int (optional)
11246 32 or 64 bit receive cookie
11247
11248 txsession: int
11249 32 bit transmit session
11250
11251 rxsession: int (optional)
11252 32 bit receive session - if not specified set to the same value
11253 as transmit
11254
11255 offset: int (optional)
11256 additional offset - allows the insertion of additional applica‐
11257 tion-specific data before the packet payload
11258
11259 Since
11260 2.1
11261
11262 NetdevVdeOptions (Object)
11263 Connect to a vde switch running on the host.
11264
11265 Members
11266 sock: string (optional)
11267 socket path
11268
11269 port: int (optional)
11270 port number
11271
11272 group: string (optional)
11273 group owner of socket
11274
11275 mode: int (optional)
11276 permissions for socket
11277
11278 Since
11279 1.2
11280
11281 NetdevBridgeOptions (Object)
11282 Connect a host TAP network interface to a host bridge device.
11283
11284 Members
11285 br: string (optional)
11286 bridge name
11287
11288 helper: string (optional)
11289 command to execute to configure bridge
11290
11291 Since
11292 1.2
11293
11294 NetdevHubPortOptions (Object)
11295 Connect two or more net clients through a software hub.
11296
11297 Members
11298 hubid: int
11299 hub identifier number
11300
11301 netdev: string (optional)
11302 used to connect hub to a netdev instead of a device (since 2.12)
11303
11304 Since
11305 1.2
11306
11307 NetdevNetmapOptions (Object)
11308 Connect a client to a netmap-enabled NIC or to a VALE switch port
11309
11310 Members
11311 ifname: string
11312 Either the name of an existing network interface supported by
11313 netmap, or the name of a VALE port (created on the fly). A VALE
11314 port name is in the form 'valeXXX:YYY', where XXX and YYY are
11315 non-negative integers. XXX identifies a switch and YYY identi‐
11316 fies a port of the switch. VALE ports having the same XXX are
11317 therefore connected to the same switch.
11318
11319 devname: string (optional)
11320 path of the netmap device (default: '/dev/netmap').
11321
11322 Since
11323 2.0
11324
11325 NetdevVhostUserOptions (Object)
11326 Vhost-user network backend
11327
11328 Members
11329 chardev: string
11330 name of a unix socket chardev
11331
11332 vhostforce: boolean (optional)
11333 vhost on for non-MSIX virtio guests (default: false).
11334
11335 queues: int (optional)
11336 number of queues to be created for multiqueue vhost-user (de‐
11337 fault: 1) (Since 2.5)
11338
11339 Since
11340 2.1
11341
11342 NetdevVhostVDPAOptions (Object)
11343 Vhost-vdpa network backend
11344
11345 vDPA device is a device that uses a datapath which complies with the
11346 virtio specifications with a vendor specific control path.
11347
11348 Members
11349 vhostdev: string (optional)
11350 path of vhost-vdpa device (default:'/dev/vhost-vdpa-0')
11351
11352 vhostfd: string (optional)
11353 file descriptor of an already opened vhost vdpa device
11354
11355 queues: int (optional)
11356 number of queues to be created for multiqueue vhost-vdpa (de‐
11357 fault: 1)
11358
11359 x-svq: boolean (optional)
11360 Start device with (experimental) shadow virtqueue. (Since 7.1)
11361 (default: false)
11362
11363 Features
11364 unstable
11365 Member x-svq is experimental.
11366
11367 Since
11368 5.1
11369
11370 NetdevVmnetHostOptions (Object)
11371 vmnet (host mode) network backend.
11372
11373 Allows the vmnet interface to communicate with other vmnet interfaces
11374 that are in host mode and also with the host.
11375
11376 Members
11377 start-address: string (optional)
11378 The starting IPv4 address to use for the interface. Must be in
11379 the private IP range (RFC 1918). Must be specified along with
11380 end-address and subnet-mask. This address is used as the gate‐
11381 way address. The subsequent address up to and including end-ad‐
11382 dress are placed in the DHCP pool.
11383
11384 end-address: string (optional)
11385 The DHCP IPv4 range end address to use for the interface. Must
11386 be in the private IP range (RFC 1918). Must be specified along
11387 with start-address and subnet-mask.
11388
11389 subnet-mask: string (optional)
11390 The IPv4 subnet mask to use on the interface. Must be specified
11391 along with start-address and subnet-mask.
11392
11393 isolated: boolean (optional)
11394 Enable isolation for this interface. Interface isolation ensures
11395 that vmnet interface is not able to communicate with any other
11396 vmnet interfaces. Only communication with host is allowed. Re‐
11397 quires at least macOS Big Sur 11.0.
11398
11399 net-uuid: string (optional)
11400 The identifier (UUID) to uniquely identify the isolated network
11401 vmnet interface should be added to. If set, no DHCP service is
11402 provided for this interface and network communication is allowed
11403 only with other interfaces added to this network identified by
11404 the UUID. Requires at least macOS Big Sur 11.0.
11405
11406 Since
11407 7.1
11408
11409 If
11410 CONFIG_VMNET
11411
11412 NetdevVmnetSharedOptions (Object)
11413 vmnet (shared mode) network backend.
11414
11415 Allows traffic originating from the vmnet interface to reach the Inter‐
11416 net through a network address translator (NAT). The vmnet interface
11417 can communicate with the host and with other shared mode interfaces on
11418 the same subnet. If no DHCP settings, subnet mask and IPv6 prefix spec‐
11419 ified, the interface can communicate with any of other interfaces in
11420 shared mode.
11421
11422 Members
11423 start-address: string (optional)
11424 The starting IPv4 address to use for the interface. Must be in
11425 the private IP range (RFC 1918). Must be specified along with
11426 end-address and subnet-mask. This address is used as the gate‐
11427 way address. The subsequent address up to and including end-ad‐
11428 dress are placed in the DHCP pool.
11429
11430 end-address: string (optional)
11431 The DHCP IPv4 range end address to use for the interface. Must
11432 be in the private IP range (RFC 1918). Must be specified along
11433 with start-address and subnet-mask.
11434
11435 subnet-mask: string (optional)
11436
11437 The IPv4 subnet mask to use on the interface. Must
11438 be specified along with start-address and subnet-mask.
11439
11440 isolated: boolean (optional)
11441 Enable isolation for this interface. Interface isolation ensures
11442 that vmnet interface is not able to communicate with any other
11443 vmnet interfaces. Only communication with host is allowed. Re‐
11444 quires at least macOS Big Sur 11.0.
11445
11446 nat66-prefix: string (optional)
11447 The IPv6 prefix to use into guest network. Must be a unique lo‐
11448 cal address i.e. start with fd00::/8 and have length of 64.
11449
11450 Since
11451 7.1
11452
11453 If
11454 CONFIG_VMNET
11455
11456 NetdevVmnetBridgedOptions (Object)
11457 vmnet (bridged mode) network backend.
11458
11459 Bridges the vmnet interface with a physical network interface.
11460
11461 Members
11462 ifname: string
11463 The name of the physical interface to be bridged.
11464
11465 isolated: boolean (optional)
11466 Enable isolation for this interface. Interface isolation ensures
11467 that vmnet interface is not able to communicate with any other
11468 vmnet interfaces. Only communication with host is allowed. Re‐
11469 quires at least macOS Big Sur 11.0.
11470
11471 Since
11472 7.1
11473
11474 If
11475 CONFIG_VMNET
11476
11477 NetdevStreamOptions (Object)
11478 Configuration info for stream socket netdev
11479
11480 Members
11481 addr: SocketAddress
11482 socket address to listen on (server=true) or connect to
11483 (server=false)
11484
11485 server: boolean (optional)
11486 create server socket (default: false)
11487 Only SocketAddress types 'unix', 'inet' and 'fd' are supported.
11488
11489 Since
11490 7.2
11491
11492 NetdevDgramOptions (Object)
11493 Configuration info for datagram socket netdev.
11494
11495 Members
11496 remote: SocketAddress (optional)
11497 remote address
11498
11499 local: SocketAddress (optional)
11500 local address
11501 Only SocketAddress types 'unix', 'inet' and 'fd' are supported.
11502
11503 If remote address is present and it's a multicast address, local ad‐
11504 dress is optional. Otherwise local address is required and remote ad‐
11505 dress is optional.
11506
11507 Valid parameters combination table
11508 ┌──────────────┬─────────┬───────┐
11509 │remote │ local │ okay? │
11510 ├──────────────┼─────────┼───────┤
11511 │absent │ absent │ no │
11512 ├──────────────┼─────────┼───────┤
11513 │absent │ not fd │ no │
11514 ├──────────────┼─────────┼───────┤
11515 │absent │ fd │ yes │
11516 ├──────────────┼─────────┼───────┤
11517 │multicast │ absent │ yes │
11518 ├──────────────┼─────────┼───────┤
11519 │multicast │ present │ yes │
11520 ├──────────────┼─────────┼───────┤
11521 │not multicast │ absent │ no │
11522 ├──────────────┼─────────┼───────┤
11523 │not multicast │ present │ yes │
11524 └──────────────┴─────────┴───────┘
11525
11526 Since
11527 7.2
11528
11529 NetClientDriver (Enum)
11530 Available netdev drivers.
11531
11532 Values
11533 none Not documented
11534
11535 nic Not documented
11536
11537 user Not documented
11538
11539 tap Not documented
11540
11541 l2tpv3 Not documented
11542
11543 socket Not documented
11544
11545 stream Not documented
11546
11547 dgram Not documented
11548
11549 vde Not documented
11550
11551 bridge Not documented
11552
11553 hubport
11554 Not documented
11555
11556 netmap Not documented
11557
11558 vhost-user
11559 Not documented
11560
11561 vhost-vdpa
11562 Not documented
11563
11564 vmnet-host (If: CONFIG_VMNET)
11565 Not documented
11566
11567 vmnet-shared (If: CONFIG_VMNET)
11568 Not documented
11569
11570 vmnet-bridged (If: CONFIG_VMNET)
11571 Not documented
11572
11573 Since
11574 2.7
11575
11576 vhost-vdpa since 5.1 vmnet-host since 7.1 vmnet-shared since 7.1 vm‐
11577 net-bridged since 7.1 stream since 7.2 dgram since 7.2
11578
11579 Netdev (Object)
11580 Captures the configuration of a network device.
11581
11582 Members
11583 id: string
11584 identifier for monitor commands.
11585
11586 type: NetClientDriver
11587 Specify the driver used for interpreting remaining arguments.
11588
11589 The members of NetLegacyNicOptions when type is "nic"
11590
11591 The members of NetdevUserOptions when type is "user"
11592
11593 The members of NetdevTapOptions when type is "tap"
11594
11595 The members of NetdevL2TPv3Options when type is "l2tpv3"
11596
11597 The members of NetdevSocketOptions when type is "socket"
11598
11599 The members of NetdevStreamOptions when type is "stream"
11600
11601 The members of NetdevDgramOptions when type is "dgram"
11602
11603 The members of NetdevVdeOptions when type is "vde"
11604
11605 The members of NetdevBridgeOptions when type is "bridge"
11606
11607 The members of NetdevHubPortOptions when type is "hubport"
11608
11609 The members of NetdevNetmapOptions when type is "netmap"
11610
11611 The members of NetdevVhostUserOptions when type is "vhost-user"
11612
11613 The members of NetdevVhostVDPAOptions when type is "vhost-vdpa"
11614
11615 The members of NetdevVmnetHostOptions when type is "vmnet-host" (If:
11616 CONFIG_VMNET)
11617
11618 The members of NetdevVmnetSharedOptions when type is "vmnet-shared"
11619 (If: CONFIG_VMNET)
11620
11621 The members of NetdevVmnetBridgedOptions when type is "vmnet-bridged"
11622 (If: CONFIG_VMNET)
11623
11624 Since
11625 1.2
11626
11627 'l2tpv3' - since 2.1 'vmnet-host' - since 7.1 'vmnet-shared' - since
11628 7.1 'vmnet-bridged' - since 7.1 'stream' since 7.2 'dgram' since 7.2
11629
11630 RxState (Enum)
11631 Packets receiving state
11632
11633 Values
11634 normal filter assigned packets according to the mac-table
11635
11636 none don't receive any assigned packet
11637
11638 all receive all assigned packets
11639
11640 Since
11641 1.6
11642
11643 RxFilterInfo (Object)
11644 Rx-filter information for a NIC.
11645
11646 Members
11647 name: string
11648 net client name
11649
11650 promiscuous: boolean
11651 whether promiscuous mode is enabled
11652
11653 multicast: RxState
11654 multicast receive state
11655
11656 unicast: RxState
11657 unicast receive state
11658
11659 vlan: RxState
11660 vlan receive state (Since 2.0)
11661
11662 broadcast-allowed: boolean
11663 whether to receive broadcast
11664
11665 multicast-overflow: boolean
11666 multicast table is overflowed or not
11667
11668 unicast-overflow: boolean
11669 unicast table is overflowed or not
11670
11671 main-mac: string
11672 the main macaddr string
11673
11674 vlan-table: array of int
11675 a list of active vlan id
11676
11677 unicast-table: array of string
11678 a list of unicast macaddr string
11679
11680 multicast-table: array of string
11681 a list of multicast macaddr string
11682
11683 Since
11684 1.6
11685
11686 query-rx-filter (Command)
11687 Return rx-filter information for all NICs (or for the given NIC).
11688
11689 Arguments
11690 name: string (optional)
11691 net client name
11692
11693 Returns
11694 list of RxFilterInfo for all NICs (or for the given NIC). Returns an
11695 error if the given name doesn't exist, or given NIC doesn't support
11696 rx-filter querying, or given net client isn't a NIC.
11697
11698 Since
11699 1.6
11700
11701 Example
11702 -> { "execute": "query-rx-filter", "arguments": { "name": "vnet0" } }
11703 <- { "return": [
11704 {
11705 "promiscuous": true,
11706 "name": "vnet0",
11707 "main-mac": "52:54:00:12:34:56",
11708 "unicast": "normal",
11709 "vlan": "normal",
11710 "vlan-table": [
11711 4,
11712 0
11713 ],
11714 "unicast-table": [
11715 ],
11716 "multicast": "normal",
11717 "multicast-overflow": false,
11718 "unicast-overflow": false,
11719 "multicast-table": [
11720 "01:00:5e:00:00:01",
11721 "33:33:00:00:00:01",
11722 "33:33:ff:12:34:56"
11723 ],
11724 "broadcast-allowed": false
11725 }
11726 ]
11727 }
11728
11729 NIC_RX_FILTER_CHANGED (Event)
11730 Emitted once until the 'query-rx-filter' command is executed, the first
11731 event will always be emitted
11732
11733 Arguments
11734 name: string (optional)
11735 net client name
11736
11737 path: string
11738 device path
11739
11740 Since
11741 1.6
11742
11743 Example
11744 <- { "event": "NIC_RX_FILTER_CHANGED",
11745 "data": { "name": "vnet0",
11746 "path": "/machine/peripheral/vnet0/virtio-backend" },
11747 "timestamp": { "seconds": 1368697518, "microseconds": 326866 } }
11748
11749 AnnounceParameters (Object)
11750 Parameters for self-announce timers
11751
11752 Members
11753 initial: int
11754 Initial delay (in ms) before sending the first GARP/RARP an‐
11755 nouncement
11756
11757 max: int
11758 Maximum delay (in ms) between GARP/RARP announcement packets
11759
11760 rounds: int
11761 Number of self-announcement attempts
11762
11763 step: int
11764 Delay increase (in ms) after each self-announcement attempt
11765
11766 interfaces: array of string (optional)
11767 An optional list of interface names, which restricts the an‐
11768 nouncement to the listed interfaces. (Since 4.1)
11769
11770 id: string (optional)
11771 A name to be used to identify an instance of announce-timers and
11772 to allow it to modified later. Not for use as part of the mi‐
11773 gration parameters. (Since 4.1)
11774
11775 Since
11776 4.0
11777
11778 announce-self (Command)
11779 Trigger generation of broadcast RARP frames to update network switches.
11780 This can be useful when network bonds fail-over the active slave.
11781
11782 Arguments
11783 The members of AnnounceParameters
11784
11785 Example
11786 -> { "execute": "announce-self",
11787 "arguments": {
11788 "initial": 50, "max": 550, "rounds": 10, "step": 50,
11789 "interfaces": ["vn2", "vn3"], "id": "bob" } }
11790 <- { "return": {} }
11791
11792 Since
11793 4.0
11794
11795 FAILOVER_NEGOTIATED (Event)
11796 Emitted when VIRTIO_NET_F_STANDBY was enabled during feature negotia‐
11797 tion. Failover primary devices which were hidden (not hotplugged when
11798 requested) before will now be hotplugged by the virtio-net standby de‐
11799 vice.
11800
11801 Arguments
11802 device-id: string
11803 QEMU device id of the unplugged device
11804
11805 Since
11806 4.2
11807
11808 Example
11809 <- { "event": "FAILOVER_NEGOTIATED",
11810 "data": { "device-id": "net1" },
11811 "timestamp": { "seconds": 1368697518, "microseconds": 326866 } }
11812
11813 NETDEV_STREAM_CONNECTED (Event)
11814 Emitted when the netdev stream backend is connected
11815
11816 Arguments
11817 netdev-id: string
11818 QEMU netdev id that is connected
11819
11820 addr: SocketAddress
11821 The destination address
11822
11823 Since
11824 7.2
11825
11826 Example
11827 <- { "event": "NETDEV_STREAM_CONNECTED",
11828 "data": { "netdev-id": "netdev0",
11829 "addr": { "port": "47666", "ipv6": true,
11830 "host": "::1", "type": "inet" } },
11831 "timestamp": { "seconds": 1666269863, "microseconds": 311222 } }
11832
11833 or
11834
11835 <- { "event": "NETDEV_STREAM_CONNECTED",
11836 "data": { "netdev-id": "netdev0",
11837 "addr": { "path": "/tmp/qemu0", "type": "unix" } },
11838 "timestamp": { "seconds": 1666269706, "microseconds": 413651 } }
11839
11840 NETDEV_STREAM_DISCONNECTED (Event)
11841 Emitted when the netdev stream backend is disconnected
11842
11843 Arguments
11844 netdev-id: string
11845 QEMU netdev id that is disconnected
11846
11847 Since
11848 7.2
11849
11850 Example
11851 <- { 'event': 'NETDEV_STREAM_DISCONNECTED',
11852 'data': {'netdev-id': 'netdev0'},
11853 'timestamp': {'seconds': 1663330937, 'microseconds': 526695} }
11854
11856 RDMA_GID_STATUS_CHANGED (Event)
11857 Emitted when guest driver adds/deletes GID to/from device
11858
11859 Arguments
11860 netdev: string
11861 RoCE Network Device name
11862
11863 gid-status: boolean
11864 Add or delete indication
11865
11866 subnet-prefix: int
11867 Subnet Prefix
11868
11869 interface-id: int
11870 Not documented
11871 interface-id : Interface ID
11872
11873 Since
11874 4.0
11875
11876 Example
11877 <- {"timestamp": {"seconds": 1541579657, "microseconds": 986760},
11878 "event": "RDMA_GID_STATUS_CHANGED",
11879 "data":
11880 {"netdev": "bridge0",
11881 "interface-id": 15880512517475447892,
11882 "gid-status": true,
11883 "subnet-prefix": 33022}}
11884
11886 RockerSwitch (Object)
11887 Rocker switch information.
11888
11889 Members
11890 name: string
11891 switch name
11892
11893 id: int
11894 switch ID
11895
11896 ports: int
11897 number of front-panel ports
11898
11899 Since
11900 2.4
11901
11902 query-rocker (Command)
11903 Return rocker switch information.
11904
11905 Arguments
11906 name: string
11907 Not documented
11908
11909 Returns
11910 Rocker information
11911
11912 Since
11913 2.4
11914
11915 Example
11916 -> { "execute": "query-rocker", "arguments": { "name": "sw1" } }
11917 <- { "return": {"name": "sw1", "ports": 2, "id": 1327446905938}}
11918
11919 RockerPortDuplex (Enum)
11920 An eumeration of port duplex states.
11921
11922 Values
11923 half half duplex
11924
11925 full full duplex
11926
11927 Since
11928 2.4
11929
11930 RockerPortAutoneg (Enum)
11931 An eumeration of port autoneg states.
11932
11933 Values
11934 off autoneg is off
11935
11936 on autoneg is on
11937
11938 Since
11939 2.4
11940
11941 RockerPort (Object)
11942 Rocker switch port information.
11943
11944 Members
11945 name: string
11946 port name
11947
11948 enabled: boolean
11949 port is enabled for I/O
11950
11951 link-up: boolean
11952 physical link is UP on port
11953
11954 speed: int
11955 port link speed in Mbps
11956
11957 duplex: RockerPortDuplex
11958 port link duplex
11959
11960 autoneg: RockerPortAutoneg
11961 port link autoneg
11962
11963 Since
11964 2.4
11965
11966 query-rocker-ports (Command)
11967 Return rocker switch port information.
11968
11969 Arguments
11970 name: string
11971 Not documented
11972
11973 Returns
11974 a list of RockerPort information
11975
11976 Since
11977 2.4
11978
11979 Example
11980 -> { "execute": "query-rocker-ports", "arguments": { "name": "sw1" } }
11981 <- { "return": [ {"duplex": "full", "enabled": true, "name": "sw1.1",
11982 "autoneg": "off", "link-up": true, "speed": 10000},
11983 {"duplex": "full", "enabled": true, "name": "sw1.2",
11984 "autoneg": "off", "link-up": true, "speed": 10000}
11985 ]}
11986
11987 RockerOfDpaFlowKey (Object)
11988 Rocker switch OF-DPA flow key
11989
11990 Members
11991 priority: int
11992 key priority, 0 being lowest priority
11993
11994 tbl-id: int
11995 flow table ID
11996
11997 in-pport: int (optional)
11998 physical input port
11999
12000 tunnel-id: int (optional)
12001 tunnel ID
12002
12003 vlan-id: int (optional)
12004 VLAN ID
12005
12006 eth-type: int (optional)
12007 Ethernet header type
12008
12009 eth-src: string (optional)
12010 Ethernet header source MAC address
12011
12012 eth-dst: string (optional)
12013 Ethernet header destination MAC address
12014
12015 ip-proto: int (optional)
12016 IP Header protocol field
12017
12018 ip-tos: int (optional)
12019 IP header TOS field
12020
12021 ip-dst: string (optional)
12022 IP header destination address
12023
12024 Note
12025 optional members may or may not appear in the flow key depending if
12026 they're relevant to the flow key.
12027
12028 Since
12029 2.4
12030
12031 RockerOfDpaFlowMask (Object)
12032 Rocker switch OF-DPA flow mask
12033
12034 Members
12035 in-pport: int (optional)
12036 physical input port
12037
12038 tunnel-id: int (optional)
12039 tunnel ID
12040
12041 vlan-id: int (optional)
12042 VLAN ID
12043
12044 eth-src: string (optional)
12045 Ethernet header source MAC address
12046
12047 eth-dst: string (optional)
12048 Ethernet header destination MAC address
12049
12050 ip-proto: int (optional)
12051 IP Header protocol field
12052
12053 ip-tos: int (optional)
12054 IP header TOS field
12055
12056 Note
12057 optional members may or may not appear in the flow mask depending if
12058 they're relevant to the flow mask.
12059
12060 Since
12061 2.4
12062
12063 RockerOfDpaFlowAction (Object)
12064 Rocker switch OF-DPA flow action
12065
12066 Members
12067 goto-tbl: int (optional)
12068 next table ID
12069
12070 group-id: int (optional)
12071 group ID
12072
12073 tunnel-lport: int (optional)
12074 tunnel logical port ID
12075
12076 vlan-id: int (optional)
12077 VLAN ID
12078
12079 new-vlan-id: int (optional)
12080 new VLAN ID
12081
12082 out-pport: int (optional)
12083 physical output port
12084
12085 Note
12086 optional members may or may not appear in the flow action depending if
12087 they're relevant to the flow action.
12088
12089 Since
12090 2.4
12091
12092 RockerOfDpaFlow (Object)
12093 Rocker switch OF-DPA flow
12094
12095 Members
12096 cookie: int
12097 flow unique cookie ID
12098
12099 hits: int
12100 count of matches (hits) on flow
12101
12102 key: RockerOfDpaFlowKey
12103 flow key
12104
12105 mask: RockerOfDpaFlowMask
12106 flow mask
12107
12108 action: RockerOfDpaFlowAction
12109 flow action
12110
12111 Since
12112 2.4
12113
12114 query-rocker-of-dpa-flows (Command)
12115 Return rocker OF-DPA flow information.
12116
12117 Arguments
12118 name: string
12119 switch name
12120
12121 tbl-id: int (optional)
12122 flow table ID. If tbl-id is not specified, returns flow infor‐
12123 mation for all tables.
12124
12125 Returns
12126 rocker OF-DPA flow information
12127
12128 Since
12129 2.4
12130
12131 Example
12132 -> { "execute": "query-rocker-of-dpa-flows",
12133 "arguments": { "name": "sw1" } }
12134 <- { "return": [ {"key": {"in-pport": 0, "priority": 1, "tbl-id": 0},
12135 "hits": 138,
12136 "cookie": 0,
12137 "action": {"goto-tbl": 10},
12138 "mask": {"in-pport": 4294901760}
12139 },
12140 {...more...},
12141 ]}
12142
12143 RockerOfDpaGroup (Object)
12144 Rocker switch OF-DPA group
12145
12146 Members
12147 id: int
12148 group unique ID
12149
12150 type: int
12151 group type
12152
12153 vlan-id: int (optional)
12154 VLAN ID
12155
12156 pport: int (optional)
12157 physical port number
12158
12159 index: int (optional)
12160 group index, unique with group type
12161
12162 out-pport: int (optional)
12163 output physical port number
12164
12165 group-id: int (optional)
12166 next group ID
12167
12168 set-vlan-id: int (optional)
12169 VLAN ID to set
12170
12171 pop-vlan: int (optional)
12172 pop VLAN headr from packet
12173
12174 group-ids: array of int (optional)
12175 list of next group IDs
12176
12177 set-eth-src: string (optional)
12178 set source MAC address in Ethernet header
12179
12180 set-eth-dst: string (optional)
12181 set destination MAC address in Ethernet header
12182
12183 ttl-check: int (optional)
12184 perform TTL check
12185
12186 Note
12187 optional members may or may not appear in the group depending if
12188 they're relevant to the group type.
12189
12190 Since
12191 2.4
12192
12193 query-rocker-of-dpa-groups (Command)
12194 Return rocker OF-DPA group information.
12195
12196 Arguments
12197 name: string
12198 switch name
12199
12200 type: int (optional)
12201 group type. If type is not specified, returns group information
12202 for all group types.
12203
12204 Returns
12205 rocker OF-DPA group information
12206
12207 Since
12208 2.4
12209
12210 Example
12211 -> { "execute": "query-rocker-of-dpa-groups",
12212 "arguments": { "name": "sw1" } }
12213 <- { "return": [ {"type": 0, "out-pport": 2,
12214 "pport": 2, "vlan-id": 3841,
12215 "pop-vlan": 1, "id": 251723778},
12216 {"type": 0, "out-pport": 0,
12217 "pport": 0, "vlan-id": 3841,
12218 "pop-vlan": 1, "id": 251723776},
12219 {"type": 0, "out-pport": 1,
12220 "pport": 1, "vlan-id": 3840,
12221 "pop-vlan": 1, "id": 251658241},
12222 {"type": 0, "out-pport": 0,
12223 "pport": 0, "vlan-id": 3840,
12224 "pop-vlan": 1, "id": 251658240}
12225 ]}
12226
12228 TpmModel (Enum)
12229 An enumeration of TPM models
12230
12231 Values
12232 tpm-tis
12233 TPM TIS model
12234
12235 tpm-crb
12236 TPM CRB model (since 2.12)
12237
12238 tpm-spapr
12239 TPM SPAPR model (since 5.0)
12240
12241 Since
12242 1.5
12243
12244 If
12245 CONFIG_TPM
12246
12247 query-tpm-models (Command)
12248 Return a list of supported TPM models
12249
12250 Returns
12251 a list of TpmModel
12252
12253 Since
12254 1.5
12255
12256 Example
12257 -> { "execute": "query-tpm-models" }
12258 <- { "return": [ "tpm-tis", "tpm-crb", "tpm-spapr" ] }
12259
12260 If
12261 CONFIG_TPM
12262
12263 TpmType (Enum)
12264 An enumeration of TPM types
12265
12266 Values
12267 passthrough
12268 TPM passthrough type
12269
12270 emulator
12271 Software Emulator TPM type Since: 2.11
12272
12273 Since
12274 1.5
12275
12276 If
12277 CONFIG_TPM
12278
12279 query-tpm-types (Command)
12280 Return a list of supported TPM types
12281
12282 Returns
12283 a list of TpmType
12284
12285 Since
12286 1.5
12287
12288 Example
12289 -> { "execute": "query-tpm-types" }
12290 <- { "return": [ "passthrough", "emulator" ] }
12291
12292 If
12293 CONFIG_TPM
12294
12295 TPMPassthroughOptions (Object)
12296 Information about the TPM passthrough type
12297
12298 Members
12299 path: string (optional)
12300 string describing the path used for accessing the TPM device
12301
12302 cancel-path: string (optional)
12303 string showing the TPM's sysfs cancel file for cancellation of
12304 TPM commands while they are executing
12305
12306 Since
12307 1.5
12308
12309 If
12310 CONFIG_TPM
12311
12312 TPMEmulatorOptions (Object)
12313 Information about the TPM emulator type
12314
12315 Members
12316 chardev: string
12317 Name of a unix socket chardev
12318
12319 Since
12320 2.11
12321
12322 If
12323 CONFIG_TPM
12324
12325 TPMPassthroughOptionsWrapper (Object)
12326 Members
12327 data: TPMPassthroughOptions
12328 Not documented
12329
12330 Since
12331 1.5
12332
12333 If
12334 CONFIG_TPM
12335
12336 TPMEmulatorOptionsWrapper (Object)
12337 Members
12338 data: TPMEmulatorOptions
12339 Not documented
12340
12341 Since
12342 2.11
12343
12344 If
12345 CONFIG_TPM
12346
12347 TpmTypeOptions (Object)
12348 A union referencing different TPM backend types' configuration options
12349
12350 Members
12351 type: TpmType
12352
12353 • 'passthrough' The configuration options for the TPM
12354 passthrough type
12355
12356 • 'emulator' The configuration options for TPM emulator backend
12357 type
12358
12359 The members of TPMPassthroughOptionsWrapper when type is "passthrough"
12360
12361 The members of TPMEmulatorOptionsWrapper when type is "emulator"
12362
12363 Since
12364 1.5
12365
12366 If
12367 CONFIG_TPM
12368
12369 TPMInfo (Object)
12370 Information about the TPM
12371
12372 Members
12373 id: string
12374 The Id of the TPM
12375
12376 model: TpmModel
12377 The TPM frontend model
12378
12379 options: TpmTypeOptions
12380 The TPM (backend) type configuration options
12381
12382 Since
12383 1.5
12384
12385 If
12386 CONFIG_TPM
12387
12388 query-tpm (Command)
12389 Return information about the TPM device
12390
12391 Returns
12392 TPMInfo on success
12393
12394 Since
12395 1.5
12396
12397 Example
12398 -> { "execute": "query-tpm" }
12399 <- { "return":
12400 [
12401 { "model": "tpm-tis",
12402 "options":
12403 { "type": "passthrough",
12404 "data":
12405 { "cancel-path": "/sys/class/misc/tpm0/device/cancel",
12406 "path": "/dev/tpm0"
12407 }
12408 },
12409 "id": "tpm0"
12410 }
12411 ]
12412 }
12413
12414 If
12415 CONFIG_TPM
12416
12418 DisplayProtocol (Enum)
12419 Display protocols which support changing password options.
12420
12421 Values
12422 vnc Not documented
12423
12424 spice Not documented
12425
12426 Since
12427 7.0
12428
12429 SetPasswordAction (Enum)
12430 An action to take on changing a password on a connection with active
12431 clients.
12432
12433 Values
12434 keep maintain existing clients
12435
12436 fail fail the command if clients are connected
12437
12438 disconnect
12439 disconnect existing clients
12440
12441 Since
12442 7.0
12443
12444 SetPasswordOptions (Object)
12445 Options for set_password.
12446
12447 Members
12448 protocol: DisplayProtocol
12449
12450 • 'vnc' to modify the VNC server password
12451
12452 • 'spice' to modify the Spice server password
12453
12454 password: string
12455 the new password
12456
12457 connected: SetPasswordAction (optional)
12458 How to handle existing clients when changing the password. If
12459 nothing is specified, defaults to 'keep'. For VNC, only 'keep'
12460 is currently implemented.
12461
12462 The members of SetPasswordOptionsVnc when protocol is "vnc"
12463
12464 Since
12465 7.0
12466
12467 SetPasswordOptionsVnc (Object)
12468 Options for set_password specific to the VNC procotol.
12469
12470 Members
12471 display: string (optional)
12472 The id of the display where the password should be changed. De‐
12473 faults to the first.
12474
12475 Since
12476 7.0
12477
12478 set_password (Command)
12479 Set the password of a remote display server.
12480
12481 Arguments
12482 The members of SetPasswordOptions
12483
12484 Returns
12485 • Nothing on success
12486
12487 • If Spice is not enabled, DeviceNotFound
12488
12489 Since
12490 0.14
12491
12492 Example
12493 -> { "execute": "set_password", "arguments": { "protocol": "vnc",
12494 "password": "secret" } }
12495 <- { "return": {} }
12496
12497 ExpirePasswordOptions (Object)
12498 General options for expire_password.
12499
12500 Members
12501 protocol: DisplayProtocol
12502
12503 • 'vnc' to modify the VNC server expiration
12504
12505 • 'spice' to modify the Spice server expiration
12506
12507 time: string
12508 when to expire the password.
12509
12510 • 'now' to expire the password immediately
12511
12512 • 'never' to cancel password expiration
12513
12514 • '+INT' where INT is the number of seconds from now (integer)
12515
12516 • 'INT' where INT is the absolute time in seconds
12517
12518 The members of ExpirePasswordOptionsVnc when protocol is "vnc"
12519
12520 Notes
12521 Time is relative to the server and currently there is no way to coordi‐
12522 nate server time with client time. It is not recommended to use the
12523 absolute time version of the time parameter unless you're sure you are
12524 on the same machine as the QEMU instance.
12525
12526 Since
12527 7.0
12528
12529 ExpirePasswordOptionsVnc (Object)
12530 Options for expire_password specific to the VNC procotol.
12531
12532 Members
12533 display: string (optional)
12534 The id of the display where the expiration should be changed.
12535 Defaults to the first.
12536
12537 Since
12538 7.0
12539
12540 expire_password (Command)
12541 Expire the password of a remote display server.
12542
12543 Arguments
12544 The members of ExpirePasswordOptions
12545
12546 Returns
12547 • Nothing on success
12548
12549 • If protocol is 'spice' and Spice is not active, DeviceNotFound
12550
12551 Since
12552 0.14
12553
12554 Example
12555 -> { "execute": "expire_password", "arguments": { "protocol": "vnc",
12556 "time": "+60" } }
12557 <- { "return": {} }
12558
12559 ImageFormat (Enum)
12560 Supported image format types.
12561
12562 Values
12563 png PNG format
12564
12565 ppm PPM format
12566
12567 Since
12568 7.1
12569
12570 screendump (Command)
12571 Capture the contents of a screen and write it to a file.
12572
12573 Arguments
12574 filename: string
12575 the path of a new file to store the image
12576
12577 device: string (optional)
12578 ID of the display device that should be dumped. If this parame‐
12579 ter is missing, the primary display will be used. (Since 2.12)
12580
12581 head: int (optional)
12582 head to use in case the device supports multiple heads. If this
12583 parameter is missing, head #0 will be used. Also note that the
12584 head can only be specified in conjunction with the device ID.
12585 (Since 2.12)
12586
12587 format: ImageFormat (optional)
12588 image format for screendump. (default: ppm) (Since 7.1)
12589
12590 Returns
12591 Nothing on success
12592
12593 Since
12594 0.14
12595
12596 Example
12597 -> { "execute": "screendump",
12598 "arguments": { "filename": "/tmp/image" } }
12599 <- { "return": {} }
12600
12601 Spice
12602 SpiceBasicInfo (Object)
12603 The basic information for SPICE network connection
12604
12605 Members
12606 host: string
12607 IP address
12608
12609 port: string
12610 port number
12611
12612 family: NetworkAddressFamily
12613 address family
12614
12615 Since
12616 2.1
12617
12618 If
12619 CONFIG_SPICE
12620
12621 SpiceServerInfo (Object)
12622 Information about a SPICE server
12623
12624 Members
12625 auth: string (optional)
12626 authentication method
12627
12628 The members of SpiceBasicInfo
12629
12630 Since
12631 2.1
12632
12633 If
12634 CONFIG_SPICE
12635
12636 SpiceChannel (Object)
12637 Information about a SPICE client channel.
12638
12639 Members
12640 connection-id: int
12641 SPICE connection id number. All channels with the same id be‐
12642 long to the same SPICE session.
12643
12644 channel-type: int
12645 SPICE channel type number. "1" is the main control channel,
12646 filter for this one if you want to track spice sessions only
12647
12648 channel-id: int
12649 SPICE channel ID number. Usually "0", might be different when
12650 multiple channels of the same type exist, such as multiple dis‐
12651 play channels in a multihead setup
12652
12653 tls: boolean
12654 true if the channel is encrypted, false otherwise.
12655
12656 The members of SpiceBasicInfo
12657
12658 Since
12659 0.14
12660
12661 If
12662 CONFIG_SPICE
12663
12664 SpiceQueryMouseMode (Enum)
12665 An enumeration of Spice mouse states.
12666
12667 Values
12668 client Mouse cursor position is determined by the client.
12669
12670 server Mouse cursor position is determined by the server.
12671
12672 unknown
12673 No information is available about mouse mode used by the spice
12674 server.
12675
12676 Note
12677 spice/enums.h has a SpiceMouseMode already, hence the name.
12678
12679 Since
12680 1.1
12681
12682 If
12683 CONFIG_SPICE
12684
12685 SpiceInfo (Object)
12686 Information about the SPICE session.
12687
12688 Members
12689 enabled: boolean
12690 true if the SPICE server is enabled, false otherwise
12691
12692 migrated: boolean
12693 true if the last guest migration completed and spice migration
12694 had completed as well. false otherwise. (since 1.4)
12695
12696 host: string (optional)
12697 The hostname the SPICE server is bound to. This depends on the
12698 name resolution on the host and may be an IP address.
12699
12700 port: int (optional)
12701 The SPICE server's port number.
12702
12703 compiled-version: string (optional)
12704 SPICE server version.
12705
12706 tls-port: int (optional)
12707 The SPICE server's TLS port number.
12708
12709 auth: string (optional)
12710 the current authentication type used by the server
12711
12712 • 'none' if no authentication is being used
12713
12714 • 'spice' uses SASL or direct TLS authentication, depending on
12715 command line options
12716
12717 mouse-mode: SpiceQueryMouseMode
12718 The mode in which the mouse cursor is displayed currently. Can
12719 be determined by the client or the server, or unknown if spice
12720 server doesn't provide this information. (since: 1.1)
12721
12722 channels: array of SpiceChannel (optional)
12723 a list of SpiceChannel for each active spice channel
12724
12725 Since
12726 0.14
12727
12728 If
12729 CONFIG_SPICE
12730
12731 query-spice (Command)
12732 Returns information about the current SPICE server
12733
12734 Returns
12735 SpiceInfo
12736
12737 Since
12738 0.14
12739
12740 Example
12741 -> { "execute": "query-spice" }
12742 <- { "return": {
12743 "enabled": true,
12744 "auth": "spice",
12745 "port": 5920,
12746 "migrated":false,
12747 "tls-port": 5921,
12748 "host": "0.0.0.0",
12749 "mouse-mode":"client",
12750 "channels": [
12751 {
12752 "port": "54924",
12753 "family": "ipv4",
12754 "channel-type": 1,
12755 "connection-id": 1804289383,
12756 "host": "127.0.0.1",
12757 "channel-id": 0,
12758 "tls": true
12759 },
12760 {
12761 "port": "36710",
12762 "family": "ipv4",
12763 "channel-type": 4,
12764 "connection-id": 1804289383,
12765 "host": "127.0.0.1",
12766 "channel-id": 0,
12767 "tls": false
12768 },
12769 [ ... more channels follow ... ]
12770 ]
12771 }
12772 }
12773
12774 If
12775 CONFIG_SPICE
12776
12777 SPICE_CONNECTED (Event)
12778 Emitted when a SPICE client establishes a connection
12779
12780 Arguments
12781 server: SpiceBasicInfo
12782 server information
12783
12784 client: SpiceBasicInfo
12785 client information
12786
12787 Since
12788 0.14
12789
12790 Example
12791 <- { "timestamp": {"seconds": 1290688046, "microseconds": 388707},
12792 "event": "SPICE_CONNECTED",
12793 "data": {
12794 "server": { "port": "5920", "family": "ipv4", "host": "127.0.0.1"},
12795 "client": {"port": "52873", "family": "ipv4", "host": "127.0.0.1"}
12796 }}
12797
12798 If
12799 CONFIG_SPICE
12800
12801 SPICE_INITIALIZED (Event)
12802 Emitted after initial handshake and authentication takes place (if any)
12803 and the SPICE channel is up and running
12804
12805 Arguments
12806 server: SpiceServerInfo
12807 server information
12808
12809 client: SpiceChannel
12810 client information
12811
12812 Since
12813 0.14
12814
12815 Example
12816 <- { "timestamp": {"seconds": 1290688046, "microseconds": 417172},
12817 "event": "SPICE_INITIALIZED",
12818 "data": {"server": {"auth": "spice", "port": "5921",
12819 "family": "ipv4", "host": "127.0.0.1"},
12820 "client": {"port": "49004", "family": "ipv4", "channel-type": 3,
12821 "connection-id": 1804289383, "host": "127.0.0.1",
12822 "channel-id": 0, "tls": true}
12823 }}
12824
12825 If
12826 CONFIG_SPICE
12827
12828 SPICE_DISCONNECTED (Event)
12829 Emitted when the SPICE connection is closed
12830
12831 Arguments
12832 server: SpiceBasicInfo
12833 server information
12834
12835 client: SpiceBasicInfo
12836 client information
12837
12838 Since
12839 0.14
12840
12841 Example
12842 <- { "timestamp": {"seconds": 1290688046, "microseconds": 388707},
12843 "event": "SPICE_DISCONNECTED",
12844 "data": {
12845 "server": { "port": "5920", "family": "ipv4", "host": "127.0.0.1"},
12846 "client": {"port": "52873", "family": "ipv4", "host": "127.0.0.1"}
12847 }}
12848
12849 If
12850 CONFIG_SPICE
12851
12852 SPICE_MIGRATE_COMPLETED (Event)
12853 Emitted when SPICE migration has completed
12854
12855 Since
12856 1.3
12857
12858 Example
12859 <- { "timestamp": {"seconds": 1290688046, "microseconds": 417172},
12860 "event": "SPICE_MIGRATE_COMPLETED" }
12861
12862 If
12863 CONFIG_SPICE
12864
12865 VNC
12866 VncBasicInfo (Object)
12867 The basic information for vnc network connection
12868
12869 Members
12870 host: string
12871 IP address
12872
12873 service: string
12874 The service name of the vnc port. This may depend on the host
12875 system's service database so symbolic names should not be relied
12876 on.
12877
12878 family: NetworkAddressFamily
12879 address family
12880
12881 websocket: boolean
12882 true in case the socket is a websocket (since 2.3).
12883
12884 Since
12885 2.1
12886
12887 If
12888 CONFIG_VNC
12889
12890 VncServerInfo (Object)
12891 The network connection information for server
12892
12893 Members
12894 auth: string (optional)
12895 authentication method used for the plain (non-websocket) VNC
12896 server
12897
12898 The members of VncBasicInfo
12899
12900 Since
12901 2.1
12902
12903 If
12904 CONFIG_VNC
12905
12906 VncClientInfo (Object)
12907 Information about a connected VNC client.
12908
12909 Members
12910 x509_dname: string (optional)
12911 If x509 authentication is in use, the Distinguished Name of the
12912 client.
12913
12914 sasl_username: string (optional)
12915 If SASL authentication is in use, the SASL username used for au‐
12916 thentication.
12917
12918 The members of VncBasicInfo
12919
12920 Since
12921 0.14
12922
12923 If
12924 CONFIG_VNC
12925
12926 VncInfo (Object)
12927 Information about the VNC session.
12928
12929 Members
12930 enabled: boolean
12931 true if the VNC server is enabled, false otherwise
12932
12933 host: string (optional)
12934 The hostname the VNC server is bound to. This depends on the
12935 name resolution on the host and may be an IP address.
12936
12937 family: NetworkAddressFamily (optional)
12938
12939 • 'ipv6' if the host is listening for IPv6 connections
12940
12941 • 'ipv4' if the host is listening for IPv4 connections
12942
12943 • 'unix' if the host is listening on a unix domain socket
12944
12945 • 'unknown' otherwise
12946
12947 service: string (optional)
12948 The service name of the server's port. This may depends on the
12949 host system's service database so symbolic names should not be
12950 relied on.
12951
12952 auth: string (optional)
12953 the current authentication type used by the server
12954
12955 • 'none' if no authentication is being used
12956
12957 • 'vnc' if VNC authentication is being used
12958
12959 • 'vencrypt+plain' if VEncrypt is used with plain text authenti‐
12960 cation
12961
12962 • 'vencrypt+tls+none' if VEncrypt is used with TLS and no au‐
12963 thentication
12964
12965 • 'vencrypt+tls+vnc' if VEncrypt is used with TLS and VNC au‐
12966 thentication
12967
12968 • 'vencrypt+tls+plain' if VEncrypt is used with TLS and plain
12969 text auth
12970
12971 • 'vencrypt+x509+none' if VEncrypt is used with x509 and no auth
12972
12973 • 'vencrypt+x509+vnc' if VEncrypt is used with x509 and VNC auth
12974
12975 • 'vencrypt+x509+plain' if VEncrypt is used with x509 and plain
12976 text auth
12977
12978 • 'vencrypt+tls+sasl' if VEncrypt is used with TLS and SASL auth
12979
12980 • 'vencrypt+x509+sasl' if VEncrypt is used with x509 and SASL
12981 auth
12982
12983 clients: array of VncClientInfo (optional)
12984 a list of VncClientInfo of all currently connected clients
12985
12986 Since
12987 0.14
12988
12989 If
12990 CONFIG_VNC
12991
12992 VncPrimaryAuth (Enum)
12993 vnc primary authentication method.
12994
12995 Values
12996 none Not documented
12997
12998 vnc Not documented
12999
13000 ra2 Not documented
13001
13002 ra2ne Not documented
13003
13004 tight Not documented
13005
13006 ultra Not documented
13007
13008 tls Not documented
13009
13010 vencrypt
13011 Not documented
13012
13013 sasl Not documented
13014
13015 Since
13016 2.3
13017
13018 If
13019 CONFIG_VNC
13020
13021 VncVencryptSubAuth (Enum)
13022 vnc sub authentication method with vencrypt.
13023
13024 Values
13025 plain Not documented
13026
13027 tls-none
13028 Not documented
13029
13030 x509-none
13031 Not documented
13032
13033 tls-vnc
13034 Not documented
13035
13036 x509-vnc
13037 Not documented
13038
13039 tls-plain
13040 Not documented
13041
13042 x509-plain
13043 Not documented
13044
13045 tls-sasl
13046 Not documented
13047
13048 x509-sasl
13049 Not documented
13050
13051 Since
13052 2.3
13053
13054 If
13055 CONFIG_VNC
13056
13057 VncServerInfo2 (Object)
13058 The network connection information for server
13059
13060 Members
13061 auth: VncPrimaryAuth
13062 The current authentication type used by the servers
13063
13064 vencrypt: VncVencryptSubAuth (optional)
13065 The vencrypt sub authentication type used by the servers, only
13066 specified in case auth == vencrypt.
13067
13068 The members of VncBasicInfo
13069
13070 Since
13071 2.9
13072
13073 If
13074 CONFIG_VNC
13075
13076 VncInfo2 (Object)
13077 Information about a vnc server
13078
13079 Members
13080 id: string
13081 vnc server name.
13082
13083 server: array of VncServerInfo2
13084 A list of VncBasincInfo describing all listening sockets. The
13085 list can be empty (in case the vnc server is disabled). It also
13086 may have multiple entries: normal + websocket, possibly also
13087 ipv4 + ipv6 in the future.
13088
13089 clients: array of VncClientInfo
13090 A list of VncClientInfo of all currently connected clients. The
13091 list can be empty, for obvious reasons.
13092
13093 auth: VncPrimaryAuth
13094 The current authentication type used by the non-websockets
13095 servers
13096
13097 vencrypt: VncVencryptSubAuth (optional)
13098 The vencrypt authentication type used by the servers, only spec‐
13099 ified in case auth == vencrypt.
13100
13101 display: string (optional)
13102 The display device the vnc server is linked to.
13103
13104 Since
13105 2.3
13106
13107 If
13108 CONFIG_VNC
13109
13110 query-vnc (Command)
13111 Returns information about the current VNC server
13112
13113 Returns
13114 VncInfo
13115
13116 Since
13117 0.14
13118
13119 Example
13120 -> { "execute": "query-vnc" }
13121 <- { "return": {
13122 "enabled":true,
13123 "host":"0.0.0.0",
13124 "service":"50402",
13125 "auth":"vnc",
13126 "family":"ipv4",
13127 "clients":[
13128 {
13129 "host":"127.0.0.1",
13130 "service":"50401",
13131 "family":"ipv4",
13132 "websocket":false
13133 }
13134 ]
13135 }
13136 }
13137
13138 If
13139 CONFIG_VNC
13140
13141 query-vnc-servers (Command)
13142 Returns a list of vnc servers. The list can be empty.
13143
13144 Returns
13145 a list of VncInfo2
13146
13147 Since
13148 2.3
13149
13150 If
13151 CONFIG_VNC
13152
13153 change-vnc-password (Command)
13154 Change the VNC server password.
13155
13156 Arguments
13157 password: string
13158 the new password to use with VNC authentication
13159
13160 Since
13161 1.1
13162
13163 Notes
13164 An empty password in this command will set the password to the empty
13165 string. Existing clients are unaffected by executing this command.
13166
13167 If
13168 CONFIG_VNC
13169
13170 VNC_CONNECTED (Event)
13171 Emitted when a VNC client establishes a connection
13172
13173 Arguments
13174 server: VncServerInfo
13175 server information
13176
13177 client: VncBasicInfo
13178 client information
13179
13180 Note
13181 This event is emitted before any authentication takes place, thus the
13182 authentication ID is not provided
13183
13184 Since
13185 0.13
13186
13187 Example
13188 <- { "event": "VNC_CONNECTED",
13189 "data": {
13190 "server": { "auth": "sasl", "family": "ipv4", "websocket": false,
13191 "service": "5901", "host": "0.0.0.0" },
13192 "client": { "family": "ipv4", "service": "58425",
13193 "host": "127.0.0.1", "websocket": false } },
13194 "timestamp": { "seconds": 1262976601, "microseconds": 975795 } }
13195
13196 If
13197 CONFIG_VNC
13198
13199 VNC_INITIALIZED (Event)
13200 Emitted after authentication takes place (if any) and the VNC session
13201 is made active
13202
13203 Arguments
13204 server: VncServerInfo
13205 server information
13206
13207 client: VncClientInfo
13208 client information
13209
13210 Since
13211 0.13
13212
13213 Example
13214 <- { "event": "VNC_INITIALIZED",
13215 "data": {
13216 "server": { "auth": "sasl", "family": "ipv4", "websocket": false,
13217 "service": "5901", "host": "0.0.0.0"},
13218 "client": { "family": "ipv4", "service": "46089", "websocket": false,
13219 "host": "127.0.0.1", "sasl_username": "luiz" } },
13220 "timestamp": { "seconds": 1263475302, "microseconds": 150772 } }
13221
13222 If
13223 CONFIG_VNC
13224
13225 VNC_DISCONNECTED (Event)
13226 Emitted when the connection is closed
13227
13228 Arguments
13229 server: VncServerInfo
13230 server information
13231
13232 client: VncClientInfo
13233 client information
13234
13235 Since
13236 0.13
13237
13238 Example
13239 <- { "event": "VNC_DISCONNECTED",
13240 "data": {
13241 "server": { "auth": "sasl", "family": "ipv4", "websocket": false,
13242 "service": "5901", "host": "0.0.0.0" },
13243 "client": { "family": "ipv4", "service": "58425", "websocket": false,
13244 "host": "127.0.0.1", "sasl_username": "luiz" } },
13245 "timestamp": { "seconds": 1262976601, "microseconds": 975795 } }
13246
13247 If
13248 CONFIG_VNC
13249
13251 MouseInfo (Object)
13252 Information about a mouse device.
13253
13254 Members
13255 name: string
13256 the name of the mouse device
13257
13258 index: int
13259 the index of the mouse device
13260
13261 current: boolean
13262 true if this device is currently receiving mouse events
13263
13264 absolute: boolean
13265 true if this device supports absolute coordinates as input
13266
13267 Since
13268 0.14
13269
13270 query-mice (Command)
13271 Returns information about each active mouse device
13272
13273 Returns
13274 a list of MouseInfo for each device
13275
13276 Since
13277 0.14
13278
13279 Example
13280 -> { "execute": "query-mice" }
13281 <- { "return": [
13282 {
13283 "name":"QEMU Microsoft Mouse",
13284 "index":0,
13285 "current":false,
13286 "absolute":false
13287 },
13288 {
13289 "name":"QEMU PS/2 Mouse",
13290 "index":1,
13291 "current":true,
13292 "absolute":true
13293 }
13294 ]
13295 }
13296
13297 QKeyCode (Enum)
13298 An enumeration of key name.
13299
13300 This is used by the send-key command.
13301
13302 Values
13303 unmapped
13304 since 2.0
13305
13306 pause since 2.0
13307
13308 ro since 2.4
13309
13310 kp_comma
13311 since 2.4
13312
13313 kp_equals
13314 since 2.6
13315
13316 power since 2.6
13317
13318 hiragana
13319 since 2.9
13320
13321 henkan since 2.9
13322
13323 yen since 2.9
13324
13325 sleep since 2.10
13326
13327 wake since 2.10
13328
13329 audionext
13330 since 2.10
13331
13332 audioprev
13333 since 2.10
13334
13335 audiostop
13336 since 2.10
13337
13338 audioplay
13339 since 2.10
13340
13341 audiomute
13342 since 2.10
13343
13344 volumeup
13345 since 2.10
13346
13347 volumedown
13348 since 2.10
13349
13350 mediaselect
13351 since 2.10
13352
13353 mail since 2.10
13354
13355 calculator
13356 since 2.10
13357
13358 computer
13359 since 2.10
13360
13361 ac_home
13362 since 2.10
13363
13364 ac_back
13365 since 2.10
13366
13367 ac_forward
13368 since 2.10
13369
13370 ac_refresh
13371 since 2.10
13372
13373 ac_bookmarks
13374 since 2.10
13375
13376 muhenkan
13377 since 2.12
13378
13379 katakanahiragana
13380 since 2.12
13381
13382 lang1 since 6.1
13383
13384 lang2 since 6.1
13385
13386 shift Not documented
13387
13388 shift_r
13389 Not documented
13390
13391 alt Not documented
13392
13393 alt_r Not documented
13394
13395 ctrl Not documented
13396
13397 ctrl_r Not documented
13398
13399 menu Not documented
13400
13401 esc Not documented
13402
13403 1 Not documented
13404
13405 2 Not documented
13406
13407 3 Not documented
13408
13409 4 Not documented
13410
13411 5 Not documented
13412
13413 6 Not documented
13414
13415 7 Not documented
13416
13417 8 Not documented
13418
13419 9 Not documented
13420
13421 0 Not documented
13422
13423 minus Not documented
13424
13425 equal Not documented
13426
13427 backspace
13428 Not documented
13429
13430 tab Not documented
13431
13432 q Not documented
13433
13434 w Not documented
13435
13436 e Not documented
13437
13438 r Not documented
13439
13440 t Not documented
13441
13442 y Not documented
13443
13444 u Not documented
13445
13446 i Not documented
13447
13448 o Not documented
13449
13450 p Not documented
13451
13452 bracket_left
13453 Not documented
13454
13455 bracket_right
13456 Not documented
13457
13458 ret Not documented
13459
13460 a Not documented
13461
13462 s Not documented
13463
13464 d Not documented
13465
13466 f Not documented
13467
13468 g Not documented
13469
13470 h Not documented
13471
13472 j Not documented
13473
13474 k Not documented
13475
13476 l Not documented
13477
13478 semicolon
13479 Not documented
13480
13481 apostrophe
13482 Not documented
13483
13484 grave_accent
13485 Not documented
13486
13487 backslash
13488 Not documented
13489
13490 z Not documented
13491
13492 x Not documented
13493
13494 c Not documented
13495
13496 v Not documented
13497
13498 b Not documented
13499
13500 n Not documented
13501
13502 m Not documented
13503
13504 comma Not documented
13505
13506 dot Not documented
13507
13508 slash Not documented
13509
13510 asterisk
13511 Not documented
13512
13513 spc Not documented
13514
13515 caps_lock
13516 Not documented
13517
13518 f1 Not documented
13519
13520 f2 Not documented
13521
13522 f3 Not documented
13523
13524 f4 Not documented
13525
13526 f5 Not documented
13527
13528 f6 Not documented
13529
13530 f7 Not documented
13531
13532 f8 Not documented
13533
13534 f9 Not documented
13535
13536 f10 Not documented
13537
13538 num_lock
13539 Not documented
13540
13541 scroll_lock
13542 Not documented
13543
13544 kp_divide
13545 Not documented
13546
13547 kp_multiply
13548 Not documented
13549
13550 kp_subtract
13551 Not documented
13552
13553 kp_add Not documented
13554
13555 kp_enter
13556 Not documented
13557
13558 kp_decimal
13559 Not documented
13560
13561 sysrq Not documented
13562
13563 kp_0 Not documented
13564
13565 kp_1 Not documented
13566
13567 kp_2 Not documented
13568
13569 kp_3 Not documented
13570
13571 kp_4 Not documented
13572
13573 kp_5 Not documented
13574
13575 kp_6 Not documented
13576
13577 kp_7 Not documented
13578
13579 kp_8 Not documented
13580
13581 kp_9 Not documented
13582
13583 less Not documented
13584
13585 f11 Not documented
13586
13587 f12 Not documented
13588
13589 print Not documented
13590
13591 home Not documented
13592
13593 pgup Not documented
13594
13595 pgdn Not documented
13596
13597 end Not documented
13598
13599 left Not documented
13600
13601 up Not documented
13602
13603 down Not documented
13604
13605 right Not documented
13606
13607 insert Not documented
13608
13609 delete Not documented
13610
13611 stop Not documented
13612
13613 again Not documented
13614
13615 props Not documented
13616
13617 undo Not documented
13618
13619 front Not documented
13620
13621 copy Not documented
13622
13623 open Not documented
13624
13625 paste Not documented
13626
13627 find Not documented
13628
13629 cut Not documented
13630
13631 lf Not documented
13632
13633 help Not documented
13634
13635 meta_l Not documented
13636
13637 meta_r Not documented
13638
13639 compose
13640 Not documented
13641 'sysrq' was mistakenly added to hack around the fact that the ps2
13642 driver was not generating correct scancodes sequences when 'alt+print'
13643 was pressed. This flaw is now fixed and the 'sysrq' key serves no fur‐
13644 ther purpose. Any further use of 'sysrq' will be transparently changed
13645 to 'print', so they are effectively synonyms.
13646
13647 Since
13648 1.3
13649
13650 KeyValueKind (Enum)
13651 Values
13652 number Not documented
13653
13654 qcode Not documented
13655
13656 Since
13657 1.3
13658
13659 IntWrapper (Object)
13660 Members
13661 data: int
13662 Not documented
13663
13664 Since
13665 1.3
13666
13667 QKeyCodeWrapper (Object)
13668 Members
13669 data: QKeyCode
13670 Not documented
13671
13672 Since
13673 1.3
13674
13675 KeyValue (Object)
13676 Represents a keyboard key.
13677
13678 Members
13679 type: KeyValueKind
13680 Not documented
13681
13682 The members of IntWrapper when type is "number"
13683
13684 The members of QKeyCodeWrapper when type is "qcode"
13685
13686 Since
13687 1.3
13688
13689 send-key (Command)
13690 Send keys to guest.
13691
13692 Arguments
13693 keys: array of KeyValue
13694 An array of KeyValue elements. All KeyValues in this array are
13695 simultaneously sent to the guest. A KeyValue.number value is
13696 sent directly to the guest, while KeyValue.qcode must be a valid
13697 QKeyCode value
13698
13699 hold-time: int (optional)
13700 time to delay key up events, milliseconds. Defaults to 100
13701
13702 Returns
13703 • Nothing on success
13704
13705 • If key is unknown or redundant, InvalidParameter
13706
13707 Since
13708 1.3
13709
13710 Example
13711 -> { "execute": "send-key",
13712 "arguments": { "keys": [ { "type": "qcode", "data": "ctrl" },
13713 { "type": "qcode", "data": "alt" },
13714 { "type": "qcode", "data": "delete" } ] } }
13715 <- { "return": {} }
13716
13717 InputButton (Enum)
13718 Button of a pointer input device (mouse, tablet).
13719
13720 Values
13721 side front side button of a 5-button mouse (since 2.9)
13722
13723 extra rear side button of a 5-button mouse (since 2.9)
13724
13725 left Not documented
13726
13727 middle Not documented
13728
13729 right Not documented
13730
13731 wheel-up
13732 Not documented
13733
13734 wheel-down
13735 Not documented
13736
13737 wheel-left
13738 Not documented
13739
13740 wheel-right
13741 Not documented
13742
13743 Since
13744 2.0
13745
13746 InputAxis (Enum)
13747 Position axis of a pointer input device (mouse, tablet).
13748
13749 Values
13750 x Not documented
13751
13752 y Not documented
13753
13754 Since
13755 2.0
13756
13757 InputKeyEvent (Object)
13758 Keyboard input event.
13759
13760 Members
13761 key: KeyValue
13762 Which key this event is for.
13763
13764 down: boolean
13765 True for key-down and false for key-up events.
13766
13767 Since
13768 2.0
13769
13770 InputBtnEvent (Object)
13771 Pointer button input event.
13772
13773 Members
13774 button: InputButton
13775 Which button this event is for.
13776
13777 down: boolean
13778 True for key-down and false for key-up events.
13779
13780 Since
13781 2.0
13782
13783 InputMoveEvent (Object)
13784 Pointer motion input event.
13785
13786 Members
13787 axis: InputAxis
13788 Which axis is referenced by value.
13789
13790 value: int
13791 Pointer position. For absolute coordinates the valid range is 0
13792 -> 0x7ffff
13793
13794 Since
13795 2.0
13796
13797 InputEventKind (Enum)
13798 Values
13799 key Not documented
13800
13801 btn Not documented
13802
13803 rel Not documented
13804
13805 abs Not documented
13806
13807 Since
13808 2.0
13809
13810 InputKeyEventWrapper (Object)
13811 Members
13812 data: InputKeyEvent
13813 Not documented
13814
13815 Since
13816 2.0
13817
13818 InputBtnEventWrapper (Object)
13819 Members
13820 data: InputBtnEvent
13821 Not documented
13822
13823 Since
13824 2.0
13825
13826 InputMoveEventWrapper (Object)
13827 Members
13828 data: InputMoveEvent
13829 Not documented
13830
13831 Since
13832 2.0
13833
13834 InputEvent (Object)
13835 Input event union.
13836
13837 Members
13838 type: InputEventKind
13839 the input type, one of:
13840
13841 • 'key': Input event of Keyboard
13842
13843 • 'btn': Input event of pointer buttons
13844
13845 • 'rel': Input event of relative pointer motion
13846
13847 • 'abs': Input event of absolute pointer motion
13848
13849 The members of InputKeyEventWrapper when type is "key"
13850
13851 The members of InputBtnEventWrapper when type is "btn"
13852
13853 The members of InputMoveEventWrapper when type is "rel"
13854
13855 The members of InputMoveEventWrapper when type is "abs"
13856
13857 Since
13858 2.0
13859
13860 input-send-event (Command)
13861 Send input event(s) to guest.
13862
13863 The device and head parameters can be used to send the input event to
13864 specific input devices in case (a) multiple input devices of the same
13865 kind are added to the virtual machine and (b) you have configured input
13866 routing (see docs/multiseat.txt) for those input devices. The parame‐
13867 ters work exactly like the device and head properties of input devices.
13868 If device is missing, only devices that have no input routing config
13869 are admissible. If device is specified, both input devices with and
13870 without input routing config are admissible, but devices with input
13871 routing config take precedence.
13872
13873 Arguments
13874 device: string (optional)
13875 display device to send event(s) to.
13876
13877 head: int (optional)
13878 head to send event(s) to, in case the display device supports
13879 multiple scanouts.
13880
13881 events: array of InputEvent
13882 List of InputEvent union.
13883
13884 Returns
13885 Nothing on success.
13886
13887 Since
13888 2.6
13889
13890 Note
13891 The consoles are visible in the qom tree, under /backend/console[$in‐
13892 dex]. They have a device link and head property, so it is possible to
13893 map which console belongs to which device and display.
13894
13895 Example
13896 1. Press left mouse button.
13897
13898 -> { "execute": "input-send-event",
13899 "arguments": { "device": "video0",
13900 "events": [ { "type": "btn",
13901 "data" : { "down": true, "button": "left" } } ] } }
13902 <- { "return": {} }
13903
13904 -> { "execute": "input-send-event",
13905 "arguments": { "device": "video0",
13906 "events": [ { "type": "btn",
13907 "data" : { "down": false, "button": "left" } } ] } }
13908 <- { "return": {} }
13909
13910 2. Press ctrl-alt-del.
13911
13912 -> { "execute": "input-send-event",
13913 "arguments": { "events": [
13914 { "type": "key", "data" : { "down": true,
13915 "key": {"type": "qcode", "data": "ctrl" } } },
13916 { "type": "key", "data" : { "down": true,
13917 "key": {"type": "qcode", "data": "alt" } } },
13918 { "type": "key", "data" : { "down": true,
13919 "key": {"type": "qcode", "data": "delete" } } } ] } }
13920 <- { "return": {} }
13921
13922 3. Move mouse pointer to absolute coordinates (20000, 400).
13923
13924 -> { "execute": "input-send-event" ,
13925 "arguments": { "events": [
13926 { "type": "abs", "data" : { "axis": "x", "value" : 20000 } },
13927 { "type": "abs", "data" : { "axis": "y", "value" : 400 } } ] } }
13928 <- { "return": {} }
13929
13930 DisplayGTK (Object)
13931 GTK display options.
13932
13933 Members
13934 grab-on-hover: boolean (optional)
13935 Grab keyboard input on mouse hover.
13936
13937 zoom-to-fit: boolean (optional)
13938 Zoom guest display to fit into the host window. When turned off
13939 the host window will be resized instead. In case the display
13940 device can notify the guest on window resizes (virtio-gpu) this
13941 will default to "on", assuming the guest will resize the display
13942 to match the window size then. Otherwise it defaults to "off".
13943 Since 3.1
13944
13945 show-tabs: boolean (optional)
13946 Display the tab bar for switching between the various graphical
13947 interfaces (e.g. VGA and virtual console character devices) by
13948 default. Since 7.1
13949
13950 show-menubar: boolean (optional)
13951 Display the main window menubar. Defaults to "on". Since 8.0
13952
13953 Since
13954 2.12
13955
13956 DisplayEGLHeadless (Object)
13957 EGL headless display options.
13958
13959 Members
13960 rendernode: string (optional)
13961 Which DRM render node should be used. Default is the first
13962 available node on the host.
13963
13964 Since
13965 3.1
13966
13967 DisplayDBus (Object)
13968 DBus display options.
13969
13970 Members
13971 addr: string (optional)
13972 The D-Bus bus address (default to the session bus).
13973
13974 rendernode: string (optional)
13975 Which DRM render node should be used. Default is the first
13976 available node on the host.
13977
13978 p2p: boolean (optional)
13979 Whether to use peer-to-peer connections (accepted through
13980 add_client).
13981
13982 audiodev: string (optional)
13983 Use the specified DBus audiodev to export audio.
13984
13985 Since
13986 7.0
13987
13988 DisplayGLMode (Enum)
13989 Display OpenGL mode.
13990
13991 Values
13992 off Disable OpenGL (default).
13993
13994 on Use OpenGL, pick context type automatically. Would better be
13995 named 'auto' but is called 'on' for backward compatibility with
13996 bool type.
13997
13998 core Use OpenGL with Core (desktop) Context.
13999
14000 es Use OpenGL with ES (embedded systems) Context.
14001
14002 Since
14003 3.0
14004
14005 DisplayCurses (Object)
14006 Curses display options.
14007
14008 Members
14009 charset: string (optional)
14010 Font charset used by guest (default: CP437).
14011
14012 Since
14013 4.0
14014
14015 DisplayCocoa (Object)
14016 Cocoa display options.
14017
14018 Members
14019 left-command-key: boolean (optional)
14020 Enable/disable forwarding of left command key to guest. Allows
14021 command-tab window switching on the host without sending this
14022 key to the guest when "off". Defaults to "on"
14023
14024 full-grab: boolean (optional)
14025 Capture all key presses, including system combos. This requires
14026 accessibility permissions, since it performs a global grab on
14027 key events. (default: off) See
14028 https://support.apple.com/en-in/guide/mac-help/mh32356/mac
14029
14030 swap-opt-cmd: boolean (optional)
14031 Swap the Option and Command keys so that their key codes match
14032 their position on non-Mac keyboards and you can use Meta/Super
14033 and Alt where you expect them. (default: off)
14034
14035 Since
14036 7.0
14037
14038 HotKeyMod (Enum)
14039 Set of modifier keys that need to be held for shortcut key actions.
14040
14041 Values
14042 lctrl-lalt
14043 Not documented
14044
14045 lshift-lctrl-lalt
14046 Not documented
14047
14048 rctrl Not documented
14049
14050 Since
14051 7.1
14052
14053 DisplaySDL (Object)
14054 SDL2 display options.
14055
14056 Members
14057 grab-mod: HotKeyMod (optional)
14058 Modifier keys that should be pressed together with the "G" key
14059 to release the mouse grab.
14060
14061 Since
14062 7.1
14063
14064 DisplayType (Enum)
14065 Display (user interface) type.
14066
14067 Values
14068 default
14069 The default user interface, selecting from the first available
14070 of gtk, sdl, cocoa, and vnc.
14071
14072 none No user interface or video output display. The guest will still
14073 see an emulated graphics card, but its output will not be dis‐
14074 played to the QEMU user.
14075
14076 gtk (If: CONFIG_GTK)
14077 The GTK user interface.
14078
14079 sdl (If: CONFIG_SDL)
14080 The SDL user interface.
14081
14082 egl-headless (If: CONFIG_OPENGL and CONFIG_GBM)
14083 No user interface, offload GL operations to a local DRI device.
14084 Graphical display need to be paired with VNC or Spice. (Since
14085 3.1)
14086
14087 curses (If: CONFIG_CURSES)
14088 Display video output via curses. For graphics device models
14089 which support a text mode, QEMU can display this output using a
14090 curses/ncurses interface. Nothing is displayed when the graphics
14091 device is in graphical mode or if the graphics device does not
14092 support a text mode. Generally only the VGA device models sup‐
14093 port text mode.
14094
14095 cocoa (If: CONFIG_COCOA)
14096 The Cocoa user interface.
14097
14098 spice-app (If: CONFIG_SPICE)
14099 Set up a Spice server and run the default associated application
14100 to connect to it. The server will redirect the serial console
14101 and QEMU monitors. (Since 4.0)
14102
14103 dbus (If: CONFIG_DBUS_DISPLAY)
14104 Start a D-Bus service for the display. (Since 7.0)
14105
14106 Since
14107 2.12
14108
14109 DisplayOptions (Object)
14110 Display (user interface) options.
14111
14112 Members
14113 type: DisplayType
14114 Which DisplayType qemu should use.
14115
14116 full-screen: boolean (optional)
14117 Start user interface in fullscreen mode (default: off).
14118
14119 window-close: boolean (optional)
14120 Allow to quit qemu with window close button (default: on).
14121
14122 show-cursor: boolean (optional)
14123 Force showing the mouse cursor (default: off). (since: 5.0)
14124
14125 gl: DisplayGLMode (optional)
14126 Enable OpenGL support (default: off).
14127
14128 The members of DisplayGTK when type is "gtk" (If: CONFIG_GTK)
14129
14130 The members of DisplayCocoa when type is "cocoa" (If: CONFIG_COCOA)
14131
14132 The members of DisplayCurses when type is "curses" (If: CONFIG_CURSES)
14133
14134 The members of DisplayEGLHeadless when type is "egl-headless" (If: CON‐
14135 FIG_OPENGL and CONFIG_GBM)
14136
14137 The members of DisplayDBus when type is "dbus" (If: CONFIG_DBUS_DIS‐
14138 PLAY)
14139
14140 The members of DisplaySDL when type is "sdl" (If: CONFIG_SDL)
14141
14142 Since
14143 2.12
14144
14145 query-display-options (Command)
14146 Returns information about display configuration
14147
14148 Returns
14149 DisplayOptions
14150
14151 Since
14152 3.1
14153
14154 DisplayReloadType (Enum)
14155 Available DisplayReload types.
14156
14157 Values
14158 vnc VNC display
14159
14160 Since
14161 6.0
14162
14163 DisplayReloadOptionsVNC (Object)
14164 Specify the VNC reload options.
14165
14166 Members
14167 tls-certs: boolean (optional)
14168 reload tls certs or not.
14169
14170 Since
14171 6.0
14172
14173 DisplayReloadOptions (Object)
14174 Options of the display configuration reload.
14175
14176 Members
14177 type: DisplayReloadType
14178 Specify the display type.
14179
14180 The members of DisplayReloadOptionsVNC when type is "vnc"
14181
14182 Since
14183 6.0
14184
14185 display-reload (Command)
14186 Reload display configuration.
14187
14188 Arguments
14189 The members of DisplayReloadOptions
14190
14191 Returns
14192 Nothing on success.
14193
14194 Since
14195 6.0
14196
14197 Example
14198 -> { "execute": "display-reload",
14199 "arguments": { "type": "vnc", "tls-certs": true } }
14200 <- { "return": {} }
14201
14202 DisplayUpdateType (Enum)
14203 Available DisplayUpdate types.
14204
14205 Values
14206 vnc VNC display
14207
14208 Since
14209 7.1
14210
14211 DisplayUpdateOptionsVNC (Object)
14212 Specify the VNC reload options.
14213
14214 Members
14215 addresses: array of SocketAddress (optional)
14216 If specified, change set of addresses to listen for connections.
14217 Addresses configured for websockets are not touched.
14218
14219 Since
14220 7.1
14221
14222 DisplayUpdateOptions (Object)
14223 Options of the display configuration reload.
14224
14225 Members
14226 type: DisplayUpdateType
14227 Specify the display type.
14228
14229 The members of DisplayUpdateOptionsVNC when type is "vnc"
14230
14231 Since
14232 7.1
14233
14234 display-update (Command)
14235 Update display configuration.
14236
14237 Arguments
14238 The members of DisplayUpdateOptions
14239
14240 Returns
14241 Nothing on success.
14242
14243 Since
14244 7.1
14245
14246 Example
14247 -> { "execute": "display-update",
14248 "arguments": { "type": "vnc", "addresses":
14249 [ { "type": "inet", "host": "0.0.0.0",
14250 "port": "5901" } ] } }
14251 <- { "return": {} }
14252
14254 QAuthZListPolicy (Enum)
14255 The authorization policy result
14256
14257 Values
14258 deny deny access
14259
14260 allow allow access
14261
14262 Since
14263 4.0
14264
14265 QAuthZListFormat (Enum)
14266 The authorization policy match format
14267
14268 Values
14269 exact an exact string match
14270
14271 glob string with ? and * shell wildcard support
14272
14273 Since
14274 4.0
14275
14276 QAuthZListRule (Object)
14277 A single authorization rule.
14278
14279 Members
14280 match: string
14281 a string or glob to match against a user identity
14282
14283 policy: QAuthZListPolicy
14284 the result to return if match evaluates to true
14285
14286 format: QAuthZListFormat (optional)
14287 the format of the match rule (default 'exact')
14288
14289 Since
14290 4.0
14291
14292 AuthZListProperties (Object)
14293 Properties for authz-list objects.
14294
14295 Members
14296 policy: QAuthZListPolicy (optional)
14297 Default policy to apply when no rule matches (default: deny)
14298
14299 rules: array of QAuthZListRule (optional)
14300 Authorization rules based on matching user
14301
14302 Since
14303 4.0
14304
14305 AuthZListFileProperties (Object)
14306 Properties for authz-listfile objects.
14307
14308 Members
14309 filename: string
14310 File name to load the configuration from. The file must contain
14311 valid JSON for AuthZListProperties.
14312
14313 refresh: boolean (optional)
14314 If true, inotify is used to monitor the file, automatically
14315 reloading changes. If an error occurs during reloading, all au‐
14316 thorizations will fail until the file is next successfully
14317 loaded. (default: true if the binary was built with CONFIG_INO‐
14318 TIFY1, false otherwise)
14319
14320 Since
14321 4.0
14322
14323 AuthZPAMProperties (Object)
14324 Properties for authz-pam objects.
14325
14326 Members
14327 service: string
14328 PAM service name to use for authorization
14329
14330 Since
14331 4.0
14332
14333 AuthZSimpleProperties (Object)
14334 Properties for authz-simple objects.
14335
14336 Members
14337 identity: string
14338 Identifies the allowed user. Its format depends on the network
14339 service that authorization object is associated with. For autho‐
14340 rizing based on TLS x509 certificates, the identity must be the
14341 x509 distinguished name.
14342
14343 Since
14344 4.0
14345
14347 MigrationStats (Object)
14348 Detailed migration status.
14349
14350 Members
14351 transferred: int
14352 amount of bytes already transferred to the target VM
14353
14354 remaining: int
14355 amount of bytes remaining to be transferred to the target VM
14356
14357 total: int
14358 total amount of bytes involved in the migration process
14359
14360 duplicate: int
14361 number of duplicate (zero) pages (since 1.2)
14362
14363 skipped: int
14364 number of skipped zero pages (since 1.5)
14365
14366 normal: int
14367 number of normal pages (since 1.2)
14368
14369 normal-bytes: int
14370 number of normal bytes sent (since 1.2)
14371
14372 dirty-pages-rate: int
14373 number of pages dirtied by second by the guest (since 1.3)
14374
14375 mbps: number
14376 throughput in megabits/sec. (since 1.6)
14377
14378 dirty-sync-count: int
14379 number of times that dirty ram was synchronized (since 2.1)
14380
14381 postcopy-requests: int
14382 The number of page requests received from the destination (since
14383 2.7)
14384
14385 page-size: int
14386 The number of bytes per page for the various page-based statis‐
14387 tics (since 2.10)
14388
14389 multifd-bytes: int
14390 The number of bytes sent through multifd (since 3.0)
14391
14392 pages-per-second: int
14393 the number of memory pages transferred per second (Since 4.0)
14394
14395 precopy-bytes: int
14396 The number of bytes sent in the pre-copy phase (since 7.0).
14397
14398 downtime-bytes: int
14399 The number of bytes sent while the guest is paused (since 7.0).
14400
14401 postcopy-bytes: int
14402 The number of bytes sent during the post-copy phase (since 7.0).
14403
14404 dirty-sync-missed-zero-copy: int
14405 Number of times dirty RAM synchronization could not avoid copy‐
14406 ing dirty pages. This is between 0 and dirty-sync-count * mul‐
14407 tifd-channels. (since 7.1)
14408
14409 Since
14410 0.14
14411
14412 XBZRLECacheStats (Object)
14413 Detailed XBZRLE migration cache statistics
14414
14415 Members
14416 cache-size: int
14417 XBZRLE cache size
14418
14419 bytes: int
14420 amount of bytes already transferred to the target VM
14421
14422 pages: int
14423 amount of pages transferred to the target VM
14424
14425 cache-miss: int
14426 number of cache miss
14427
14428 cache-miss-rate: number
14429 rate of cache miss (since 2.1)
14430
14431 encoding-rate: number
14432 rate of encoded bytes (since 5.1)
14433
14434 overflow: int
14435 number of overflows
14436
14437 Since
14438 1.2
14439
14440 CompressionStats (Object)
14441 Detailed migration compression statistics
14442
14443 Members
14444 pages: int
14445 amount of pages compressed and transferred to the target VM
14446
14447 busy: int
14448 count of times that no free thread was available to compress
14449 data
14450
14451 busy-rate: number
14452 rate of thread busy
14453
14454 compressed-size: int
14455 amount of bytes after compression
14456
14457 compression-rate: number
14458 rate of compressed size
14459
14460 Since
14461 3.1
14462
14463 MigrationStatus (Enum)
14464 An enumeration of migration status.
14465
14466 Values
14467 none no migration has ever happened.
14468
14469 setup migration process has been initiated.
14470
14471 cancelling
14472 in the process of cancelling migration.
14473
14474 cancelled
14475 cancelling migration is finished.
14476
14477 active in the process of doing migration.
14478
14479 postcopy-active
14480 like active, but now in postcopy mode. (since 2.5)
14481
14482 postcopy-paused
14483 during postcopy but paused. (since 3.0)
14484
14485 postcopy-recover
14486 trying to recover from a paused postcopy. (since 3.0)
14487
14488 completed
14489 migration is finished.
14490
14491 failed some error occurred during migration process.
14492
14493 colo VM is in the process of fault tolerance, VM can not get into
14494 this state unless colo capability is enabled for migration.
14495 (since 2.8)
14496
14497 pre-switchover
14498 Paused before device serialisation. (since 2.11)
14499
14500 device During device serialisation when pause-before-switchover is en‐
14501 abled (since 2.11)
14502
14503 wait-unplug
14504 wait for device unplug request by guest OS to be completed.
14505 (since 4.2)
14506
14507 Since
14508 2.3
14509
14510 VfioStats (Object)
14511 Detailed VFIO devices migration statistics
14512
14513 Members
14514 transferred: int
14515 amount of bytes transferred to the target VM by VFIO devices
14516
14517 Since
14518 5.2
14519
14520 MigrationInfo (Object)
14521 Information about current migration process.
14522
14523 Members
14524 status: MigrationStatus (optional)
14525 MigrationStatus describing the current migration status. If
14526 this field is not returned, no migration process has been initi‐
14527 ated
14528
14529 ram: MigrationStats (optional)
14530 MigrationStats containing detailed migration status, only re‐
14531 turned if status is 'active' or 'completed'(since 1.2)
14532
14533 disk: MigrationStats (optional)
14534 MigrationStats containing detailed disk migration status, only
14535 returned if status is 'active' and it is a block migration
14536
14537 xbzrle-cache: XBZRLECacheStats (optional)
14538 XBZRLECacheStats containing detailed XBZRLE migration statis‐
14539 tics, only returned if XBZRLE feature is on and status is 'ac‐
14540 tive' or 'completed' (since 1.2)
14541
14542 total-time: int (optional)
14543 total amount of milliseconds since migration started. If migra‐
14544 tion has ended, it returns the total migration time. (since 1.2)
14545
14546 downtime: int (optional)
14547 only present when migration finishes correctly total downtime in
14548 milliseconds for the guest. (since 1.3)
14549
14550 expected-downtime: int (optional)
14551 only present while migration is active expected downtime in mil‐
14552 liseconds for the guest in last walk of the dirty bitmap. (since
14553 1.3)
14554
14555 setup-time: int (optional)
14556 amount of setup time in milliseconds before the iterations begin
14557 but after the QMP command is issued. This is designed to provide
14558 an accounting of any activities (such as RDMA pinning) which may
14559 be expensive, but do not actually occur during the iterative mi‐
14560 gration rounds themselves. (since 1.6)
14561
14562 cpu-throttle-percentage: int (optional)
14563 percentage of time guest cpus are being throttled during
14564 auto-converge. This is only present when auto-converge has
14565 started throttling guest cpus. (Since 2.7)
14566
14567 error-desc: string (optional)
14568 the human readable error description string, when status is
14569 'failed'. Clients should not attempt to parse the error strings.
14570 (Since 2.7)
14571
14572 postcopy-blocktime: int (optional)
14573 total time when all vCPU were blocked during postcopy live mi‐
14574 gration. This is only present when the postcopy-blocktime migra‐
14575 tion capability is enabled. (Since 3.0)
14576
14577 postcopy-vcpu-blocktime: array of int (optional)
14578 list of the postcopy blocktime per vCPU. This is only present
14579 when the postcopy-blocktime migration capability is enabled.
14580 (Since 3.0)
14581
14582 compression: CompressionStats (optional)
14583 migration compression statistics, only returned if compression
14584 feature is on and status is 'active' or 'completed' (Since 3.1)
14585
14586 socket-address: array of SocketAddress (optional)
14587 Only used for tcp, to know what the real port is (Since 4.0)
14588
14589 vfio: VfioStats (optional)
14590 VfioStats containing detailed VFIO devices migration statistics,
14591 only returned if VFIO device is present, migration is supported
14592 by all VFIO devices and status is 'active' or 'completed' (since
14593 5.2)
14594
14595 blocked-reasons: array of string (optional)
14596 A list of reasons an outgoing migration is blocked. Present and
14597 non-empty when migration is blocked. (since 6.0)
14598
14599 Since
14600 0.14
14601
14602 query-migrate (Command)
14603 Returns information about current migration process. If migration is
14604 active there will be another json-object with RAM migration status and
14605 if block migration is active another one with block migration status.
14606
14607 Returns
14608 MigrationInfo
14609
14610 Since
14611 0.14
14612
14613 Example
14614 1. Before the first migration
14615
14616 -> { "execute": "query-migrate" }
14617 <- { "return": {} }
14618
14619 2. Migration is done and has succeeded
14620
14621 -> { "execute": "query-migrate" }
14622 <- { "return": {
14623 "status": "completed",
14624 "total-time":12345,
14625 "setup-time":12345,
14626 "downtime":12345,
14627 "ram":{
14628 "transferred":123,
14629 "remaining":123,
14630 "total":246,
14631 "duplicate":123,
14632 "normal":123,
14633 "normal-bytes":123456,
14634 "dirty-sync-count":15
14635 }
14636 }
14637 }
14638
14639 3. Migration is done and has failed
14640
14641 -> { "execute": "query-migrate" }
14642 <- { "return": { "status": "failed" } }
14643
14644 4. Migration is being performed and is not a block migration:
14645
14646 -> { "execute": "query-migrate" }
14647 <- {
14648 "return":{
14649 "status":"active",
14650 "total-time":12345,
14651 "setup-time":12345,
14652 "expected-downtime":12345,
14653 "ram":{
14654 "transferred":123,
14655 "remaining":123,
14656 "total":246,
14657 "duplicate":123,
14658 "normal":123,
14659 "normal-bytes":123456,
14660 "dirty-sync-count":15
14661 }
14662 }
14663 }
14664
14665 5. Migration is being performed and is a block migration:
14666
14667 -> { "execute": "query-migrate" }
14668 <- {
14669 "return":{
14670 "status":"active",
14671 "total-time":12345,
14672 "setup-time":12345,
14673 "expected-downtime":12345,
14674 "ram":{
14675 "total":1057024,
14676 "remaining":1053304,
14677 "transferred":3720,
14678 "duplicate":123,
14679 "normal":123,
14680 "normal-bytes":123456,
14681 "dirty-sync-count":15
14682 },
14683 "disk":{
14684 "total":20971520,
14685 "remaining":20880384,
14686 "transferred":91136
14687 }
14688 }
14689 }
14690
14691 6. Migration is being performed and XBZRLE is active:
14692
14693 -> { "execute": "query-migrate" }
14694 <- {
14695 "return":{
14696 "status":"active",
14697 "total-time":12345,
14698 "setup-time":12345,
14699 "expected-downtime":12345,
14700 "ram":{
14701 "total":1057024,
14702 "remaining":1053304,
14703 "transferred":3720,
14704 "duplicate":10,
14705 "normal":3333,
14706 "normal-bytes":3412992,
14707 "dirty-sync-count":15
14708 },
14709 "xbzrle-cache":{
14710 "cache-size":67108864,
14711 "bytes":20971520,
14712 "pages":2444343,
14713 "cache-miss":2244,
14714 "cache-miss-rate":0.123,
14715 "encoding-rate":80.1,
14716 "overflow":34434
14717 }
14718 }
14719 }
14720
14721 MigrationCapability (Enum)
14722 Migration capabilities enumeration
14723
14724 Values
14725 xbzrle Migration supports xbzrle (Xor Based Zero Run Length Encoding).
14726 This feature allows us to minimize migration traffic for certain
14727 work loads, by sending compressed difference of the pages
14728
14729 rdma-pin-all
14730 Controls whether or not the entire VM memory footprint is
14731 mlock()'d on demand or all at once. Refer to docs/rdma.txt for
14732 usage. Disabled by default. (since 2.0)
14733
14734 zero-blocks
14735 During storage migration encode blocks of zeroes efficiently.
14736 This essentially saves 1MB of zeroes per block on the wire. En‐
14737 abling requires source and target VM to support this feature. To
14738 enable it is sufficient to enable the capability on the source
14739 VM. The feature is disabled by default. (since 1.6)
14740
14741 compress
14742 Use multiple compression threads to accelerate live migration.
14743 This feature can help to reduce the migration traffic, by send‐
14744 ing compressed pages. Please note that if compress and xbzrle
14745 are both on, compress only takes effect in the ram bulk stage,
14746 after that, it will be disabled and only xbzrle takes effect,
14747 this can help to minimize migration traffic. The feature is dis‐
14748 abled by default. (since 2.4 )
14749
14750 events generate events for each migration state change (since 2.4 )
14751
14752 auto-converge
14753 If enabled, QEMU will automatically throttle down the guest to
14754 speed up convergence of RAM migration. (since 1.6)
14755
14756 postcopy-ram
14757 Start executing on the migration target before all of RAM has
14758 been migrated, pulling the remaining pages along as needed. The
14759 capacity must have the same setting on both source and target or
14760 migration will not even start. NOTE: If the migration fails dur‐
14761 ing postcopy the VM will fail. (since 2.6)
14762
14763 x-colo If enabled, migration will never end, and the state of the VM on
14764 the primary side will be migrated continuously to the VM on sec‐
14765 ondary side, this process is called COarse-Grain LOck Stepping
14766 (COLO) for Non-stop Service. (since 2.8)
14767
14768 release-ram
14769 if enabled, qemu will free the migrated ram pages on the source
14770 during postcopy-ram migration. (since 2.9)
14771
14772 block If enabled, QEMU will also migrate the contents of all block de‐
14773 vices. Default is disabled. A possible alternative uses mirror
14774 jobs to a builtin NBD server on the destination, which offers
14775 more flexibility. (Since 2.10)
14776
14777 return-path
14778 If enabled, migration will use the return path even for precopy.
14779 (since 2.10)
14780
14781 pause-before-switchover
14782 Pause outgoing migration before serialising device state and be‐
14783 fore disabling block IO (since 2.11)
14784
14785 multifd
14786 Use more than one fd for migration (since 4.0)
14787
14788 dirty-bitmaps
14789 If enabled, QEMU will migrate named dirty bitmaps. (since 2.12)
14790
14791 postcopy-blocktime
14792 Calculate downtime for postcopy live migration (since 3.0)
14793
14794 late-block-activate
14795 If enabled, the destination will not activate block devices (and
14796 thus take locks) immediately at the end of migration. (since
14797 3.0)
14798
14799 x-ignore-shared
14800 If enabled, QEMU will not migrate shared memory (since 4.0)
14801
14802 validate-uuid
14803 Send the UUID of the source to allow the destination to ensure
14804 it is the same. (since 4.2)
14805
14806 background-snapshot
14807 If enabled, the migration stream will be a snapshot of the VM
14808 exactly at the point when the migration procedure starts. The VM
14809 RAM is saved with running VM. (since 6.0)
14810
14811 zero-copy-send
14812 Controls behavior on sending memory pages on migration. When
14813 true, enables a zero-copy mechanism for sending memory pages, if
14814 host supports it. Requires that QEMU be permitted to use locked
14815 memory for guest RAM pages. (since 7.1)
14816
14817 postcopy-preempt
14818 If enabled, the migration process will allow postcopy requests
14819 to preempt precopy stream, so postcopy requests will be handled
14820 faster. This is a performance feature and should not affect the
14821 correctness of postcopy migration. (since 7.1)
14822
14823 Features
14824 unstable
14825 Members x-colo and x-ignore-shared are experimental.
14826
14827 Since
14828 1.2
14829
14830 MigrationCapabilityStatus (Object)
14831 Migration capability information
14832
14833 Members
14834 capability: MigrationCapability
14835 capability enum
14836
14837 state: boolean
14838 capability state bool
14839
14840 Since
14841 1.2
14842
14843 migrate-set-capabilities (Command)
14844 Enable/Disable the following migration capabilities (like xbzrle)
14845
14846 Arguments
14847 capabilities: array of MigrationCapabilityStatus
14848 json array of capability modifications to make
14849
14850 Since
14851 1.2
14852
14853 Example
14854 -> { "execute": "migrate-set-capabilities" , "arguments":
14855 { "capabilities": [ { "capability": "xbzrle", "state": true } ] } }
14856
14857 query-migrate-capabilities (Command)
14858 Returns information about the current migration capabilities status
14859
14860 Returns
14861 MigrationCapabilitiesStatus
14862
14863 Since
14864 1.2
14865
14866 Example
14867 -> { "execute": "query-migrate-capabilities" }
14868 <- { "return": [
14869 {"state": false, "capability": "xbzrle"},
14870 {"state": false, "capability": "rdma-pin-all"},
14871 {"state": false, "capability": "auto-converge"},
14872 {"state": false, "capability": "zero-blocks"},
14873 {"state": false, "capability": "compress"},
14874 {"state": true, "capability": "events"},
14875 {"state": false, "capability": "postcopy-ram"},
14876 {"state": false, "capability": "x-colo"}
14877 ]}
14878
14879 MultiFDCompression (Enum)
14880 An enumeration of multifd compression methods.
14881
14882 Values
14883 none no compression.
14884
14885 zlib use zlib compression method.
14886
14887 zstd (If: CONFIG_ZSTD)
14888 use zstd compression method.
14889
14890 Since
14891 5.0
14892
14893 BitmapMigrationBitmapAliasTransform (Object)
14894 Members
14895 persistent: boolean (optional)
14896 If present, the bitmap will be made persistent or transient de‐
14897 pending on this parameter.
14898
14899 Since
14900 6.0
14901
14902 BitmapMigrationBitmapAlias (Object)
14903 Members
14904 name: string
14905 The name of the bitmap.
14906
14907 alias: string
14908 An alias name for migration (for example the bitmap name on the
14909 opposite site).
14910
14911 transform: BitmapMigrationBitmapAliasTransform (optional)
14912 Allows the modification of the migrated bitmap. (since 6.0)
14913
14914 Since
14915 5.2
14916
14917 BitmapMigrationNodeAlias (Object)
14918 Maps a block node name and the bitmaps it has to aliases for dirty bit‐
14919 map migration.
14920
14921 Members
14922 node-name: string
14923 A block node name.
14924
14925 alias: string
14926 An alias block node name for migration (for example the node
14927 name on the opposite site).
14928
14929 bitmaps: array of BitmapMigrationBitmapAlias
14930 Mappings for the bitmaps on this node.
14931
14932 Since
14933 5.2
14934
14935 MigrationParameter (Enum)
14936 Migration parameters enumeration
14937
14938 Values
14939 announce-initial
14940 Initial delay (in milliseconds) before sending the first an‐
14941 nounce (Since 4.0)
14942
14943 announce-max
14944 Maximum delay (in milliseconds) between packets in the announce‐
14945 ment (Since 4.0)
14946
14947 announce-rounds
14948 Number of self-announce packets sent after migration (Since 4.0)
14949
14950 announce-step
14951 Increase in delay (in milliseconds) between subsequent packets
14952 in the announcement (Since 4.0)
14953
14954 compress-level
14955 Set the compression level to be used in live migration, the com‐
14956 pression level is an integer between 0 and 9, where 0 means no
14957 compression, 1 means the best compression speed, and 9 means
14958 best compression ratio which will consume more CPU.
14959
14960 compress-threads
14961 Set compression thread count to be used in live migration, the
14962 compression thread count is an integer between 1 and 255.
14963
14964 compress-wait-thread
14965 Controls behavior when all compression threads are currently
14966 busy. If true (default), wait for a free compression thread to
14967 become available; otherwise, send the page uncompressed. (Since
14968 3.1)
14969
14970 decompress-threads
14971 Set decompression thread count to be used in live migration, the
14972 decompression thread count is an integer between 1 and 255. Usu‐
14973 ally, decompression is at least 4 times as fast as compression,
14974 so set the decompress-threads to the number about 1/4 of com‐
14975 press-threads is adequate.
14976
14977 throttle-trigger-threshold
14978 The ratio of bytes_dirty_period and bytes_xfer_period to trigger
14979 throttling. It is expressed as percentage. The default value is
14980 50. (Since 5.0)
14981
14982 cpu-throttle-initial
14983 Initial percentage of time guest cpus are throttled when migra‐
14984 tion auto-converge is activated. The default value is 20. (Since
14985 2.7)
14986
14987 cpu-throttle-increment
14988 throttle percentage increase each time auto-converge detects
14989 that migration is not making progress. The default value is 10.
14990 (Since 2.7)
14991
14992 cpu-throttle-tailslow
14993 Make CPU throttling slower at tail stage At the tail stage of
14994 throttling, the Guest is very sensitive to CPU percentage while
14995 the cpu-throttle -increment is excessive usually at tail stage.
14996 If this parameter is true, we will compute the ideal CPU per‐
14997 centage used by the Guest, which may exactly make the dirty rate
14998 match the dirty rate threshold. Then we will choose a smaller
14999 throttle increment between the one specified by cpu-throttle-in‐
15000 crement and the one generated by ideal CPU percentage. There‐
15001 fore, it is compatible to traditional throttling, meanwhile the
15002 throttle increment won't be excessive at tail stage. The de‐
15003 fault value is false. (Since 5.1)
15004
15005 tls-creds
15006 ID of the 'tls-creds' object that provides credentials for es‐
15007 tablishing a TLS connection over the migration data channel. On
15008 the outgoing side of the migration, the credentials must be for
15009 a 'client' endpoint, while for the incoming side the credentials
15010 must be for a 'server' endpoint. Setting this will enable TLS
15011 for all migrations. The default is unset, resulting in unsecured
15012 migration at the QEMU level. (Since 2.7)
15013
15014 tls-hostname
15015 hostname of the target host for the migration. This is required
15016 when using x509 based TLS credentials and the migration URI does
15017 not already include a hostname. For example if using fd: or
15018 exec: based migration, the hostname must be provided so that the
15019 server's x509 certificate identity can be validated. (Since 2.7)
15020
15021 tls-authz
15022 ID of the 'authz' object subclass that provides access control
15023 checking of the TLS x509 certificate distinguished name. This
15024 object is only resolved at time of use, so can be deleted and
15025 recreated on the fly while the migration server is active. If
15026 missing, it will default to denying access (Since 4.0)
15027
15028 max-bandwidth
15029 to set maximum speed for migration. maximum speed in bytes per
15030 second. (Since 2.8)
15031
15032 downtime-limit
15033 set maximum tolerated downtime for migration. maximum downtime
15034 in milliseconds (Since 2.8)
15035
15036 x-checkpoint-delay
15037 The delay time (in ms) between two COLO checkpoints in periodic
15038 mode. (Since 2.8)
15039
15040 block-incremental
15041 Affects how much storage is migrated when the block migration
15042 capability is enabled. When false, the entire storage backing
15043 chain is migrated into a flattened image at the destination;
15044 when true, only the active qcow2 layer is migrated and the des‐
15045 tination must already have access to the same backing chain as
15046 was used on the source. (since 2.10)
15047
15048 multifd-channels
15049 Number of channels used to migrate data in parallel. This is the
15050 same number that the number of sockets used for migration. The
15051 default value is 2 (since 4.0)
15052
15053 xbzrle-cache-size
15054 cache size to be used by XBZRLE migration. It needs to be a
15055 multiple of the target page size and a power of 2 (Since 2.11)
15056
15057 max-postcopy-bandwidth
15058 Background transfer bandwidth during postcopy. Defaults to 0
15059 (unlimited). In bytes per second. (Since 3.0)
15060
15061 max-cpu-throttle
15062 maximum cpu throttle percentage. Defaults to 99. (Since 3.1)
15063
15064 multifd-compression
15065 Which compression method to use. Defaults to none. (Since 5.0)
15066
15067 multifd-zlib-level
15068 Set the compression level to be used in live migration, the com‐
15069 pression level is an integer between 0 and 9, where 0 means no
15070 compression, 1 means the best compression speed, and 9 means
15071 best compression ratio which will consume more CPU. Defaults to
15072 1. (Since 5.0)
15073
15074 multifd-zstd-level
15075 Set the compression level to be used in live migration, the com‐
15076 pression level is an integer between 0 and 20, where 0 means no
15077 compression, 1 means the best compression speed, and 20 means
15078 best compression ratio which will consume more CPU. Defaults to
15079 1. (Since 5.0)
15080
15081 block-bitmap-mapping
15082 Maps block nodes and bitmaps on them to aliases for the purpose
15083 of dirty bitmap migration. Such aliases may for example be the
15084 corresponding names on the opposite site. The mapping must be
15085 one-to-one, but not necessarily complete: On the source, un‐
15086 mapped bitmaps and all bitmaps on unmapped nodes will be ig‐
15087 nored. On the destination, encountering an unmapped alias in
15088 the incoming migration stream will result in a report, and all
15089 further bitmap migration data will then be discarded. Note that
15090 the destination does not know about bitmaps it does not receive,
15091 so there is no limitation or requirement regarding the number of
15092 bitmaps received, or how they are named, or on which nodes they
15093 are placed. By default (when this parameter has never been
15094 set), bitmap names are mapped to themselves. Nodes are mapped
15095 to their block device name if there is one, and to their node
15096 name otherwise. (Since 5.2)
15097
15098 Features
15099 unstable
15100 Member x-checkpoint-delay is experimental.
15101
15102 Since
15103 2.4
15104
15105 MigrateSetParameters (Object)
15106 Members
15107 announce-initial: int (optional)
15108 Initial delay (in milliseconds) before sending the first an‐
15109 nounce (Since 4.0)
15110
15111 announce-max: int (optional)
15112 Maximum delay (in milliseconds) between packets in the announce‐
15113 ment (Since 4.0)
15114
15115 announce-rounds: int (optional)
15116 Number of self-announce packets sent after migration (Since 4.0)
15117
15118 announce-step: int (optional)
15119 Increase in delay (in milliseconds) between subsequent packets
15120 in the announcement (Since 4.0)
15121
15122 compress-level: int (optional)
15123 compression level
15124
15125 compress-threads: int (optional)
15126 compression thread count
15127
15128 compress-wait-thread: boolean (optional)
15129 Controls behavior when all compression threads are currently
15130 busy. If true (default), wait for a free compression thread to
15131 become available; otherwise, send the page uncompressed. (Since
15132 3.1)
15133
15134 decompress-threads: int (optional)
15135 decompression thread count
15136
15137 throttle-trigger-threshold: int (optional)
15138 The ratio of bytes_dirty_period and bytes_xfer_period to trigger
15139 throttling. It is expressed as percentage. The default value is
15140 50. (Since 5.0)
15141
15142 cpu-throttle-initial: int (optional)
15143 Initial percentage of time guest cpus are throttled when migra‐
15144 tion auto-converge is activated. The default value is 20.
15145 (Since 2.7)
15146
15147 cpu-throttle-increment: int (optional)
15148 throttle percentage increase each time auto-converge detects
15149 that migration is not making progress. The default value is 10.
15150 (Since 2.7)
15151
15152 cpu-throttle-tailslow: boolean (optional)
15153 Make CPU throttling slower at tail stage At the tail stage of
15154 throttling, the Guest is very sensitive to CPU percentage while
15155 the cpu-throttle -increment is excessive usually at tail stage.
15156 If this parameter is true, we will compute the ideal CPU per‐
15157 centage used by the Guest, which may exactly make the dirty rate
15158 match the dirty rate threshold. Then we will choose a smaller
15159 throttle increment between the one specified by cpu-throttle-in‐
15160 crement and the one generated by ideal CPU percentage. There‐
15161 fore, it is compatible to traditional throttling, meanwhile the
15162 throttle increment won't be excessive at tail stage. The de‐
15163 fault value is false. (Since 5.1)
15164
15165 tls-creds: StrOrNull (optional)
15166 ID of the 'tls-creds' object that provides credentials for es‐
15167 tablishing a TLS connection over the migration data channel. On
15168 the outgoing side of the migration, the credentials must be for
15169 a 'client' endpoint, while for the incoming side the credentials
15170 must be for a 'server' endpoint. Setting this to a non-empty
15171 string enables TLS for all migrations. An empty string means
15172 that QEMU will use plain text mode for migration, rather than
15173 TLS (Since 2.9) Previously (since 2.7), this was reported by
15174 omitting tls-creds instead.
15175
15176 tls-hostname: StrOrNull (optional)
15177 hostname of the target host for the migration. This is required
15178 when using x509 based TLS credentials and the migration URI does
15179 not already include a hostname. For example if using fd: or
15180 exec: based migration, the hostname must be provided so that the
15181 server's x509 certificate identity can be validated. (Since 2.7)
15182 An empty string means that QEMU will use the hostname associated
15183 with the migration URI, if any. (Since 2.9) Previously (since
15184 2.7), this was reported by omitting tls-hostname instead.
15185
15186 max-bandwidth: int (optional)
15187 to set maximum speed for migration. maximum speed in bytes per
15188 second. (Since 2.8)
15189
15190 downtime-limit: int (optional)
15191 set maximum tolerated downtime for migration. maximum downtime
15192 in milliseconds (Since 2.8)
15193
15194 x-checkpoint-delay: int (optional)
15195 the delay time between two COLO checkpoints. (Since 2.8)
15196
15197 block-incremental: boolean (optional)
15198 Affects how much storage is migrated when the block migration
15199 capability is enabled. When false, the entire storage backing
15200 chain is migrated into a flattened image at the destination;
15201 when true, only the active qcow2 layer is migrated and the des‐
15202 tination must already have access to the same backing chain as
15203 was used on the source. (since 2.10)
15204
15205 multifd-channels: int (optional)
15206 Number of channels used to migrate data in parallel. This is the
15207 same number that the number of sockets used for migration. The
15208 default value is 2 (since 4.0)
15209
15210 xbzrle-cache-size: int (optional)
15211 cache size to be used by XBZRLE migration. It needs to be a
15212 multiple of the target page size and a power of 2 (Since 2.11)
15213
15214 max-postcopy-bandwidth: int (optional)
15215 Background transfer bandwidth during postcopy. Defaults to 0
15216 (unlimited). In bytes per second. (Since 3.0)
15217
15218 max-cpu-throttle: int (optional)
15219 maximum cpu throttle percentage. The default value is 99.
15220 (Since 3.1)
15221
15222 multifd-compression: MultiFDCompression (optional)
15223 Which compression method to use. Defaults to none. (Since 5.0)
15224
15225 multifd-zlib-level: int (optional)
15226 Set the compression level to be used in live migration, the com‐
15227 pression level is an integer between 0 and 9, where 0 means no
15228 compression, 1 means the best compression speed, and 9 means
15229 best compression ratio which will consume more CPU. Defaults to
15230 1. (Since 5.0)
15231
15232 multifd-zstd-level: int (optional)
15233 Set the compression level to be used in live migration, the com‐
15234 pression level is an integer between 0 and 20, where 0 means no
15235 compression, 1 means the best compression speed, and 20 means
15236 best compression ratio which will consume more CPU. Defaults to
15237 1. (Since 5.0)
15238
15239 block-bitmap-mapping: array of BitmapMigrationNodeAlias (optional)
15240 Maps block nodes and bitmaps on them to aliases for the purpose
15241 of dirty bitmap migration. Such aliases may for example be the
15242 corresponding names on the opposite site. The mapping must be
15243 one-to-one, but not necessarily complete: On the source, un‐
15244 mapped bitmaps and all bitmaps on unmapped nodes will be ig‐
15245 nored. On the destination, encountering an unmapped alias in
15246 the incoming migration stream will result in a report, and all
15247 further bitmap migration data will then be discarded. Note that
15248 the destination does not know about bitmaps it does not receive,
15249 so there is no limitation or requirement regarding the number of
15250 bitmaps received, or how they are named, or on which nodes they
15251 are placed. By default (when this parameter has never been
15252 set), bitmap names are mapped to themselves. Nodes are mapped
15253 to their block device name if there is one, and to their node
15254 name otherwise. (Since 5.2)
15255
15256 tls-authz: StrOrNull (optional)
15257 Not documented
15258
15259 Features
15260 unstable
15261 Member x-checkpoint-delay is experimental.
15262
15263 Since
15264 2.4
15265
15266 migrate-set-parameters (Command)
15267 Set various migration parameters.
15268
15269 Arguments
15270 The members of MigrateSetParameters
15271
15272 Since
15273 2.4
15274
15275 Example
15276 -> { "execute": "migrate-set-parameters" ,
15277 "arguments": { "compress-level": 1 } }
15278
15279 MigrationParameters (Object)
15280 The optional members aren't actually optional.
15281
15282 Members
15283 announce-initial: int (optional)
15284 Initial delay (in milliseconds) before sending the first an‐
15285 nounce (Since 4.0)
15286
15287 announce-max: int (optional)
15288 Maximum delay (in milliseconds) between packets in the announce‐
15289 ment (Since 4.0)
15290
15291 announce-rounds: int (optional)
15292 Number of self-announce packets sent after migration (Since 4.0)
15293
15294 announce-step: int (optional)
15295 Increase in delay (in milliseconds) between subsequent packets
15296 in the announcement (Since 4.0)
15297
15298 compress-level: int (optional)
15299 compression level
15300
15301 compress-threads: int (optional)
15302 compression thread count
15303
15304 compress-wait-thread: boolean (optional)
15305 Controls behavior when all compression threads are currently
15306 busy. If true (default), wait for a free compression thread to
15307 become available; otherwise, send the page uncompressed. (Since
15308 3.1)
15309
15310 decompress-threads: int (optional)
15311 decompression thread count
15312
15313 throttle-trigger-threshold: int (optional)
15314 The ratio of bytes_dirty_period and bytes_xfer_period to trigger
15315 throttling. It is expressed as percentage. The default value is
15316 50. (Since 5.0)
15317
15318 cpu-throttle-initial: int (optional)
15319 Initial percentage of time guest cpus are throttled when migra‐
15320 tion auto-converge is activated. (Since 2.7)
15321
15322 cpu-throttle-increment: int (optional)
15323 throttle percentage increase each time auto-converge detects
15324 that migration is not making progress. (Since 2.7)
15325
15326 cpu-throttle-tailslow: boolean (optional)
15327 Make CPU throttling slower at tail stage At the tail stage of
15328 throttling, the Guest is very sensitive to CPU percentage while
15329 the cpu-throttle -increment is excessive usually at tail stage.
15330 If this parameter is true, we will compute the ideal CPU per‐
15331 centage used by the Guest, which may exactly make the dirty rate
15332 match the dirty rate threshold. Then we will choose a smaller
15333 throttle increment between the one specified by cpu-throttle-in‐
15334 crement and the one generated by ideal CPU percentage. There‐
15335 fore, it is compatible to traditional throttling, meanwhile the
15336 throttle increment won't be excessive at tail stage. The de‐
15337 fault value is false. (Since 5.1)
15338
15339 tls-creds: string (optional)
15340 ID of the 'tls-creds' object that provides credentials for es‐
15341 tablishing a TLS connection over the migration data channel. On
15342 the outgoing side of the migration, the credentials must be for
15343 a 'client' endpoint, while for the incoming side the credentials
15344 must be for a 'server' endpoint. An empty string means that
15345 QEMU will use plain text mode for migration, rather than TLS
15346 (Since 2.7) Note: 2.8 reports this by omitting tls-creds in‐
15347 stead.
15348
15349 tls-hostname: string (optional)
15350 hostname of the target host for the migration. This is required
15351 when using x509 based TLS credentials and the migration URI does
15352 not already include a hostname. For example if using fd: or
15353 exec: based migration, the hostname must be provided so that the
15354 server's x509 certificate identity can be validated. (Since 2.7)
15355 An empty string means that QEMU will use the hostname associated
15356 with the migration URI, if any. (Since 2.9) Note: 2.8 reports
15357 this by omitting tls-hostname instead.
15358
15359 tls-authz: string (optional)
15360 ID of the 'authz' object subclass that provides access control
15361 checking of the TLS x509 certificate distinguished name. (Since
15362 4.0)
15363
15364 max-bandwidth: int (optional)
15365 to set maximum speed for migration. maximum speed in bytes per
15366 second. (Since 2.8)
15367
15368 downtime-limit: int (optional)
15369 set maximum tolerated downtime for migration. maximum downtime
15370 in milliseconds (Since 2.8)
15371
15372 x-checkpoint-delay: int (optional)
15373 the delay time between two COLO checkpoints. (Since 2.8)
15374
15375 block-incremental: boolean (optional)
15376 Affects how much storage is migrated when the block migration
15377 capability is enabled. When false, the entire storage backing
15378 chain is migrated into a flattened image at the destination;
15379 when true, only the active qcow2 layer is migrated and the des‐
15380 tination must already have access to the same backing chain as
15381 was used on the source. (since 2.10)
15382
15383 multifd-channels: int (optional)
15384 Number of channels used to migrate data in parallel. This is the
15385 same number that the number of sockets used for migration. The
15386 default value is 2 (since 4.0)
15387
15388 xbzrle-cache-size: int (optional)
15389 cache size to be used by XBZRLE migration. It needs to be a
15390 multiple of the target page size and a power of 2 (Since 2.11)
15391
15392 max-postcopy-bandwidth: int (optional)
15393 Background transfer bandwidth during postcopy. Defaults to 0
15394 (unlimited). In bytes per second. (Since 3.0)
15395
15396 max-cpu-throttle: int (optional)
15397 maximum cpu throttle percentage. Defaults to 99. (Since 3.1)
15398
15399 multifd-compression: MultiFDCompression (optional)
15400 Which compression method to use. Defaults to none. (Since 5.0)
15401
15402 multifd-zlib-level: int (optional)
15403 Set the compression level to be used in live migration, the com‐
15404 pression level is an integer between 0 and 9, where 0 means no
15405 compression, 1 means the best compression speed, and 9 means
15406 best compression ratio which will consume more CPU. Defaults to
15407 1. (Since 5.0)
15408
15409 multifd-zstd-level: int (optional)
15410 Set the compression level to be used in live migration, the com‐
15411 pression level is an integer between 0 and 20, where 0 means no
15412 compression, 1 means the best compression speed, and 20 means
15413 best compression ratio which will consume more CPU. Defaults to
15414 1. (Since 5.0)
15415
15416 block-bitmap-mapping: array of BitmapMigrationNodeAlias (optional)
15417 Maps block nodes and bitmaps on them to aliases for the purpose
15418 of dirty bitmap migration. Such aliases may for example be the
15419 corresponding names on the opposite site. The mapping must be
15420 one-to-one, but not necessarily complete: On the source, un‐
15421 mapped bitmaps and all bitmaps on unmapped nodes will be ig‐
15422 nored. On the destination, encountering an unmapped alias in
15423 the incoming migration stream will result in a report, and all
15424 further bitmap migration data will then be discarded. Note that
15425 the destination does not know about bitmaps it does not receive,
15426 so there is no limitation or requirement regarding the number of
15427 bitmaps received, or how they are named, or on which nodes they
15428 are placed. By default (when this parameter has never been
15429 set), bitmap names are mapped to themselves. Nodes are mapped
15430 to their block device name if there is one, and to their node
15431 name otherwise. (Since 5.2)
15432
15433 Features
15434 unstable
15435 Member x-checkpoint-delay is experimental.
15436
15437 Since
15438 2.4
15439
15440 query-migrate-parameters (Command)
15441 Returns information about the current migration parameters
15442
15443 Returns
15444 MigrationParameters
15445
15446 Since
15447 2.4
15448
15449 Example
15450 -> { "execute": "query-migrate-parameters" }
15451 <- { "return": {
15452 "decompress-threads": 2,
15453 "cpu-throttle-increment": 10,
15454 "compress-threads": 8,
15455 "compress-level": 1,
15456 "cpu-throttle-initial": 20,
15457 "max-bandwidth": 33554432,
15458 "downtime-limit": 300
15459 }
15460 }
15461
15462 client_migrate_info (Command)
15463 Set migration information for remote display. This makes the server
15464 ask the client to automatically reconnect using the new parameters once
15465 migration finished successfully. Only implemented for SPICE.
15466
15467 Arguments
15468 protocol: string
15469 must be "spice"
15470
15471 hostname: string
15472 migration target hostname
15473
15474 port: int (optional)
15475 spice tcp port for plaintext channels
15476
15477 tls-port: int (optional)
15478 spice tcp port for tls-secured channels
15479
15480 cert-subject: string (optional)
15481 server certificate subject
15482
15483 Since
15484 0.14
15485
15486 Example
15487 -> { "execute": "client_migrate_info",
15488 "arguments": { "protocol": "spice",
15489 "hostname": "virt42.lab.kraxel.org",
15490 "port": 1234 } }
15491 <- { "return": {} }
15492
15493 migrate-start-postcopy (Command)
15494 Followup to a migration command to switch the migration to postcopy
15495 mode. The postcopy-ram capability must be set on both source and des‐
15496 tination before the original migration command.
15497
15498 Since
15499 2.5
15500
15501 Example
15502 -> { "execute": "migrate-start-postcopy" }
15503 <- { "return": {} }
15504
15505 MIGRATION (Event)
15506 Emitted when a migration event happens
15507
15508 Arguments
15509 status: MigrationStatus
15510 MigrationStatus describing the current migration status.
15511
15512 Since
15513 2.4
15514
15515 Example
15516 <- {"timestamp": {"seconds": 1432121972, "microseconds": 744001},
15517 "event": "MIGRATION",
15518 "data": {"status": "completed"} }
15519
15520 MIGRATION_PASS (Event)
15521 Emitted from the source side of a migration at the start of each pass
15522 (when it syncs the dirty bitmap)
15523
15524 Arguments
15525 pass: int
15526 An incrementing count (starting at 1 on the first pass)
15527
15528 Since
15529 2.6
15530
15531 Example
15532 { "timestamp": {"seconds": 1449669631, "microseconds": 239225},
15533 "event": "MIGRATION_PASS", "data": {"pass": 2} }
15534
15535 COLOMessage (Enum)
15536 The message transmission between Primary side and Secondary side.
15537
15538 Values
15539 checkpoint-ready
15540 Secondary VM (SVM) is ready for checkpointing
15541
15542 checkpoint-request
15543 Primary VM (PVM) tells SVM to prepare for checkpointing
15544
15545 checkpoint-reply
15546 SVM gets PVM's checkpoint request
15547
15548 vmstate-send
15549 VM's state will be sent by PVM.
15550
15551 vmstate-size
15552 The total size of VMstate.
15553
15554 vmstate-received
15555 VM's state has been received by SVM.
15556
15557 vmstate-loaded
15558 VM's state has been loaded by SVM.
15559
15560 Since
15561 2.8
15562
15563 COLOMode (Enum)
15564 The COLO current mode.
15565
15566 Values
15567 none COLO is disabled.
15568
15569 primary
15570 COLO node in primary side.
15571
15572 secondary
15573 COLO node in slave side.
15574
15575 Since
15576 2.8
15577
15578 FailoverStatus (Enum)
15579 An enumeration of COLO failover status
15580
15581 Values
15582 none no failover has ever happened
15583
15584 require
15585 got failover requirement but not handled
15586
15587 active in the process of doing failover
15588
15589 completed
15590 finish the process of failover
15591
15592 relaunch
15593 restart the failover process, from 'none' -> 'completed' (Since
15594 2.9)
15595
15596 Since
15597 2.8
15598
15599 COLO_EXIT (Event)
15600 Emitted when VM finishes COLO mode due to some errors happening or at
15601 the request of users.
15602
15603 Arguments
15604 mode: COLOMode
15605 report COLO mode when COLO exited.
15606
15607 reason: COLOExitReason
15608 describes the reason for the COLO exit.
15609
15610 Since
15611 3.1
15612
15613 Example
15614 <- { "timestamp": {"seconds": 2032141960, "microseconds": 417172},
15615 "event": "COLO_EXIT", "data": {"mode": "primary", "reason": "request" } }
15616
15617 COLOExitReason (Enum)
15618 The reason for a COLO exit.
15619
15620 Values
15621 none failover has never happened. This state does not occur in the
15622 COLO_EXIT event, and is only visible in the result of
15623 query-colo-status.
15624
15625 request
15626 COLO exit is due to an external request.
15627
15628 error COLO exit is due to an internal error.
15629
15630 processing
15631 COLO is currently handling a failover (since 4.0).
15632
15633 Since
15634 3.1
15635
15636 x-colo-lost-heartbeat (Command)
15637 Tell qemu that heartbeat is lost, request it to do takeover procedures.
15638 If this command is sent to the PVM, the Primary side will exit COLO
15639 mode. If sent to the Secondary, the Secondary side will run failover
15640 work, then takes over server operation to become the service VM.
15641
15642 Features
15643 unstable
15644 This command is experimental.
15645
15646 Since
15647 2.8
15648
15649 Example
15650 -> { "execute": "x-colo-lost-heartbeat" }
15651 <- { "return": {} }
15652
15653 migrate_cancel (Command)
15654 Cancel the current executing migration process.
15655
15656 Returns
15657 nothing on success
15658
15659 Notes
15660 This command succeeds even if there is no migration process running.
15661
15662 Since
15663 0.14
15664
15665 Example
15666 -> { "execute": "migrate_cancel" }
15667 <- { "return": {} }
15668
15669 migrate-continue (Command)
15670 Continue migration when it's in a paused state.
15671
15672 Arguments
15673 state: MigrationStatus
15674 The state the migration is currently expected to be in
15675
15676 Returns
15677 nothing on success
15678
15679 Since
15680 2.11
15681
15682 Example
15683 -> { "execute": "migrate-continue" , "arguments":
15684 { "state": "pre-switchover" } }
15685 <- { "return": {} }
15686
15687 migrate (Command)
15688 Migrates the current running guest to another Virtual Machine.
15689
15690 Arguments
15691 uri: string
15692 the Uniform Resource Identifier of the destination VM
15693
15694 blk: boolean (optional)
15695 do block migration (full disk copy)
15696
15697 inc: boolean (optional)
15698 incremental disk copy migration
15699
15700 detach: boolean (optional)
15701 this argument exists only for compatibility reasons and is ig‐
15702 nored by QEMU
15703
15704 resume: boolean (optional)
15705 resume one paused migration, default "off". (since 3.0)
15706
15707 Returns
15708 nothing on success
15709
15710 Since
15711 0.14
15712
15713 Notes
15714 1. The 'query-migrate' command should be used to check migration's
15715 progress and final result (this information is provided by the 'sta‐
15716 tus' member)
15717
15718 2. All boolean arguments default to false
15719
15720 3. The user Monitor's "detach" argument is invalid in QMP and should
15721 not be used
15722
15723 Example
15724 -> { "execute": "migrate", "arguments": { "uri": "tcp:0:4446" } }
15725 <- { "return": {} }
15726
15727 migrate-incoming (Command)
15728 Start an incoming migration, the qemu must have been started with -in‐
15729 coming defer
15730
15731 Arguments
15732 uri: string
15733 The Uniform Resource Identifier identifying the source or ad‐
15734 dress to listen on
15735
15736 Returns
15737 nothing on success
15738
15739 Since
15740 2.3
15741
15742 Notes
15743 1. It's a bad idea to use a string for the uri, but it needs to stay
15744 compatible with -incoming and the format of the uri is already ex‐
15745 posed above libvirt.
15746
15747 2. QEMU must be started with -incoming defer to allow migrate-incoming
15748 to be used.
15749
15750 3. The uri format is the same as for -incoming
15751
15752 Example
15753 -> { "execute": "migrate-incoming",
15754 "arguments": { "uri": "tcp::4446" } }
15755 <- { "return": {} }
15756
15757 xen-save-devices-state (Command)
15758 Save the state of all devices to file. The RAM and the block devices of
15759 the VM are not saved by this command.
15760
15761 Arguments
15762 filename: string
15763 the file to save the state of the devices to as binary data. See
15764 xen-save-devices-state.txt for a description of the binary for‐
15765 mat.
15766
15767 live: boolean (optional)
15768 Optional argument to ask QEMU to treat this command as part of a
15769 live migration. Default to true. (since 2.11)
15770
15771 Returns
15772 Nothing on success
15773
15774 Since
15775 1.1
15776
15777 Example
15778 -> { "execute": "xen-save-devices-state",
15779 "arguments": { "filename": "/tmp/save" } }
15780 <- { "return": {} }
15781
15782 xen-set-global-dirty-log (Command)
15783 Enable or disable the global dirty log mode.
15784
15785 Arguments
15786 enable: boolean
15787 true to enable, false to disable.
15788
15789 Returns
15790 nothing
15791
15792 Since
15793 1.3
15794
15795 Example
15796 -> { "execute": "xen-set-global-dirty-log",
15797 "arguments": { "enable": true } }
15798 <- { "return": {} }
15799
15800 xen-load-devices-state (Command)
15801 Load the state of all devices from file. The RAM and the block devices
15802 of the VM are not loaded by this command.
15803
15804 Arguments
15805 filename: string
15806 the file to load the state of the devices from as binary data.
15807 See xen-save-devices-state.txt for a description of the binary
15808 format.
15809
15810 Since
15811 2.7
15812
15813 Example
15814 -> { "execute": "xen-load-devices-state",
15815 "arguments": { "filename": "/tmp/resume" } }
15816 <- { "return": {} }
15817
15818 xen-set-replication (Command)
15819 Enable or disable replication.
15820
15821 Arguments
15822 enable: boolean
15823 true to enable, false to disable.
15824
15825 primary: boolean
15826 true for primary or false for secondary.
15827
15828 failover: boolean (optional)
15829 true to do failover, false to stop. but cannot be specified if
15830 'enable' is true. default value is false.
15831
15832 Returns
15833 nothing.
15834
15835 Example
15836 -> { "execute": "xen-set-replication",
15837 "arguments": {"enable": true, "primary": false} }
15838 <- { "return": {} }
15839
15840 Since
15841 2.9
15842
15843 If
15844 CONFIG_REPLICATION
15845
15846 ReplicationStatus (Object)
15847 The result format for 'query-xen-replication-status'.
15848
15849 Members
15850 error: boolean
15851 true if an error happened, false if replication is normal.
15852
15853 desc: string (optional)
15854 the human readable error description string, when error is
15855 'true'.
15856
15857 Since
15858 2.9
15859
15860 If
15861 CONFIG_REPLICATION
15862
15863 query-xen-replication-status (Command)
15864 Query replication status while the vm is running.
15865
15866 Returns
15867 A ReplicationStatus object showing the status.
15868
15869 Example
15870 -> { "execute": "query-xen-replication-status" }
15871 <- { "return": { "error": false } }
15872
15873 Since
15874 2.9
15875
15876 If
15877 CONFIG_REPLICATION
15878
15879 xen-colo-do-checkpoint (Command)
15880 Xen uses this command to notify replication to trigger a checkpoint.
15881
15882 Returns
15883 nothing.
15884
15885 Example
15886 -> { "execute": "xen-colo-do-checkpoint" }
15887 <- { "return": {} }
15888
15889 Since
15890 2.9
15891
15892 If
15893 CONFIG_REPLICATION
15894
15895 COLOStatus (Object)
15896 The result format for 'query-colo-status'.
15897
15898 Members
15899 mode: COLOMode
15900 COLO running mode. If COLO is running, this field will return
15901 'primary' or 'secondary'.
15902
15903 last-mode: COLOMode
15904 COLO last running mode. If COLO is running, this field will re‐
15905 turn same like mode field, after failover we can use this field
15906 to get last colo mode. (since 4.0)
15907
15908 reason: COLOExitReason
15909 describes the reason for the COLO exit.
15910
15911 Since
15912 3.1
15913
15914 query-colo-status (Command)
15915 Query COLO status while the vm is running.
15916
15917 Returns
15918 A COLOStatus object showing the status.
15919
15920 Example
15921 -> { "execute": "query-colo-status" }
15922 <- { "return": { "mode": "primary", "last-mode": "none", "reason": "request" } }
15923
15924 Since
15925 3.1
15926
15927 migrate-recover (Command)
15928 Provide a recovery migration stream URI.
15929
15930 Arguments
15931 uri: string
15932 the URI to be used for the recovery of migration stream.
15933
15934 Returns
15935 nothing.
15936
15937 Example
15938 -> { "execute": "migrate-recover",
15939 "arguments": { "uri": "tcp:192.168.1.200:12345" } }
15940 <- { "return": {} }
15941
15942 Since
15943 3.0
15944
15945 migrate-pause (Command)
15946 Pause a migration. Currently it only supports postcopy.
15947
15948 Returns
15949 nothing.
15950
15951 Example
15952 -> { "execute": "migrate-pause" }
15953 <- { "return": {} }
15954
15955 Since
15956 3.0
15957
15958 UNPLUG_PRIMARY (Event)
15959 Emitted from source side of a migration when migration state is
15960 WAIT_UNPLUG. Device was unplugged by guest operating system. Device
15961 resources in QEMU are kept on standby to be able to re-plug it in case
15962 of migration failure.
15963
15964 Arguments
15965 device-id: string
15966 QEMU device id of the unplugged device
15967
15968 Since
15969 4.2
15970
15971 Example
15972 <- { "event": "UNPLUG_PRIMARY",
15973 "data": { "device-id": "hostdev0" },
15974 "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
15975
15976 DirtyRateVcpu (Object)
15977 Dirty rate of vcpu.
15978
15979 Members
15980 id: int
15981 vcpu index.
15982
15983 dirty-rate: int
15984 dirty rate.
15985
15986 Since
15987 6.2
15988
15989 DirtyRateStatus (Enum)
15990 An enumeration of dirtyrate status.
15991
15992 Values
15993 unstarted
15994 the dirtyrate thread has not been started.
15995
15996 measuring
15997 the dirtyrate thread is measuring.
15998
15999 measured
16000 the dirtyrate thread has measured and results are available.
16001
16002 Since
16003 5.2
16004
16005 DirtyRateMeasureMode (Enum)
16006 An enumeration of mode of measuring dirtyrate.
16007
16008 Values
16009 page-sampling
16010 calculate dirtyrate by sampling pages.
16011
16012 dirty-ring
16013 calculate dirtyrate by dirty ring.
16014
16015 dirty-bitmap
16016 calculate dirtyrate by dirty bitmap.
16017
16018 Since
16019 6.2
16020
16021 DirtyRateInfo (Object)
16022 Information about current dirty page rate of vm.
16023
16024 Members
16025 dirty-rate: int (optional)
16026 an estimate of the dirty page rate of the VM in units of MB/s,
16027 present only when estimating the rate has completed.
16028
16029 status: DirtyRateStatus
16030 status containing dirtyrate query status includes 'unstarted' or
16031 'measuring' or 'measured'
16032
16033 start-time: int
16034 start time in units of second for calculation
16035
16036 calc-time: int
16037 time in units of second for sample dirty pages
16038
16039 sample-pages: int
16040 page count per GB for sample dirty pages the default value is
16041 512 (since 6.1)
16042
16043 mode: DirtyRateMeasureMode
16044 mode containing method of calculate dirtyrate includes
16045 'page-sampling' and 'dirty-ring' (Since 6.2)
16046
16047 vcpu-dirty-rate: array of DirtyRateVcpu (optional)
16048 dirtyrate for each vcpu if dirty-ring mode specified (Since 6.2)
16049
16050 Since
16051 5.2
16052
16053 calc-dirty-rate (Command)
16054 start calculating dirty page rate for vm
16055
16056 Arguments
16057 calc-time: int
16058 time in units of second for sample dirty pages
16059
16060 sample-pages: int (optional)
16061 page count per GB for sample dirty pages the default value is
16062 512 (since 6.1)
16063
16064 mode: DirtyRateMeasureMode (optional)
16065 mechanism of calculating dirtyrate includes 'page-sampling' and
16066 'dirty-ring' (Since 6.1)
16067
16068 Since
16069 5.2
16070
16071 Example
16072 {"execute": "calc-dirty-rate", "arguments": {"calc-time": 1,
16073 'sample-pages': 512} }
16074
16075 query-dirty-rate (Command)
16076 query dirty page rate in units of MB/s for vm
16077
16078 Since
16079 5.2
16080
16081 DirtyLimitInfo (Object)
16082 Dirty page rate limit information of a virtual CPU.
16083
16084 Members
16085 cpu-index: int
16086 index of a virtual CPU.
16087
16088 limit-rate: int
16089 upper limit of dirty page rate (MB/s) for a virtual CPU, 0 means
16090 unlimited.
16091
16092 current-rate: int
16093 current dirty page rate (MB/s) for a virtual CPU.
16094
16095 Since
16096 7.1
16097
16098 set-vcpu-dirty-limit (Command)
16099 Set the upper limit of dirty page rate for virtual CPUs.
16100
16101 Requires KVM with accelerator property "dirty-ring-size" set. A vir‐
16102 tual CPU's dirty page rate is a measure of its memory load. To observe
16103 dirty page rates, use calc-dirty-rate.
16104
16105 Arguments
16106 cpu-index: int (optional)
16107 index of a virtual CPU, default is all.
16108
16109 dirty-rate: int
16110 upper limit of dirty page rate (MB/s) for virtual CPUs.
16111
16112 Since
16113 7.1
16114
16115 Example
16116 {"execute": "set-vcpu-dirty-limit"}
16117 "arguments": { "dirty-rate": 200,
16118 "cpu-index": 1 } }
16119
16120 cancel-vcpu-dirty-limit (Command)
16121 Cancel the upper limit of dirty page rate for virtual CPUs.
16122
16123 Cancel the dirty page limit for the vCPU which has been set with
16124 set-vcpu-dirty-limit command. Note that this command requires support
16125 from dirty ring, same as the "set-vcpu-dirty-limit".
16126
16127 Arguments
16128 cpu-index: int (optional)
16129 index of a virtual CPU, default is all.
16130
16131 Since
16132 7.1
16133
16134 Example
16135 {"execute": "cancel-vcpu-dirty-limit"}
16136 "arguments": { "cpu-index": 1 } }
16137
16138 query-vcpu-dirty-limit (Command)
16139 Returns information about virtual CPU dirty page rate limits, if any.
16140
16141 Since
16142 7.1
16143
16144 Example
16145 {"execute": "query-vcpu-dirty-limit"}
16146
16147 snapshot-save (Command)
16148 Save a VM snapshot
16149
16150 Arguments
16151 job-id: string
16152 identifier for the newly created job
16153
16154 tag: string
16155 name of the snapshot to create
16156
16157 vmstate: string
16158 block device node name to save vmstate to
16159
16160 devices: array of string
16161 list of block device node names to save a snapshot to
16162 Applications should not assume that the snapshot save is complete when
16163 this command returns. The job commands / events must be used to deter‐
16164 mine completion and to fetch details of any errors that arise.
16165
16166 Note that execution of the guest CPUs may be stopped during the time it
16167 takes to save the snapshot. A future version of QEMU may ensure CPUs
16168 are executing continuously.
16169
16170 It is strongly recommended that devices contain all writable block de‐
16171 vice nodes if a consistent snapshot is required.
16172
16173 If tag already exists, an error will be reported
16174
16175 Returns
16176 nothing
16177
16178 Example
16179 -> { "execute": "snapshot-save",
16180 "arguments": {
16181 "job-id": "snapsave0",
16182 "tag": "my-snap",
16183 "vmstate": "disk0",
16184 "devices": ["disk0", "disk1"]
16185 }
16186 }
16187 <- { "return": { } }
16188 <- {"event": "JOB_STATUS_CHANGE",
16189 "timestamp": {"seconds": 1432121972, "microseconds": 744001},
16190 "data": {"status": "created", "id": "snapsave0"}}
16191 <- {"event": "JOB_STATUS_CHANGE",
16192 "timestamp": {"seconds": 1432122172, "microseconds": 744001},
16193 "data": {"status": "running", "id": "snapsave0"}}
16194 <- {"event": "STOP",
16195 "timestamp": {"seconds": 1432122372, "microseconds": 744001} }
16196 <- {"event": "RESUME",
16197 "timestamp": {"seconds": 1432122572, "microseconds": 744001} }
16198 <- {"event": "JOB_STATUS_CHANGE",
16199 "timestamp": {"seconds": 1432122772, "microseconds": 744001},
16200 "data": {"status": "waiting", "id": "snapsave0"}}
16201 <- {"event": "JOB_STATUS_CHANGE",
16202 "timestamp": {"seconds": 1432122972, "microseconds": 744001},
16203 "data": {"status": "pending", "id": "snapsave0"}}
16204 <- {"event": "JOB_STATUS_CHANGE",
16205 "timestamp": {"seconds": 1432123172, "microseconds": 744001},
16206 "data": {"status": "concluded", "id": "snapsave0"}}
16207 -> {"execute": "query-jobs"}
16208 <- {"return": [{"current-progress": 1,
16209 "status": "concluded",
16210 "total-progress": 1,
16211 "type": "snapshot-save",
16212 "id": "snapsave0"}]}
16213
16214 Since
16215 6.0
16216
16217 snapshot-load (Command)
16218 Load a VM snapshot
16219
16220 Arguments
16221 job-id: string
16222 identifier for the newly created job
16223
16224 tag: string
16225 name of the snapshot to load.
16226
16227 vmstate: string
16228 block device node name to load vmstate from
16229
16230 devices: array of string
16231 list of block device node names to load a snapshot from
16232 Applications should not assume that the snapshot load is complete when
16233 this command returns. The job commands / events must be used to deter‐
16234 mine completion and to fetch details of any errors that arise.
16235
16236 Note that execution of the guest CPUs will be stopped during the time
16237 it takes to load the snapshot.
16238
16239 It is strongly recommended that devices contain all writable block de‐
16240 vice nodes that can have changed since the original snapshot-save com‐
16241 mand execution.
16242
16243 Returns
16244 nothing
16245
16246 Example
16247 -> { "execute": "snapshot-load",
16248 "arguments": {
16249 "job-id": "snapload0",
16250 "tag": "my-snap",
16251 "vmstate": "disk0",
16252 "devices": ["disk0", "disk1"]
16253 }
16254 }
16255 <- { "return": { } }
16256 <- {"event": "JOB_STATUS_CHANGE",
16257 "timestamp": {"seconds": 1472124172, "microseconds": 744001},
16258 "data": {"status": "created", "id": "snapload0"}}
16259 <- {"event": "JOB_STATUS_CHANGE",
16260 "timestamp": {"seconds": 1472125172, "microseconds": 744001},
16261 "data": {"status": "running", "id": "snapload0"}}
16262 <- {"event": "STOP",
16263 "timestamp": {"seconds": 1472125472, "microseconds": 744001} }
16264 <- {"event": "RESUME",
16265 "timestamp": {"seconds": 1472125872, "microseconds": 744001} }
16266 <- {"event": "JOB_STATUS_CHANGE",
16267 "timestamp": {"seconds": 1472126172, "microseconds": 744001},
16268 "data": {"status": "waiting", "id": "snapload0"}}
16269 <- {"event": "JOB_STATUS_CHANGE",
16270 "timestamp": {"seconds": 1472127172, "microseconds": 744001},
16271 "data": {"status": "pending", "id": "snapload0"}}
16272 <- {"event": "JOB_STATUS_CHANGE",
16273 "timestamp": {"seconds": 1472128172, "microseconds": 744001},
16274 "data": {"status": "concluded", "id": "snapload0"}}
16275 -> {"execute": "query-jobs"}
16276 <- {"return": [{"current-progress": 1,
16277 "status": "concluded",
16278 "total-progress": 1,
16279 "type": "snapshot-load",
16280 "id": "snapload0"}]}
16281
16282 Since
16283 6.0
16284
16285 snapshot-delete (Command)
16286 Delete a VM snapshot
16287
16288 Arguments
16289 job-id: string
16290 identifier for the newly created job
16291
16292 tag: string
16293 name of the snapshot to delete.
16294
16295 devices: array of string
16296 list of block device node names to delete a snapshot from
16297 Applications should not assume that the snapshot delete is complete
16298 when this command returns. The job commands / events must be used to
16299 determine completion and to fetch details of any errors that arise.
16300
16301 Returns
16302 nothing
16303
16304 Example
16305 -> { "execute": "snapshot-delete",
16306 "arguments": {
16307 "job-id": "snapdelete0",
16308 "tag": "my-snap",
16309 "devices": ["disk0", "disk1"]
16310 }
16311 }
16312 <- { "return": { } }
16313 <- {"event": "JOB_STATUS_CHANGE",
16314 "timestamp": {"seconds": 1442124172, "microseconds": 744001},
16315 "data": {"status": "created", "id": "snapdelete0"}}
16316 <- {"event": "JOB_STATUS_CHANGE",
16317 "timestamp": {"seconds": 1442125172, "microseconds": 744001},
16318 "data": {"status": "running", "id": "snapdelete0"}}
16319 <- {"event": "JOB_STATUS_CHANGE",
16320 "timestamp": {"seconds": 1442126172, "microseconds": 744001},
16321 "data": {"status": "waiting", "id": "snapdelete0"}}
16322 <- {"event": "JOB_STATUS_CHANGE",
16323 "timestamp": {"seconds": 1442127172, "microseconds": 744001},
16324 "data": {"status": "pending", "id": "snapdelete0"}}
16325 <- {"event": "JOB_STATUS_CHANGE",
16326 "timestamp": {"seconds": 1442128172, "microseconds": 744001},
16327 "data": {"status": "concluded", "id": "snapdelete0"}}
16328 -> {"execute": "query-jobs"}
16329 <- {"return": [{"current-progress": 1,
16330 "status": "concluded",
16331 "total-progress": 1,
16332 "type": "snapshot-delete",
16333 "id": "snapdelete0"}]}
16334
16335 Since
16336 6.0
16337
16339 Abort (Object)
16340 This action can be used to test transaction failure.
16341
16342 Since
16343 1.6
16344
16345 ActionCompletionMode (Enum)
16346 An enumeration of Transactional completion modes.
16347
16348 Values
16349 individual
16350 Do not attempt to cancel any other Actions if any Actions fail
16351 after the Transaction request succeeds. All Actions that can
16352 complete successfully will do so without waiting on others.
16353 This is the default.
16354
16355 grouped
16356 If any Action fails after the Transaction succeeds, cancel all
16357 Actions. Actions do not complete until all Actions are ready to
16358 complete. May be rejected by Actions that do not support this
16359 completion mode.
16360
16361 Since
16362 2.5
16363
16364 TransactionActionKind (Enum)
16365 Values
16366 abort Since 1.6
16367
16368 block-dirty-bitmap-add
16369 Since 2.5
16370
16371 block-dirty-bitmap-remove
16372 Since 4.2
16373
16374 block-dirty-bitmap-clear
16375 Since 2.5
16376
16377 block-dirty-bitmap-enable
16378 Since 4.0
16379
16380 block-dirty-bitmap-disable
16381 Since 4.0
16382
16383 block-dirty-bitmap-merge
16384 Since 4.0
16385
16386 blockdev-backup
16387 Since 2.3
16388
16389 blockdev-snapshot
16390 Since 2.5
16391
16392 blockdev-snapshot-internal-sync
16393 Since 1.7
16394
16395 blockdev-snapshot-sync
16396 since 1.1
16397
16398 drive-backup
16399 Since 1.6
16400
16401 Features
16402 deprecated
16403 Member drive-backup is deprecated. Use member blockdev-backup
16404 instead.
16405
16406 Since
16407 1.1
16408
16409 AbortWrapper (Object)
16410 Members
16411 data: Abort
16412 Not documented
16413
16414 Since
16415 1.6
16416
16417 BlockDirtyBitmapAddWrapper (Object)
16418 Members
16419 data: BlockDirtyBitmapAdd
16420 Not documented
16421
16422 Since
16423 2.5
16424
16425 BlockDirtyBitmapWrapper (Object)
16426 Members
16427 data: BlockDirtyBitmap
16428 Not documented
16429
16430 Since
16431 2.5
16432
16433 BlockDirtyBitmapMergeWrapper (Object)
16434 Members
16435 data: BlockDirtyBitmapMerge
16436 Not documented
16437
16438 Since
16439 4.0
16440
16441 BlockdevBackupWrapper (Object)
16442 Members
16443 data: BlockdevBackup
16444 Not documented
16445
16446 Since
16447 2.3
16448
16449 BlockdevSnapshotWrapper (Object)
16450 Members
16451 data: BlockdevSnapshot
16452 Not documented
16453
16454 Since
16455 2.5
16456
16457 BlockdevSnapshotInternalWrapper (Object)
16458 Members
16459 data: BlockdevSnapshotInternal
16460 Not documented
16461
16462 Since
16463 1.7
16464
16465 BlockdevSnapshotSyncWrapper (Object)
16466 Members
16467 data: BlockdevSnapshotSync
16468 Not documented
16469
16470 Since
16471 1.1
16472
16473 DriveBackupWrapper (Object)
16474 Members
16475 data: DriveBackup
16476 Not documented
16477
16478 Since
16479 1.6
16480
16481 TransactionAction (Object)
16482 A discriminated record of operations that can be performed with trans‐
16483 action.
16484
16485 Members
16486 type: TransactionActionKind
16487 Not documented
16488
16489 The members of AbortWrapper when type is "abort"
16490
16491 The members of BlockDirtyBitmapAddWrapper when type is
16492 "block-dirty-bitmap-add"
16493
16494 The members of BlockDirtyBitmapWrapper when type is "block-dirty-bit‐
16495 map-remove"
16496
16497 The members of BlockDirtyBitmapWrapper when type is "block-dirty-bit‐
16498 map-clear"
16499
16500 The members of BlockDirtyBitmapWrapper when type is "block-dirty-bit‐
16501 map-enable"
16502
16503 The members of BlockDirtyBitmapWrapper when type is "block-dirty-bit‐
16504 map-disable"
16505
16506 The members of BlockDirtyBitmapMergeWrapper when type is
16507 "block-dirty-bitmap-merge"
16508
16509 The members of BlockdevBackupWrapper when type is "blockdev-backup"
16510
16511 The members of BlockdevSnapshotWrapper when type is "blockdev-snapshot"
16512
16513 The members of BlockdevSnapshotInternalWrapper when type is "block‐
16514 dev-snapshot-internal-sync"
16515
16516 The members of BlockdevSnapshotSyncWrapper when type is "blockdev-snap‐
16517 shot-sync"
16518
16519 The members of DriveBackupWrapper when type is "drive-backup"
16520
16521 Since
16522 1.1
16523
16524 TransactionProperties (Object)
16525 Optional arguments to modify the behavior of a Transaction.
16526
16527 Members
16528 completion-mode: ActionCompletionMode (optional)
16529 Controls how jobs launched asynchronously by Actions will com‐
16530 plete or fail as a group. See ActionCompletionMode for details.
16531
16532 Since
16533 2.5
16534
16535 transaction (Command)
16536 Executes a number of transactionable QMP commands atomically. If any
16537 operation fails, then the entire set of actions will be abandoned and
16538 the appropriate error returned.
16539
16540 For external snapshots, the dictionary contains the device, the file to
16541 use for the new snapshot, and the format. The default format, if not
16542 specified, is qcow2.
16543
16544 Each new snapshot defaults to being created by QEMU (wiping any con‐
16545 tents if the file already exists), but it is also possible to reuse an
16546 externally-created file. In the latter case, you should ensure that
16547 the new image file has the same contents as the current one; QEMU can‐
16548 not perform any meaningful check. Typically this is achieved by using
16549 the current image file as the backing file for the new image.
16550
16551 On failure, the original disks pre-snapshot attempt will be used.
16552
16553 For internal snapshots, the dictionary contains the device and the
16554 snapshot's name. If an internal snapshot matching name already exists,
16555 the request will be rejected. Only some image formats support it, for
16556 example, qcow2, and rbd,
16557
16558 On failure, qemu will try delete the newly created internal snapshot in
16559 the transaction. When an I/O error occurs during deletion, the user
16560 needs to fix it later with qemu-img or other command.
16561
16562 Arguments
16563 actions: array of TransactionAction
16564 List of TransactionAction; information needed for the respective
16565 operations.
16566
16567 properties: TransactionProperties (optional)
16568 structure of additional options to control the execution of the
16569 transaction. See TransactionProperties for additional detail.
16570
16571 Returns
16572 nothing on success
16573
16574 Errors depend on the operations of the transaction
16575
16576 Note
16577 The transaction aborts on the first failure. Therefore, there will be
16578 information on only one failed operation returned in an error condi‐
16579 tion, and subsequent actions will not have been attempted.
16580
16581 Since
16582 1.1
16583
16584 Example
16585 -> { "execute": "transaction",
16586 "arguments": { "actions": [
16587 { "type": "blockdev-snapshot-sync", "data" : { "device": "ide-hd0",
16588 "snapshot-file": "/some/place/my-image",
16589 "format": "qcow2" } },
16590 { "type": "blockdev-snapshot-sync", "data" : { "node-name": "myfile",
16591 "snapshot-file": "/some/place/my-image2",
16592 "snapshot-node-name": "node3432",
16593 "mode": "existing",
16594 "format": "qcow2" } },
16595 { "type": "blockdev-snapshot-sync", "data" : { "device": "ide-hd1",
16596 "snapshot-file": "/some/place/my-image2",
16597 "mode": "existing",
16598 "format": "qcow2" } },
16599 { "type": "blockdev-snapshot-internal-sync", "data" : {
16600 "device": "ide-hd2",
16601 "name": "snapshot0" } } ] } }
16602 <- { "return": {} }
16603
16605 TraceEventState (Enum)
16606 State of a tracing event.
16607
16608 Values
16609 unavailable
16610 The event is statically disabled.
16611
16612 disabled
16613 The event is dynamically disabled.
16614
16615 enabled
16616 The event is dynamically enabled.
16617
16618 Since
16619 2.2
16620
16621 TraceEventInfo (Object)
16622 Information of a tracing event.
16623
16624 Members
16625 name: string
16626 Event name.
16627
16628 state: TraceEventState
16629 Tracing state.
16630
16631 vcpu: boolean
16632 Whether this is a per-vCPU event (since 2.7).
16633 An event is per-vCPU if it has the "vcpu" property in the
16634 "trace-events" files.
16635
16636 Since
16637 2.2
16638
16639 trace-event-get-state (Command)
16640 Query the state of events.
16641
16642 Arguments
16643 name: string
16644 Event name pattern (case-sensitive glob).
16645
16646 vcpu: int (optional)
16647 The vCPU to query (any by default; since 2.7).
16648
16649 Returns
16650 a list of TraceEventInfo for the matching events
16651
16652 An event is returned if:
16653
16654 • its name matches the name pattern, and
16655
16656 • if vcpu is given, the event has the "vcpu" property.
16657
16658 Therefore, if vcpu is given, the operation will only match per-vCPU
16659 events, returning their state on the specified vCPU. Special case: if
16660 name is an exact match, vcpu is given and the event does not have the
16661 "vcpu" property, an error is returned.
16662
16663 Since
16664 2.2
16665
16666 Example
16667 -> { "execute": "trace-event-get-state",
16668 "arguments": { "name": "qemu_memalign" } }
16669 <- { "return": [ { "name": "qemu_memalign", "state": "disabled", "vcpu": false } ] }
16670
16671 trace-event-set-state (Command)
16672 Set the dynamic tracing state of events.
16673
16674 Arguments
16675 name: string
16676 Event name pattern (case-sensitive glob).
16677
16678 enable: boolean
16679 Whether to enable tracing.
16680
16681 ignore-unavailable: boolean (optional)
16682 Do not match unavailable events with name.
16683
16684 vcpu: int (optional)
16685 The vCPU to act upon (all by default; since 2.7).
16686 An event's state is modified if: - its name matches the name pattern,
16687 and - if vcpu is given, the event has the "vcpu" property.
16688
16689 Therefore, if vcpu is given, the operation will only match per-vCPU
16690 events, setting their state on the specified vCPU. Special case: if
16691 name is an exact match, vcpu is given and the event does not have the
16692 "vcpu" property, an error is returned.
16693
16694 Since
16695 2.2
16696
16697 Example
16698 -> { "execute": "trace-event-set-state",
16699 "arguments": { "name": "qemu_memalign", "enable": true } }
16700 <- { "return": {} }
16701
16703 CompatPolicyInput (Enum)
16704 Policy for handling "funny" input.
16705
16706 Values
16707 accept Accept silently
16708
16709 reject Reject with an error
16710
16711 crash abort() the process
16712
16713 Since
16714 6.0
16715
16716 CompatPolicyOutput (Enum)
16717 Policy for handling "funny" output.
16718
16719 Values
16720 accept Pass on unchanged
16721
16722 hide Filter out
16723
16724 Since
16725 6.0
16726
16727 CompatPolicy (Object)
16728 Policy for handling deprecated management interfaces.
16729
16730 This is intended for testing users of the management interfaces.
16731
16732 Limitation: covers only syntactic aspects of QMP, i.e. stuff tagged
16733 with feature 'deprecated'. We may want to extend it to cover semantic
16734 aspects and CLI.
16735
16736 Limitation: deprecated-output policy hide is not implemented for enu‐
16737 meration values. They behave the same as with policy accept.
16738
16739 Members
16740 deprecated-input: CompatPolicyInput (optional)
16741 how to handle deprecated input (default 'accept')
16742
16743 deprecated-output: CompatPolicyOutput (optional)
16744 how to handle deprecated output (default 'accept')
16745
16746 unstable-input: CompatPolicyInput (optional)
16747 how to handle unstable input (default 'accept') (since 6.2)
16748
16749 unstable-output: CompatPolicyOutput (optional)
16750 how to handle unstable output (default 'accept') (since 6.2)
16751
16752 Since
16753 6.0
16754
16756 qmp_capabilities (Command)
16757 Enable QMP capabilities.
16758
16759 Arguments:
16760
16761 Arguments
16762 enable: array of QMPCapability (optional)
16763 An optional list of QMPCapability values to enable. The client
16764 must not enable any capability that is not mentioned in the QMP
16765 greeting message. If the field is not provided, it means no QMP
16766 capabilities will be enabled. (since 2.12)
16767
16768 Example
16769 -> { "execute": "qmp_capabilities",
16770 "arguments": { "enable": [ "oob" ] } }
16771 <- { "return": {} }
16772
16773 Notes
16774 This command is valid exactly when first connecting: it must be issued
16775 before any other command will be accepted, and will fail once the moni‐
16776 tor is accepting other commands. (see qemu docs/interop/qmp-spec.txt)
16777
16778 The QMP client needs to explicitly enable QMP capabilities, otherwise
16779 all the QMP capabilities will be turned off by default.
16780
16781 Since
16782 0.13
16783
16784 QMPCapability (Enum)
16785 Enumeration of capabilities to be advertised during initial client con‐
16786 nection, used for agreeing on particular QMP extension behaviors.
16787
16788 Values
16789 oob QMP ability to support out-of-band requests. (Please refer to
16790 qmp-spec.txt for more information on OOB)
16791
16792 Since
16793 2.12
16794
16795 VersionTriple (Object)
16796 A three-part version number.
16797
16798 Members
16799 major: int
16800 The major version number.
16801
16802 minor: int
16803 The minor version number.
16804
16805 micro: int
16806 The micro version number.
16807
16808 Since
16809 2.4
16810
16811 VersionInfo (Object)
16812 A description of QEMU's version.
16813
16814 Members
16815 qemu: VersionTriple
16816 The version of QEMU. By current convention, a micro version of
16817 50 signifies a development branch. A micro version greater than
16818 or equal to 90 signifies a release candidate for the next minor
16819 version. A micro version of less than 50 signifies a stable re‐
16820 lease.
16821
16822 package: string
16823 QEMU will always set this field to an empty string. Downstream
16824 versions of QEMU should set this to a non-empty string. The ex‐
16825 act format depends on the downstream however it highly recom‐
16826 mended that a unique name is used.
16827
16828 Since
16829 0.14
16830
16831 query-version (Command)
16832 Returns the current version of QEMU.
16833
16834 Returns
16835 A VersionInfo object describing the current version of QEMU.
16836
16837 Since
16838 0.14
16839
16840 Example
16841 -> { "execute": "query-version" }
16842 <- {
16843 "return":{
16844 "qemu":{
16845 "major":0,
16846 "minor":11,
16847 "micro":5
16848 },
16849 "package":""
16850 }
16851 }
16852
16853 CommandInfo (Object)
16854 Information about a QMP command
16855
16856 Members
16857 name: string
16858 The command name
16859
16860 Since
16861 0.14
16862
16863 query-commands (Command)
16864 Return a list of supported QMP commands by this server
16865
16866 Returns
16867 A list of CommandInfo for all supported commands
16868
16869 Since
16870 0.14
16871
16872 Example
16873 -> { "execute": "query-commands" }
16874 <- {
16875 "return":[
16876 {
16877 "name":"query-balloon"
16878 },
16879 {
16880 "name":"system_powerdown"
16881 }
16882 ]
16883 }
16884
16885 Note
16886 This example has been shortened as the real response is too long.
16887
16888 quit (Command)
16889 This command will cause the QEMU process to exit gracefully. While ev‐
16890 ery attempt is made to send the QMP response before terminating, this
16891 is not guaranteed. When using this interface, a premature EOF would
16892 not be unexpected.
16893
16894 Since
16895 0.14
16896
16897 Example
16898 -> { "execute": "quit" }
16899 <- { "return": {} }
16900
16901 MonitorMode (Enum)
16902 An enumeration of monitor modes.
16903
16904 Values
16905 readline
16906 HMP monitor (human-oriented command line interface)
16907
16908 control
16909 QMP monitor (JSON-based machine interface)
16910
16911 Since
16912 5.0
16913
16914 MonitorOptions (Object)
16915 Options to be used for adding a new monitor.
16916
16917 Members
16918 id: string (optional)
16919 Name of the monitor
16920
16921 mode: MonitorMode (optional)
16922
16923 Selects the monitor mode (default: readline in the system
16924 emulator, control in qemu-storage-daemon)
16925
16926 pretty: boolean (optional)
16927 Enables pretty printing (QMP only)
16928
16929 chardev: string
16930 Name of a character device to expose the monitor on
16931
16932 Since
16933 5.0
16934
16936 query-qmp-schema (Command)
16937 Command query-qmp-schema exposes the QMP wire ABI as an array of
16938 SchemaInfo. This lets QMP clients figure out what commands and events
16939 are available in this QEMU, and their parameters and results.
16940
16941 However, the SchemaInfo can't reflect all the rules and restrictions
16942 that apply to QMP. It's interface introspection (figuring out what's
16943 there), not interface specification. The specification is in the QAPI
16944 schema.
16945
16946 Furthermore, while we strive to keep the QMP wire format backwards-com‐
16947 patible across qemu versions, the introspection output is not guaran‐
16948 teed to have the same stability. For example, one version of qemu may
16949 list an object member as an optional non-variant, while another lists
16950 the same member only through the object's variants; or the type of a
16951 member may change from a generic string into a specific enum or from
16952 one specific type into an alternate that includes the original type
16953 alongside something else.
16954
16955 Returns
16956 array of SchemaInfo, where each element describes an entity in the ABI:
16957 command, event, type, ...
16958
16959 The order of the various SchemaInfo is unspecified; however, all names
16960 are guaranteed to be unique (no name will be duplicated with different
16961 meta-types).
16962
16963 Note
16964 the QAPI schema is also used to help define internal interfaces, by
16965 defining QAPI types. These are not part of the QMP wire ABI, and
16966 therefore not returned by this command.
16967
16968 Since
16969 2.5
16970
16971 SchemaMetaType (Enum)
16972 This is a SchemaInfo's meta type, i.e. the kind of entity it describes.
16973
16974 Values
16975 builtin
16976 a predefined type such as 'int' or 'bool'.
16977
16978 enum an enumeration type
16979
16980 array an array type
16981
16982 object an object type (struct or union)
16983
16984 alternate
16985 an alternate type
16986
16987 command
16988 a QMP command
16989
16990 event a QMP event
16991
16992 Since
16993 2.5
16994
16995 SchemaInfo (Object)
16996 Members
16997 name: string
16998 the entity's name, inherited from base. The SchemaInfo is al‐
16999 ways referenced by this name. Commands and events have the name
17000 defined in the QAPI schema. Unlike command and event names,
17001 type names are not part of the wire ABI. Consequently, type
17002 names are meaningless strings here, although they are still
17003 guaranteed unique regardless of meta-type.
17004
17005 meta-type: SchemaMetaType
17006 the entity's meta type, inherited from base.
17007
17008 features: array of string (optional)
17009 names of features associated with the entity, in no particular
17010 order. (since 4.1 for object types, 4.2 for commands, 5.0 for
17011 the rest)
17012
17013 The members of SchemaInfoBuiltin when meta-type is "builtin"
17014
17015 The members of SchemaInfoEnum when meta-type is "enum"
17016
17017 The members of SchemaInfoArray when meta-type is "array"
17018
17019 The members of SchemaInfoObject when meta-type is "object"
17020
17021 The members of SchemaInfoAlternate when meta-type is "alternate"
17022
17023 The members of SchemaInfoCommand when meta-type is "command"
17024
17025 The members of SchemaInfoEvent when meta-type is "event"
17026 Additional members depend on the value of meta-type.
17027
17028 Since
17029 2.5
17030
17031 SchemaInfoBuiltin (Object)
17032 Additional SchemaInfo members for meta-type 'builtin'.
17033
17034 Members
17035 json-type: JSONType
17036 the JSON type used for this type on the wire.
17037
17038 Since
17039 2.5
17040
17041 JSONType (Enum)
17042 The four primitive and two structured types according to RFC 8259 sec‐
17043 tion 1, plus 'int' (split off 'number'), plus the obvious top type
17044 'value'.
17045
17046 Values
17047 string Not documented
17048
17049 number Not documented
17050
17051 int Not documented
17052
17053 boolean
17054 Not documented
17055
17056 null Not documented
17057
17058 object Not documented
17059
17060 array Not documented
17061
17062 value Not documented
17063
17064 Since
17065 2.5
17066
17067 SchemaInfoEnum (Object)
17068 Additional SchemaInfo members for meta-type 'enum'.
17069
17070 Members
17071 members: array of SchemaInfoEnumMember
17072 the enum type's members, in no particular order (since 6.2).
17073
17074 values: array of string
17075 the enumeration type's member names, in no particular order.
17076 Redundant with members. Just for backward compatibility.
17077
17078 Features
17079 deprecated
17080 Member values is deprecated. Use members instead.
17081 Values of this type are JSON string on the wire.
17082
17083 Since
17084 2.5
17085
17086 SchemaInfoEnumMember (Object)
17087 An object member.
17088
17089 Members
17090 name: string
17091 the member's name, as defined in the QAPI schema.
17092
17093 features: array of string (optional)
17094 names of features associated with the member, in no particular
17095 order.
17096
17097 Since
17098 6.2
17099
17100 SchemaInfoArray (Object)
17101 Additional SchemaInfo members for meta-type 'array'.
17102
17103 Members
17104 element-type: string
17105 the array type's element type.
17106 Values of this type are JSON array on the wire.
17107
17108 Since
17109 2.5
17110
17111 SchemaInfoObject (Object)
17112 Additional SchemaInfo members for meta-type 'object'.
17113
17114 Members
17115 members: array of SchemaInfoObjectMember
17116 the object type's (non-variant) members, in no particular order.
17117
17118 tag: string (optional)
17119 the name of the member serving as type tag. An element of mem‐
17120 bers with this name must exist.
17121
17122 variants: array of SchemaInfoObjectVariant (optional)
17123 variant members, i.e. additional members that depend on the type
17124 tag's value. Present exactly when tag is present. The variants
17125 are in no particular order, and may even differ from the order
17126 of the values of the enum type of the tag.
17127 Values of this type are JSON object on the wire.
17128
17129 Since
17130 2.5
17131
17132 SchemaInfoObjectMember (Object)
17133 An object member.
17134
17135 Members
17136 name: string
17137 the member's name, as defined in the QAPI schema.
17138
17139 type: string
17140 the name of the member's type.
17141
17142 default: value (optional)
17143 default when used as command parameter. If absent, the parame‐
17144 ter is mandatory. If present, the value must be null. The pa‐
17145 rameter is optional, and behavior when it's missing is not spec‐
17146 ified here. Future extension: if present and non-null, the pa‐
17147 rameter is optional, and defaults to this value.
17148
17149 features: array of string (optional)
17150 names of features associated with the member, in no particular
17151 order. (since 5.0)
17152
17153 Since
17154 2.5
17155
17156 SchemaInfoObjectVariant (Object)
17157 The variant members for a value of the type tag.
17158
17159 Members
17160 case: string
17161 a value of the type tag.
17162
17163 type: string
17164 the name of the object type that provides the variant members
17165 when the type tag has value case.
17166
17167 Since
17168 2.5
17169
17170 SchemaInfoAlternate (Object)
17171 Additional SchemaInfo members for meta-type 'alternate'.
17172
17173 Members
17174 members: array of SchemaInfoAlternateMember
17175 the alternate type's members, in no particular order. The mem‐
17176 bers' wire encoding is distinct, see docs/de‐
17177 vel/qapi-code-gen.txt section Alternate types.
17178 On the wire, this can be any of the members.
17179
17180 Since
17181 2.5
17182
17183 SchemaInfoAlternateMember (Object)
17184 An alternate member.
17185
17186 Members
17187 type: string
17188 the name of the member's type.
17189
17190 Since
17191 2.5
17192
17193 SchemaInfoCommand (Object)
17194 Additional SchemaInfo members for meta-type 'command'.
17195
17196 Members
17197 arg-type: string
17198 the name of the object type that provides the command's parame‐
17199 ters.
17200
17201 ret-type: string
17202 the name of the command's result type.
17203
17204 allow-oob: boolean (optional)
17205 whether the command allows out-of-band execution, defaults to
17206 false (Since: 2.12)
17207
17208 TODO
17209 success-response (currently irrelevant, because it's QGA, not QMP)
17210
17211 Since
17212 2.5
17213
17214 SchemaInfoEvent (Object)
17215 Additional SchemaInfo members for meta-type 'event'.
17216
17217 Members
17218 arg-type: string
17219 the name of the object type that provides the event's parame‐
17220 ters.
17221
17222 Since
17223 2.5
17224
17226 ObjectPropertyInfo (Object)
17227 Members
17228 name: string
17229 the name of the property
17230
17231 type: string
17232 the type of the property. This will typically come in one of
17233 four forms:
17234
17235 1. A primitive type such as 'u8', 'u16', 'bool', 'str', or 'dou‐
17236 ble'. These types are mapped to the appropriate JSON type.
17237
17238 2. A child type in the form 'child<subtype>' where subtype is a
17239 qdev device type name. Child properties create the composi‐
17240 tion tree.
17241
17242 3. A link type in the form 'link<subtype>' where subtype is a
17243 qdev device type name. Link properties form the device model
17244 graph.
17245
17246 description: string (optional)
17247 if specified, the description of the property.
17248
17249 default-value: value (optional)
17250 the default value, if any (since 5.0)
17251
17252 Since
17253 1.2
17254
17255 qom-list (Command)
17256 This command will list any properties of a object given a path in the
17257 object model.
17258
17259 Arguments
17260 path: string
17261 the path within the object model. See qom-get for a description
17262 of this parameter.
17263
17264 Returns
17265 a list of ObjectPropertyInfo that describe the properties of the ob‐
17266 ject.
17267
17268 Since
17269 1.2
17270
17271 Example
17272 -> { "execute": "qom-list",
17273 "arguments": { "path": "/chardevs" } }
17274 <- { "return": [ { "name": "type", "type": "string" },
17275 { "name": "parallel0", "type": "child<chardev-vc>" },
17276 { "name": "serial0", "type": "child<chardev-vc>" },
17277 { "name": "mon0", "type": "child<chardev-stdio>" } ] }
17278
17279 qom-get (Command)
17280 This command will get a property from a object model path and return
17281 the value.
17282
17283 Arguments
17284 path: string
17285 The path within the object model. There are two forms of sup‐
17286 ported paths--absolute and partial paths.
17287
17288 Absolute paths are derived from the root object and can follow
17289 child<> or link<> properties. Since they can follow link<>
17290 properties, they can be arbitrarily long. Absolute paths look
17291 like absolute filenames and are prefixed with a leading slash.
17292
17293 Partial paths look like relative filenames. They do not begin
17294 with a prefix. The matching rules for partial paths are subtle
17295 but designed to make specifying objects easy. At each level of
17296 the composition tree, the partial path is matched as an absolute
17297 path. The first match is not returned. At least two matches
17298 are searched for. A successful result is only returned if only
17299 one match is found. If more than one match is found, a flag is
17300 return to indicate that the match was ambiguous.
17301
17302 property: string
17303 The property name to read
17304
17305 Returns
17306 The property value. The type depends on the property type. child<> and
17307 link<> properties are returned as #str pathnames. All integer property
17308 types (u8, u16, etc) are returned as #int.
17309
17310 Since
17311 1.2
17312
17313 Example
17314 1. Use absolute path
17315
17316 -> { "execute": "qom-get",
17317 "arguments": { "path": "/machine/unattached/device[0]",
17318 "property": "hotplugged" } }
17319 <- { "return": false }
17320
17321 2. Use partial path
17322
17323 -> { "execute": "qom-get",
17324 "arguments": { "path": "unattached/sysbus",
17325 "property": "type" } }
17326 <- { "return": "System" }
17327
17328 qom-set (Command)
17329 This command will set a property from a object model path.
17330
17331 Arguments
17332 path: string
17333 see qom-get for a description of this parameter
17334
17335 property: string
17336 the property name to set
17337
17338 value: value
17339 a value who's type is appropriate for the property type. See
17340 qom-get for a description of type mapping.
17341
17342 Since
17343 1.2
17344
17345 Example
17346 -> { "execute": "qom-set",
17347 "arguments": { "path": "/machine",
17348 "property": "graphics",
17349 "value": false } }
17350 <- { "return": {} }
17351
17352 ObjectTypeInfo (Object)
17353 This structure describes a search result from qom-list-types
17354
17355 Members
17356 name: string
17357 the type name found in the search
17358
17359 abstract: boolean (optional)
17360 the type is abstract and can't be directly instantiated. Omit‐
17361 ted if false. (since 2.10)
17362
17363 parent: string (optional)
17364 Name of parent type, if any (since 2.10)
17365
17366 Since
17367 1.1
17368
17369 qom-list-types (Command)
17370 This command will return a list of types given search parameters
17371
17372 Arguments
17373 implements: string (optional)
17374 if specified, only return types that implement this type name
17375
17376 abstract: boolean (optional)
17377 if true, include abstract types in the results
17378
17379 Returns
17380 a list of ObjectTypeInfo or an empty list if no results are found
17381
17382 Since
17383 1.1
17384
17385 qom-list-properties (Command)
17386 List properties associated with a QOM object.
17387
17388 Arguments
17389 typename: string
17390 the type name of an object
17391
17392 Note
17393 objects can create properties at runtime, for example to describe links
17394 between different devices and/or objects. These properties are not in‐
17395 cluded in the output of this command.
17396
17397 Returns
17398 a list of ObjectPropertyInfo describing object properties
17399
17400 Since
17401 2.12
17402
17403 CanHostSocketcanProperties (Object)
17404 Properties for can-host-socketcan objects.
17405
17406 Members
17407 if: string
17408 interface name of the host system CAN bus to connect to
17409
17410 canbus: string
17411 object ID of the can-bus object to connect to the host interface
17412
17413 Since
17414 2.12
17415
17416 ColoCompareProperties (Object)
17417 Properties for colo-compare objects.
17418
17419 Members
17420 primary_in: string
17421 name of the character device backend to use for the primary in‐
17422 put (incoming packets are redirected to outdev)
17423
17424 secondary_in: string
17425 name of the character device backend to use for secondary input
17426 (incoming packets are only compared to the input on primary_in
17427 and then dropped)
17428
17429 outdev: string
17430 name of the character device backend to use for output
17431
17432 iothread: string
17433 name of the iothread to run in
17434
17435 notify_dev: string (optional)
17436 name of the character device backend to be used to communicate
17437 with the remote colo-frame (only for Xen COLO)
17438
17439 compare_timeout: int (optional)
17440 the maximum time to hold a packet from primary_in for comparison
17441 with an incoming packet on secondary_in in milliseconds (de‐
17442 fault: 3000)
17443
17444 expired_scan_cycle: int (optional)
17445 the interval at which colo-compare checks whether packets from
17446 primary have timed out, in milliseconds (default: 3000)
17447
17448 max_queue_size: int (optional)
17449 the maximum number of packets to keep in the queue for comparing
17450 with incoming packets from secondary_in. If the queue is full
17451 and additional packets are received, the additional packets are
17452 dropped. (default: 1024)
17453
17454 vnet_hdr_support: boolean (optional)
17455 if true, vnet header support is enabled (default: false)
17456
17457 Since
17458 2.8
17459
17460 CryptodevBackendProperties (Object)
17461 Properties for cryptodev-backend and cryptodev-backend-builtin objects.
17462
17463 Members
17464 queues: int (optional)
17465 the number of queues for the cryptodev backend. Ignored for
17466 cryptodev-backend and must be 1 for cryptodev-backend-builtin.
17467 (default: 1)
17468
17469 Since
17470 2.8
17471
17472 CryptodevVhostUserProperties (Object)
17473 Properties for cryptodev-vhost-user objects.
17474
17475 Members
17476 chardev: string
17477 the name of a Unix domain socket character device that connects
17478 to the vhost-user server
17479
17480 The members of CryptodevBackendProperties
17481
17482 Since
17483 2.12
17484
17485 DBusVMStateProperties (Object)
17486 Properties for dbus-vmstate objects.
17487
17488 Members
17489 addr: string
17490 the name of the DBus bus to connect to
17491
17492 id-list: string (optional)
17493 a comma separated list of DBus IDs of helpers whose data should
17494 be included in the VM state on migration
17495
17496 Since
17497 5.0
17498
17499 NetfilterInsert (Enum)
17500 Indicates where to insert a netfilter relative to a given other filter.
17501
17502 Values
17503 before insert before the specified filter
17504
17505 behind insert behind the specified filter
17506
17507 Since
17508 5.0
17509
17510 NetfilterProperties (Object)
17511 Properties for objects of classes derived from netfilter.
17512
17513 Members
17514 netdev: string
17515 id of the network device backend to filter
17516
17517 queue: NetFilterDirection (optional)
17518 indicates which queue(s) to filter (default: all)
17519
17520 status: string (optional)
17521 indicates whether the filter is enabled ("on") or disabled
17522 ("off") (default: "on")
17523
17524 position: string (optional)
17525 specifies where the filter should be inserted in the filter
17526 list. "head" means the filter is inserted at the head of the
17527 filter list, before any existing filters. "tail" means the fil‐
17528 ter is inserted at the tail of the filter list, behind any ex‐
17529 isting filters (default). "id=<id>" means the filter is in‐
17530 serted before or behind the filter specified by <id>, depending
17531 on the insert property. (default: "tail")
17532
17533 insert: NetfilterInsert (optional)
17534 where to insert the filter relative to the filter given in posi‐
17535 tion. Ignored if position is "head" or "tail". (default: be‐
17536 hind)
17537
17538 Since
17539 2.5
17540
17541 FilterBufferProperties (Object)
17542 Properties for filter-buffer objects.
17543
17544 Members
17545 interval: int
17546 a non-zero interval in microseconds. All packets arriving in
17547 the given interval are delayed until the end of the interval.
17548
17549 The members of NetfilterProperties
17550
17551 Since
17552 2.5
17553
17554 FilterDumpProperties (Object)
17555 Properties for filter-dump objects.
17556
17557 Members
17558 file: string
17559 the filename where the dumped packets should be stored
17560
17561 maxlen: int (optional)
17562 maximum number of bytes in a packet that are stored (default:
17563 65536)
17564
17565 The members of NetfilterProperties
17566
17567 Since
17568 2.5
17569
17570 FilterMirrorProperties (Object)
17571 Properties for filter-mirror objects.
17572
17573 Members
17574 outdev: string
17575 the name of a character device backend to which all incoming
17576 packets are mirrored
17577
17578 vnet_hdr_support: boolean (optional)
17579 if true, vnet header support is enabled (default: false)
17580
17581 The members of NetfilterProperties
17582
17583 Since
17584 2.6
17585
17586 FilterRedirectorProperties (Object)
17587 Properties for filter-redirector objects.
17588
17589 At least one of indev or outdev must be present. If both are present,
17590 they must not refer to the same character device backend.
17591
17592 Members
17593 indev: string (optional)
17594 the name of a character device backend from which packets are
17595 received and redirected to the filtered network device
17596
17597 outdev: string (optional)
17598 the name of a character device backend to which all incoming
17599 packets are redirected
17600
17601 vnet_hdr_support: boolean (optional)
17602 if true, vnet header support is enabled (default: false)
17603
17604 The members of NetfilterProperties
17605
17606 Since
17607 2.6
17608
17609 FilterRewriterProperties (Object)
17610 Properties for filter-rewriter objects.
17611
17612 Members
17613 vnet_hdr_support: boolean (optional)
17614 if true, vnet header support is enabled (default: false)
17615
17616 The members of NetfilterProperties
17617
17618 Since
17619 2.8
17620
17621 InputBarrierProperties (Object)
17622 Properties for input-barrier objects.
17623
17624 Members
17625 name: string
17626 the screen name as declared in the screens section of bar‐
17627 rier.conf
17628
17629 server: string (optional)
17630 hostname of the Barrier server (default: "localhost")
17631
17632 port: string (optional)
17633 TCP port of the Barrier server (default: "24800")
17634
17635 x-origin: string (optional)
17636 x coordinate of the leftmost pixel on the guest screen (default:
17637 "0")
17638
17639 y-origin: string (optional)
17640 y coordinate of the topmost pixel on the guest screen (default:
17641 "0")
17642
17643 width: string (optional)
17644 the width of secondary screen in pixels (default: "1920")
17645
17646 height: string (optional)
17647 the height of secondary screen in pixels (default: "1080")
17648
17649 Since
17650 4.2
17651
17652 InputLinuxProperties (Object)
17653 Properties for input-linux objects.
17654
17655 Members
17656 evdev: string
17657 the path of the host evdev device to use
17658
17659 grab_all: boolean (optional)
17660 if true, grab is toggled for all devices (e.g. both keyboard and
17661 mouse) instead of just one device (default: false)
17662
17663 repeat: boolean (optional)
17664 enables auto-repeat events (default: false)
17665
17666 grab-toggle: GrabToggleKeys (optional)
17667 the key or key combination that toggles device grab (default:
17668 ctrl-ctrl)
17669
17670 Since
17671 2.6
17672
17673 EventLoopBaseProperties (Object)
17674 Common properties for event loops
17675
17676 Members
17677 aio-max-batch: int (optional)
17678 maximum number of requests in a batch for the AIO engine, 0
17679 means that the engine will use its default. (default: 0)
17680
17681 thread-pool-min: int (optional)
17682 minimum number of threads reserved in the thread pool (de‐
17683 fault:0)
17684
17685 thread-pool-max: int (optional)
17686 maximum number of threads the thread pool can contain (de‐
17687 fault:64)
17688
17689 Since
17690 7.1
17691
17692 IothreadProperties (Object)
17693 Properties for iothread objects.
17694
17695 Members
17696 poll-max-ns: int (optional)
17697 the maximum number of nanoseconds to busy wait for events. 0
17698 means polling is disabled (default: 32768 on POSIX hosts, 0 oth‐
17699 erwise)
17700
17701 poll-grow: int (optional)
17702 the multiplier used to increase the polling time when the algo‐
17703 rithm detects it is missing events due to not polling long
17704 enough. 0 selects a default behaviour (default: 0)
17705
17706 poll-shrink: int (optional)
17707 the divisor used to decrease the polling time when the algorithm
17708 detects it is spending too long polling without encountering
17709 events. 0 selects a default behaviour (default: 0)
17710
17711 The members of EventLoopBaseProperties
17712 The aio-max-batch option is available since 6.1.
17713
17714 Since
17715 2.0
17716
17717 MainLoopProperties (Object)
17718 Properties for the main-loop object.
17719
17720 Members
17721 The members of EventLoopBaseProperties
17722
17723 Since
17724 7.1
17725
17726 MemoryBackendProperties (Object)
17727 Properties for objects of classes derived from memory-backend.
17728
17729 Members
17730 merge: boolean (optional)
17731 if true, mark the memory as mergeable (default depends on the
17732 machine type)
17733
17734 dump: boolean (optional)
17735 if true, include the memory in core dumps (default depends on
17736 the machine type)
17737
17738 host-nodes: array of int (optional)
17739 the list of NUMA host nodes to bind the memory to
17740
17741 policy: HostMemPolicy (optional)
17742 the NUMA policy (default: 'default')
17743
17744 prealloc: boolean (optional)
17745 if true, preallocate memory (default: false)
17746
17747 prealloc-threads: int (optional)
17748 number of CPU threads to use for prealloc (default: 1)
17749
17750 prealloc-context: string (optional)
17751 thread context to use for creation of preallocation threads (de‐
17752 fault: none) (since 7.2)
17753
17754 share: boolean (optional)
17755 if false, the memory is private to QEMU; if true, it is shared
17756 (default: false)
17757
17758 reserve: boolean (optional)
17759 if true, reserve swap space (or huge pages) if applicable (de‐
17760 fault: true) (since 6.1)
17761
17762 size: int
17763 size of the memory region in bytes
17764
17765 x-use-canonical-path-for-ramblock-id: boolean (optional)
17766 if true, the canonical path is used for ramblock-id. Disable
17767 this for 4.0 machine types or older to allow migration with
17768 newer QEMU versions. (default: false generally, but true for
17769 machine types <= 4.0)
17770
17771 Note
17772 prealloc=true and reserve=false cannot be set at the same time. With
17773 reserve=true, the behavior depends on the operating system: for exam‐
17774 ple, Linux will not reserve swap space for shared file mappings -- "not
17775 applicable". In contrast, reserve=false will bail out if it cannot be
17776 configured accordingly.
17777
17778 Since
17779 2.1
17780
17781 MemoryBackendFileProperties (Object)
17782 Properties for memory-backend-file objects.
17783
17784 Members
17785 align: int (optional)
17786 the base address alignment when QEMU mmap(2)s mem-path. Some
17787 backend stores specified by mem-path require an alignment dif‐
17788 ferent than the default one used by QEMU, e.g. the device DAX
17789 /dev/dax0.0 requires 2M alignment rather than 4K. In such cases,
17790 users can specify the required alignment via this option. 0 se‐
17791 lects a default alignment (currently the page size). (default:
17792 0)
17793
17794 discard-data: boolean (optional)
17795 if true, the file contents can be destroyed when QEMU exits, to
17796 avoid unnecessarily flushing data to the backing file. Note that
17797 discard-data is only an optimization, and QEMU might not discard
17798 file contents if it aborts unexpectedly or is terminated using
17799 SIGKILL. (default: false)
17800
17801 mem-path: string
17802 the path to either a shared memory or huge page filesystem mount
17803
17804 pmem: boolean (optional) (If: CONFIG_LIBPMEM)
17805 specifies whether the backing file specified by mem-path is in
17806 host persistent memory that can be accessed using the SNIA NVM
17807 programming model (e.g. Intel NVDIMM).
17808
17809 readonly: boolean (optional)
17810 if true, the backing file is opened read-only; if false, it is
17811 opened read-write. (default: false)
17812
17813 The members of MemoryBackendProperties
17814
17815 Since
17816 2.1
17817
17818 MemoryBackendMemfdProperties (Object)
17819 Properties for memory-backend-memfd objects.
17820
17821 The share boolean option is true by default with memfd.
17822
17823 Members
17824 hugetlb: boolean (optional)
17825 if true, the file to be created resides in the hugetlbfs
17826 filesystem (default: false)
17827
17828 hugetlbsize: int (optional)
17829 the hugetlb page size on systems that support multiple hugetlb
17830 page sizes (it must be a power of 2 value supported by the sys‐
17831 tem). 0 selects a default page size. This option is ignored if
17832 hugetlb is false. (default: 0)
17833
17834 seal: boolean (optional)
17835 if true, create a sealed-file, which will block further resizing
17836 of the memory (default: true)
17837
17838 The members of MemoryBackendProperties
17839
17840 Since
17841 2.12
17842
17843 MemoryBackendEpcProperties (Object)
17844 Properties for memory-backend-epc objects.
17845
17846 The share boolean option is true by default with epc
17847
17848 The merge boolean option is false by default with epc
17849
17850 The dump boolean option is false by default with epc
17851
17852 Members
17853 The members of MemoryBackendProperties
17854
17855 Since
17856 6.2
17857
17858 PrManagerHelperProperties (Object)
17859 Properties for pr-manager-helper objects.
17860
17861 Members
17862 path: string
17863 the path to a Unix domain socket for connecting to the external
17864 helper
17865
17866 Since
17867 2.11
17868
17869 QtestProperties (Object)
17870 Properties for qtest objects.
17871
17872 Members
17873 chardev: string
17874 the chardev to be used to receive qtest commands on.
17875
17876 log: string (optional)
17877 the path to a log file
17878
17879 Since
17880 6.0
17881
17882 RemoteObjectProperties (Object)
17883 Properties for x-remote-object objects.
17884
17885 Members
17886 fd: string
17887 file descriptor name previously passed via 'getfd' command
17888
17889 devid: string
17890 the id of the device to be associated with the file descriptor
17891
17892 Since
17893 6.0
17894
17895 VfioUserServerProperties (Object)
17896 Properties for x-vfio-user-server objects.
17897
17898 Members
17899 socket: SocketAddress
17900 socket to be used by the libvfio-user library
17901
17902 device: string
17903 the ID of the device to be emulated at the server
17904
17905 Since
17906 7.1
17907
17908 RngProperties (Object)
17909 Properties for objects of classes derived from rng.
17910
17911 Members
17912 opened: boolean (optional)
17913 if true, the device is opened immediately when applying this op‐
17914 tion and will probably fail when processing the next option.
17915 Don't use; only provided for compatibility. (default: false)
17916
17917 Features
17918 deprecated
17919 Member opened is deprecated. Setting true doesn't make sense,
17920 and false is already the default.
17921
17922 Since
17923 1.3
17924
17925 RngEgdProperties (Object)
17926 Properties for rng-egd objects.
17927
17928 Members
17929 chardev: string
17930 the name of a character device backend that provides the connec‐
17931 tion to the RNG daemon
17932
17933 The members of RngProperties
17934
17935 Since
17936 1.3
17937
17938 RngRandomProperties (Object)
17939 Properties for rng-random objects.
17940
17941 Members
17942 filename: string (optional)
17943 the filename of the device on the host to obtain entropy from
17944 (default: "/dev/urandom")
17945
17946 The members of RngProperties
17947
17948 Since
17949 1.3
17950
17951 SevGuestProperties (Object)
17952 Properties for sev-guest objects.
17953
17954 Members
17955 sev-device: string (optional)
17956 SEV device to use (default: "/dev/sev")
17957
17958 dh-cert-file: string (optional)
17959 guest owners DH certificate (encoded with base64)
17960
17961 session-file: string (optional)
17962 guest owners session parameters (encoded with base64)
17963
17964 policy: int (optional)
17965 SEV policy value (default: 0x1)
17966
17967 handle: int (optional)
17968 SEV firmware handle (default: 0)
17969
17970 cbitpos: int (optional)
17971 C-bit location in page table entry (default: 0)
17972
17973 reduced-phys-bits: int
17974 number of bits in physical addresses that become unavailable
17975 when SEV is enabled
17976
17977 kernel-hashes: boolean (optional)
17978 if true, add hashes of kernel/initrd/cmdline to a designated
17979 guest firmware page for measured boot with -kernel (default:
17980 false) (since 6.2)
17981
17982 Since
17983 2.12
17984
17985 ThreadContextProperties (Object)
17986 Properties for thread context objects.
17987
17988 Members
17989 cpu-affinity: array of int (optional)
17990 the list of host CPU numbers used as CPU affinity for all
17991 threads created in the thread context (default: QEMU main thread
17992 CPU affinity)
17993
17994 node-affinity: array of int (optional)
17995 the list of host node numbers that will be resolved to a list of
17996 host CPU numbers used as CPU affinity. This is a shortcut for
17997 specifying the list of host CPU numbers belonging to the host
17998 nodes manually by setting cpu-affinity. (default: QEMU main
17999 thread affinity)
18000
18001 Since
18002 7.2
18003
18004 ObjectType (Enum)
18005 Values
18006 authz-list
18007 Not documented
18008
18009 authz-listfile
18010 Not documented
18011
18012 authz-pam
18013 Not documented
18014
18015 authz-simple
18016 Not documented
18017
18018 can-bus
18019 Not documented
18020
18021 can-host-socketcan (If: CONFIG_LINUX)
18022 Not documented
18023
18024 colo-compare
18025 Not documented
18026
18027 cryptodev-backend
18028 Not documented
18029
18030 cryptodev-backend-builtin
18031 Not documented
18032
18033 cryptodev-backend-lkcf
18034 Not documented
18035
18036 cryptodev-vhost-user (If: CONFIG_VHOST_CRYPTO)
18037 Not documented
18038
18039 dbus-vmstate
18040 Not documented
18041
18042 filter-buffer
18043 Not documented
18044
18045 filter-dump
18046 Not documented
18047
18048 filter-mirror
18049 Not documented
18050
18051 filter-redirector
18052 Not documented
18053
18054 filter-replay
18055 Not documented
18056
18057 filter-rewriter
18058 Not documented
18059
18060 input-barrier
18061 Not documented
18062
18063 input-linux (If: CONFIG_LINUX)
18064 Not documented
18065
18066 iothread
18067 Not documented
18068
18069 main-loop
18070 Not documented
18071
18072 memory-backend-epc (If: CONFIG_LINUX)
18073 Not documented
18074
18075 memory-backend-file
18076 Not documented
18077
18078 memory-backend-memfd (If: CONFIG_LINUX)
18079 Not documented
18080
18081 memory-backend-ram
18082 Not documented
18083
18084 pef-guest
18085 Not documented
18086
18087 pr-manager-helper (If: CONFIG_LINUX)
18088 Not documented
18089
18090 qtest Not documented
18091
18092 rng-builtin
18093 Not documented
18094
18095 rng-egd
18096 Not documented
18097
18098 rng-random (If: CONFIG_POSIX)
18099 Not documented
18100
18101 secret Not documented
18102
18103 secret_keyring (If: CONFIG_SECRET_KEYRING)
18104 Not documented
18105
18106 sev-guest
18107 Not documented
18108
18109 thread-context
18110 Not documented
18111
18112 s390-pv-guest
18113 Not documented
18114
18115 throttle-group
18116 Not documented
18117
18118 tls-creds-anon
18119 Not documented
18120
18121 tls-creds-psk
18122 Not documented
18123
18124 tls-creds-x509
18125 Not documented
18126
18127 tls-cipher-suites
18128 Not documented
18129
18130 x-remote-object
18131 Not documented
18132
18133 x-vfio-user-server
18134 Not documented
18135
18136 Features
18137 unstable
18138 Member x-remote-object is experimental.
18139
18140 Since
18141 6.0
18142
18143 ObjectOptions (Object)
18144 Describes the options of a user creatable QOM object.
18145
18146 Members
18147 qom-type: ObjectType
18148 the class name for the object to be created
18149
18150 id: string
18151 the name of the new object
18152
18153 The members of AuthZListProperties when qom-type is "authz-list"
18154
18155 The members of AuthZListFileProperties when qom-type is "authz-list‐
18156 file"
18157
18158 The members of AuthZPAMProperties when qom-type is "authz-pam"
18159
18160 The members of AuthZSimpleProperties when qom-type is "authz-simple"
18161
18162 The members of CanHostSocketcanProperties when qom-type is
18163 "can-host-socketcan" (If: CONFIG_LINUX)
18164
18165 The members of ColoCompareProperties when qom-type is "colo-compare"
18166
18167 The members of CryptodevBackendProperties when qom-type is "cryp‐
18168 todev-backend"
18169
18170 The members of CryptodevBackendProperties when qom-type is "cryp‐
18171 todev-backend-builtin"
18172
18173 The members of CryptodevBackendProperties when qom-type is "cryp‐
18174 todev-backend-lkcf"
18175
18176 The members of CryptodevVhostUserProperties when qom-type is "cryp‐
18177 todev-vhost-user" (If: CONFIG_VHOST_CRYPTO)
18178
18179 The members of DBusVMStateProperties when qom-type is "dbus-vmstate"
18180
18181 The members of FilterBufferProperties when qom-type is "filter-buffer"
18182
18183 The members of FilterDumpProperties when qom-type is "filter-dump"
18184
18185 The members of FilterMirrorProperties when qom-type is "filter-mirror"
18186
18187 The members of FilterRedirectorProperties when qom-type is "fil‐
18188 ter-redirector"
18189
18190 The members of NetfilterProperties when qom-type is "filter-replay"
18191
18192 The members of FilterRewriterProperties when qom-type is "fil‐
18193 ter-rewriter"
18194
18195 The members of InputBarrierProperties when qom-type is "input-barrier"
18196
18197 The members of InputLinuxProperties when qom-type is "input-linux" (If:
18198 CONFIG_LINUX)
18199
18200 The members of IothreadProperties when qom-type is "iothread"
18201
18202 The members of MainLoopProperties when qom-type is "main-loop"
18203
18204 The members of MemoryBackendEpcProperties when qom-type is "mem‐
18205 ory-backend-epc" (If: CONFIG_LINUX)
18206
18207 The members of MemoryBackendFileProperties when qom-type is "mem‐
18208 ory-backend-file"
18209
18210 The members of MemoryBackendMemfdProperties when qom-type is "mem‐
18211 ory-backend-memfd" (If: CONFIG_LINUX)
18212
18213 The members of MemoryBackendProperties when qom-type is "memory-back‐
18214 end-ram"
18215
18216 The members of PrManagerHelperProperties when qom-type is "pr-man‐
18217 ager-helper" (If: CONFIG_LINUX)
18218
18219 The members of QtestProperties when qom-type is "qtest"
18220
18221 The members of RngProperties when qom-type is "rng-builtin"
18222
18223 The members of RngEgdProperties when qom-type is "rng-egd"
18224
18225 The members of RngRandomProperties when qom-type is "rng-random" (If:
18226 CONFIG_POSIX)
18227
18228 The members of SecretProperties when qom-type is "secret"
18229
18230 The members of SecretKeyringProperties when qom-type is "se‐
18231 cret_keyring" (If: CONFIG_SECRET_KEYRING)
18232
18233 The members of SevGuestProperties when qom-type is "sev-guest"
18234
18235 The members of ThreadContextProperties when qom-type is "thread-con‐
18236 text"
18237
18238 The members of ThrottleGroupProperties when qom-type is "throt‐
18239 tle-group"
18240
18241 The members of TlsCredsAnonProperties when qom-type is "tls-creds-anon"
18242
18243 The members of TlsCredsPskProperties when qom-type is "tls-creds-psk"
18244
18245 The members of TlsCredsX509Properties when qom-type is "tls-creds-x509"
18246
18247 The members of TlsCredsProperties when qom-type is "tls-cipher-suites"
18248
18249 The members of RemoteObjectProperties when qom-type is "x-remote-ob‐
18250 ject"
18251
18252 The members of VfioUserServerProperties when qom-type is
18253 "x-vfio-user-server"
18254
18255 Since
18256 6.0
18257
18258 object-add (Command)
18259 Create a QOM object.
18260
18261 Arguments
18262 The members of ObjectOptions
18263
18264 Returns
18265 Nothing on success Error if qom-type is not a valid class name
18266
18267 Since
18268 2.0
18269
18270 Example
18271 -> { "execute": "object-add",
18272 "arguments": { "qom-type": "rng-random", "id": "rng1",
18273 "filename": "/dev/hwrng" } }
18274 <- { "return": {} }
18275
18276 object-del (Command)
18277 Remove a QOM object.
18278
18279 Arguments
18280 id: string
18281 the name of the QOM object to remove
18282
18283 Returns
18284 Nothing on success Error if id is not a valid id for a QOM object
18285
18286 Since
18287 2.0
18288
18289 Example
18290 -> { "execute": "object-del", "arguments": { "id": "rng1" } }
18291 <- { "return": {} }
18292
18294 device-list-properties (Command)
18295 List properties associated with a device.
18296
18297 Arguments
18298 typename: string
18299 the type name of a device
18300
18301 Returns
18302 a list of ObjectPropertyInfo describing a devices properties
18303
18304 Note
18305 objects can create properties at runtime, for example to describe links
18306 between different devices and/or objects. These properties are not in‐
18307 cluded in the output of this command.
18308
18309 Since
18310 1.2
18311
18312 device_add (Command)
18313 Add a device.
18314
18315 Arguments
18316 driver: string
18317 the name of the new device's driver
18318
18319 bus: string (optional)
18320 the device's parent bus (device tree path)
18321
18322 id: string (optional)
18323 the device's ID, must be unique
18324
18325 Features
18326 json-cli
18327 If present, the "-device" command line option supports JSON syn‐
18328 tax with a structure identical to the arguments of this command.
18329
18330 json-cli-hotplug
18331 If present, the "-device" command line option supports JSON syn‐
18332 tax without the reference counting leak that broke hot-unplug
18333
18334 Notes
18335 Additional arguments depend on the type.
18336
18337 1. For detailed information about this command, please refer to the
18338 'docs/qdev-device-use.txt' file.
18339
18340 2. It's possible to list device properties by running QEMU with the
18341 "-device DEVICE,help" command-line argument, where DEVICE is the de‐
18342 vice's name
18343
18344 Example
18345 -> { "execute": "device_add",
18346 "arguments": { "driver": "e1000", "id": "net1",
18347 "bus": "pci.0",
18348 "mac": "52:54:00:12:34:56" } }
18349 <- { "return": {} }
18350
18351 TODO
18352 This command effectively bypasses QAPI completely due to its "addi‐
18353 tional arguments" business. It shouldn't have been added to the schema
18354 in this form. It should be qapified properly, or replaced by a prop‐
18355 erly qapified command.
18356
18357 Since
18358 0.13
18359
18360 device_del (Command)
18361 Remove a device from a guest
18362
18363 Arguments
18364 id: string
18365 the device's ID or QOM path
18366
18367 Returns
18368 Nothing on success If id is not a valid device, DeviceNotFound
18369
18370 Notes
18371 When this command completes, the device may not be removed from the
18372 guest. Hot removal is an operation that requires guest cooperation.
18373 This command merely requests that the guest begin the hot removal
18374 process. Completion of the device removal process is signaled with a
18375 DEVICE_DELETED event. Guest reset will automatically complete removal
18376 for all devices. If a guest-side error in the hot removal process is
18377 detected, the device will not be removed and a DEVICE_UNPLUG_GUEST_ER‐
18378 ROR event is sent. Some errors cannot be detected.
18379
18380 Since
18381 0.14
18382
18383 Example
18384 -> { "execute": "device_del",
18385 "arguments": { "id": "net1" } }
18386 <- { "return": {} }
18387
18388 -> { "execute": "device_del",
18389 "arguments": { "id": "/machine/peripheral-anon/device[0]" } }
18390 <- { "return": {} }
18391
18392 DEVICE_DELETED (Event)
18393 Emitted whenever the device removal completion is acknowledged by the
18394 guest. At this point, it's safe to reuse the specified device ID. De‐
18395 vice removal can be initiated by the guest or by HMP/QMP commands.
18396
18397 Arguments
18398 device: string (optional)
18399 the device's ID if it has one
18400
18401 path: string
18402 the device's QOM path
18403
18404 Since
18405 1.5
18406
18407 Example
18408 <- { "event": "DEVICE_DELETED",
18409 "data": { "device": "virtio-net-pci-0",
18410 "path": "/machine/peripheral/virtio-net-pci-0" },
18411 "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
18412
18413 DEVICE_UNPLUG_GUEST_ERROR (Event)
18414 Emitted when a device hot unplug fails due to a guest reported error.
18415
18416 Arguments
18417 device: string (optional)
18418 the device's ID if it has one
18419
18420 path: string
18421 the device's QOM path
18422
18423 Since
18424 6.2
18425
18426 Example
18427 <- { "event": "DEVICE_UNPLUG_GUEST_ERROR",
18428 "data": { "device": "core1",
18429 "path": "/machine/peripheral/core1" },
18430 "timestamp": { "seconds": 1615570772, "microseconds": 202844 } }
18431
18433 SysEmuTarget (Enum)
18434 The comprehensive enumeration of QEMU system emulation ("softmmu") tar‐
18435 gets. Run "./configure --help" in the project root directory, and look
18436 for the *-softmmu targets near the "--target-list" option. The individ‐
18437 ual target constants are not documented here, for the time being.
18438
18439 Values
18440 rx since 5.0
18441
18442 avr since 5.1
18443
18444 aarch64
18445 Not documented
18446
18447 alpha Not documented
18448
18449 arm Not documented
18450
18451 cris Not documented
18452
18453 hppa Not documented
18454
18455 i386 Not documented
18456
18457 loongarch64
18458 Not documented
18459
18460 m68k Not documented
18461
18462 microblaze
18463 Not documented
18464
18465 microblazeel
18466 Not documented
18467
18468 mips Not documented
18469
18470 mips64 Not documented
18471
18472 mips64el
18473 Not documented
18474
18475 mipsel Not documented
18476
18477 nios2 Not documented
18478
18479 or1k Not documented
18480
18481 ppc Not documented
18482
18483 ppc64 Not documented
18484
18485 riscv32
18486 Not documented
18487
18488 riscv64
18489 Not documented
18490
18491 s390x Not documented
18492
18493 sh4 Not documented
18494
18495 sh4eb Not documented
18496
18497 sparc Not documented
18498
18499 sparc64
18500 Not documented
18501
18502 tricore
18503 Not documented
18504
18505 x86_64 Not documented
18506
18507 xtensa Not documented
18508
18509 xtensaeb
18510 Not documented
18511
18512 Notes
18513 The resulting QMP strings can be appended to the "qemu-system-" prefix
18514 to produce the corresponding QEMU executable name. This is true even
18515 for "qemu-system-x86_64".
18516
18517 Since
18518 3.0
18519
18520 CpuS390State (Enum)
18521 An enumeration of cpu states that can be assumed by a virtual S390 CPU
18522
18523 Values
18524 uninitialized
18525 Not documented
18526
18527 stopped
18528 Not documented
18529
18530 check-stop
18531 Not documented
18532
18533 operating
18534 Not documented
18535
18536 load Not documented
18537
18538 Since
18539 2.12
18540
18541 CpuInfoS390 (Object)
18542 Additional information about a virtual S390 CPU
18543
18544 Members
18545 cpu-state: CpuS390State
18546 the virtual CPU's state
18547
18548 Since
18549 2.12
18550
18551 CpuInfoFast (Object)
18552 Information about a virtual CPU
18553
18554 Members
18555 cpu-index: int
18556 index of the virtual CPU
18557
18558 qom-path: string
18559 path to the CPU object in the QOM tree
18560
18561 thread-id: int
18562 ID of the underlying host thread
18563
18564 props: CpuInstanceProperties (optional)
18565 properties describing to which node/socket/core/thread virtual
18566 CPU belongs to, provided if supported by board
18567
18568 target: SysEmuTarget
18569 the QEMU system emulation target, which determines which addi‐
18570 tional fields will be listed (since 3.0)
18571
18572 The members of CpuInfoS390 when target is "s390x"
18573
18574 Since
18575 2.12
18576
18577 query-cpus-fast (Command)
18578 Returns information about all virtual CPUs.
18579
18580 Returns
18581 list of CpuInfoFast
18582
18583 Since
18584 2.12
18585
18586 Example
18587 -> { "execute": "query-cpus-fast" }
18588 <- { "return": [
18589 {
18590 "thread-id": 25627,
18591 "props": {
18592 "core-id": 0,
18593 "thread-id": 0,
18594 "socket-id": 0
18595 },
18596 "qom-path": "/machine/unattached/device[0]",
18597 "target":"x86_64",
18598 "cpu-index": 0
18599 },
18600 {
18601 "thread-id": 25628,
18602 "props": {
18603 "core-id": 0,
18604 "thread-id": 0,
18605 "socket-id": 1
18606 },
18607 "qom-path": "/machine/unattached/device[2]",
18608 "target":"x86_64",
18609 "cpu-index": 1
18610 }
18611 ]
18612 }
18613
18614 MachineInfo (Object)
18615 Information describing a machine.
18616
18617 Members
18618 name: string
18619 the name of the machine
18620
18621 alias: string (optional)
18622 an alias for the machine name
18623
18624 is-default: boolean (optional)
18625 whether the machine is default
18626
18627 cpu-max: int
18628 maximum number of CPUs supported by the machine type (since 1.5)
18629
18630 hotpluggable-cpus: boolean
18631 cpu hotplug via -device is supported (since 2.7)
18632
18633 numa-mem-supported: boolean
18634 true if '-numa node,mem' option is supported by the machine type
18635 and false otherwise (since 4.1)
18636
18637 deprecated: boolean
18638 if true, the machine type is deprecated and may be removed in
18639 future versions of QEMU according to the QEMU deprecation policy
18640 (since 4.1)
18641
18642 default-cpu-type: string (optional)
18643 default CPU model typename if none is requested via the -cpu ar‐
18644 gument. (since 4.2)
18645
18646 default-ram-id: string (optional)
18647 the default ID of initial RAM memory backend (since 5.2)
18648
18649 Since
18650 1.2
18651
18652 query-machines (Command)
18653 Return a list of supported machines
18654
18655 Returns
18656 a list of MachineInfo
18657
18658 Since
18659 1.2
18660
18661 CurrentMachineParams (Object)
18662 Information describing the running machine parameters.
18663
18664 Members
18665 wakeup-suspend-support: boolean
18666 true if the machine supports wake up from suspend
18667
18668 Since
18669 4.0
18670
18671 query-current-machine (Command)
18672 Return information on the current virtual machine.
18673
18674 Returns
18675 CurrentMachineParams
18676
18677 Since
18678 4.0
18679
18680 TargetInfo (Object)
18681 Information describing the QEMU target.
18682
18683 Members
18684 arch: SysEmuTarget
18685 the target architecture
18686
18687 Since
18688 1.2
18689
18690 query-target (Command)
18691 Return information about the target for this QEMU
18692
18693 Returns
18694 TargetInfo
18695
18696 Since
18697 1.2
18698
18699 UuidInfo (Object)
18700 Guest UUID information (Universally Unique Identifier).
18701
18702 Members
18703 UUID: string
18704 the UUID of the guest
18705
18706 Since
18707 0.14
18708
18709 Notes
18710 If no UUID was specified for the guest, a null UUID is returned.
18711
18712 query-uuid (Command)
18713 Query the guest UUID information.
18714
18715 Returns
18716 The UuidInfo for the guest
18717
18718 Since
18719 0.14
18720
18721 Example
18722 -> { "execute": "query-uuid" }
18723 <- { "return": { "UUID": "550e8400-e29b-41d4-a716-446655440000" } }
18724
18725 GuidInfo (Object)
18726 GUID information.
18727
18728 Members
18729 guid: string
18730 the globally unique identifier
18731
18732 Since
18733 2.9
18734
18735 query-vm-generation-id (Command)
18736 Show Virtual Machine Generation ID
18737
18738 Since
18739 2.9
18740
18741 system_reset (Command)
18742 Performs a hard reset of a guest.
18743
18744 Since
18745 0.14
18746
18747 Example
18748 -> { "execute": "system_reset" }
18749 <- { "return": {} }
18750
18751 system_powerdown (Command)
18752 Requests that a guest perform a powerdown operation.
18753
18754 Since
18755 0.14
18756
18757 Notes
18758 A guest may or may not respond to this command. This command returning
18759 does not indicate that a guest has accepted the request or that it has
18760 shut down. Many guests will respond to this command by prompting the
18761 user in some way.
18762
18763 Example
18764 -> { "execute": "system_powerdown" }
18765 <- { "return": {} }
18766
18767 system_wakeup (Command)
18768 Wake up guest from suspend. If the guest has wake-up from suspend sup‐
18769 port enabled (wakeup-suspend-support flag from query-current-machine),
18770 wake-up guest from suspend if the guest is in SUSPENDED state. Return
18771 an error otherwise.
18772
18773 Since
18774 1.1
18775
18776 Returns
18777 nothing.
18778
18779 Note
18780 prior to 4.0, this command does nothing in case the guest isn't sus‐
18781 pended.
18782
18783 Example
18784 -> { "execute": "system_wakeup" }
18785 <- { "return": {} }
18786
18787 LostTickPolicy (Enum)
18788 Policy for handling lost ticks in timer devices. Ticks end up getting
18789 lost when, for example, the guest is paused.
18790
18791 Values
18792 discard
18793 throw away the missed ticks and continue with future injection
18794 normally. The guest OS will see the timer jump ahead by a po‐
18795 tentially quite significant amount all at once, as if the inter‐
18796 vening chunk of time had simply not existed; needless to say,
18797 such a sudden jump can easily confuse a guest OS which is not
18798 specifically prepared to deal with it. Assuming the guest OS
18799 can deal correctly with the time jump, the time in the guest and
18800 in the host should now match.
18801
18802 delay continue to deliver ticks at the normal rate. The guest OS will
18803 not notice anything is amiss, as from its point of view time
18804 will have continued to flow normally. The time in the guest
18805 should now be behind the time in the host by exactly the amount
18806 of time during which ticks have been missed.
18807
18808 slew deliver ticks at a higher rate to catch up with the missed
18809 ticks. The guest OS will not notice anything is amiss, as from
18810 its point of view time will have continued to flow normally.
18811 Once the timer has managed to catch up with all the missing
18812 ticks, the time in the guest and in the host should match.
18813
18814 Since
18815 2.0
18816
18817 inject-nmi (Command)
18818 Injects a Non-Maskable Interrupt into the default CPU (x86/s390) or all
18819 CPUs (ppc64). The command fails when the guest doesn't support inject‐
18820 ing.
18821
18822 Returns
18823 If successful, nothing
18824
18825 Since
18826 0.14
18827
18828 Note
18829 prior to 2.1, this command was only supported for x86 and s390 VMs
18830
18831 Example
18832 -> { "execute": "inject-nmi" }
18833 <- { "return": {} }
18834
18835 KvmInfo (Object)
18836 Information about support for KVM acceleration
18837
18838 Members
18839 enabled: boolean
18840 true if KVM acceleration is active
18841
18842 present: boolean
18843 true if KVM acceleration is built into this executable
18844
18845 Since
18846 0.14
18847
18848 query-kvm (Command)
18849 Returns information about KVM acceleration
18850
18851 Returns
18852 KvmInfo
18853
18854 Since
18855 0.14
18856
18857 Example
18858 -> { "execute": "query-kvm" }
18859 <- { "return": { "enabled": true, "present": true } }
18860
18861 NumaOptionsType (Enum)
18862 Values
18863 node NUMA nodes configuration
18864
18865 dist NUMA distance configuration (since 2.10)
18866
18867 cpu property based CPU(s) to node mapping (Since: 2.10)
18868
18869 hmat-lb
18870 memory latency and bandwidth information (Since: 5.0)
18871
18872 hmat-cache
18873 memory side cache information (Since: 5.0)
18874
18875 Since
18876 2.1
18877
18878 NumaOptions (Object)
18879 A discriminated record of NUMA options. (for OptsVisitor)
18880
18881 Members
18882 type: NumaOptionsType
18883 Not documented
18884
18885 The members of NumaNodeOptions when type is "node"
18886
18887 The members of NumaDistOptions when type is "dist"
18888
18889 The members of NumaCpuOptions when type is "cpu"
18890
18891 The members of NumaHmatLBOptions when type is "hmat-lb"
18892
18893 The members of NumaHmatCacheOptions when type is "hmat-cache"
18894
18895 Since
18896 2.1
18897
18898 NumaNodeOptions (Object)
18899 Create a guest NUMA node. (for OptsVisitor)
18900
18901 Members
18902 nodeid: int (optional)
18903 NUMA node ID (increase by 1 from 0 if omitted)
18904
18905 cpus: array of int (optional)
18906
18907 VCPUs belonging to this node (assign VCPUS round-robin
18908 if omitted)
18909
18910 mem: int (optional)
18911 memory size of this node; mutually exclusive with memdev.
18912 Equally divide total memory among nodes if both mem and memdev
18913 are omitted.
18914
18915 memdev: string (optional)
18916 memory backend object. If specified for one node, it must be
18917 specified for all nodes.
18918
18919 initiator: int (optional)
18920 defined in ACPI 6.3 Chapter 5.2.27.3 Table 5-145, points to the
18921 nodeid which has the memory controller responsible for this NUMA
18922 node. This field provides additional information as to the ini‐
18923 tiator node that is closest (as in directly attached) to this
18924 node, and therefore has the best performance (since 5.0)
18925
18926 Since
18927 2.1
18928
18929 NumaDistOptions (Object)
18930 Set the distance between 2 NUMA nodes.
18931
18932 Members
18933 src: int
18934 source NUMA node.
18935
18936 dst: int
18937 destination NUMA node.
18938
18939 val: int
18940 NUMA distance from source node to destination node. When a node
18941 is unreachable from another node, set the distance between them
18942 to 255.
18943
18944 Since
18945 2.10
18946
18947 CXLFixedMemoryWindowOptions (Object)
18948 Create a CXL Fixed Memory Window
18949
18950 Members
18951 size: int
18952 Size of the Fixed Memory Window in bytes. Must be a multiple of
18953 256MiB.
18954
18955 interleave-granularity: int (optional)
18956 Number of contiguous bytes for which accesses will go to a given
18957 interleave target. Accepted values [256, 512, 1k, 2k, 4k, 8k,
18958 16k]
18959
18960 targets: array of string
18961 Target root bridge IDs from -device ...,id=<ID> for each root
18962 bridge.
18963 Since 7.1
18964
18965 CXLFMWProperties (Object)
18966 List of CXL Fixed Memory Windows.
18967
18968 Members
18969 cxl-fmw: array of CXLFixedMemoryWindowOptions
18970 List of CXLFixedMemoryWindowOptions
18971 Since 7.1
18972
18973 X86CPURegister32 (Enum)
18974 A X86 32-bit register
18975
18976 Values
18977 EAX Not documented
18978
18979 EBX Not documented
18980
18981 ECX Not documented
18982
18983 EDX Not documented
18984
18985 ESP Not documented
18986
18987 EBP Not documented
18988
18989 ESI Not documented
18990
18991 EDI Not documented
18992
18993 Since
18994 1.5
18995
18996 X86CPUFeatureWordInfo (Object)
18997 Information about a X86 CPU feature word
18998
18999 Members
19000 cpuid-input-eax: int
19001 Input EAX value for CPUID instruction for that feature word
19002
19003 cpuid-input-ecx: int (optional)
19004 Input ECX value for CPUID instruction for that feature word
19005
19006 cpuid-register: X86CPURegister32
19007 Output register containing the feature bits
19008
19009 features: int
19010 value of output register, containing the feature bits
19011
19012 Since
19013 1.5
19014
19015 DummyForceArrays (Object)
19016 Not used by QMP; hack to let us use X86CPUFeatureWordInfoList inter‐
19017 nally
19018
19019 Members
19020 unused: array of X86CPUFeatureWordInfo
19021 Not documented
19022
19023 Since
19024 2.5
19025
19026 NumaCpuOptions (Object)
19027 Option "-numa cpu" overrides default cpu to node mapping. It accepts
19028 the same set of cpu properties as returned by query-hotplug‐
19029 gable-cpus[].props, where node-id could be used to override default
19030 node mapping.
19031
19032 Members
19033 The members of CpuInstanceProperties
19034
19035 Since
19036 2.10
19037
19038 HmatLBMemoryHierarchy (Enum)
19039 The memory hierarchy in the System Locality Latency and Bandwidth In‐
19040 formation Structure of HMAT (Heterogeneous Memory Attribute Table)
19041
19042 For more information about HmatLBMemoryHierarchy, see chapter 5.2.27.4:
19043 Table 5-146: Field "Flags" of ACPI 6.3 spec.
19044
19045 Values
19046 memory the structure represents the memory performance
19047
19048 first-level
19049 first level of memory side cache
19050
19051 second-level
19052 second level of memory side cache
19053
19054 third-level
19055 third level of memory side cache
19056
19057 Since
19058 5.0
19059
19060 HmatLBDataType (Enum)
19061 Data type in the System Locality Latency and Bandwidth Information
19062 Structure of HMAT (Heterogeneous Memory Attribute Table)
19063
19064 For more information about HmatLBDataType, see chapter 5.2.27.4: Table
19065 5-146: Field "Data Type" of ACPI 6.3 spec.
19066
19067 Values
19068 access-latency
19069 access latency (nanoseconds)
19070
19071 read-latency
19072 read latency (nanoseconds)
19073
19074 write-latency
19075 write latency (nanoseconds)
19076
19077 access-bandwidth
19078 access bandwidth (Bytes per second)
19079
19080 read-bandwidth
19081 read bandwidth (Bytes per second)
19082
19083 write-bandwidth
19084 write bandwidth (Bytes per second)
19085
19086 Since
19087 5.0
19088
19089 NumaHmatLBOptions (Object)
19090 Set the system locality latency and bandwidth information between Ini‐
19091 tiator and Target proximity Domains.
19092
19093 For more information about NumaHmatLBOptions, see chapter 5.2.27.4: Ta‐
19094 ble 5-146 of ACPI 6.3 spec.
19095
19096 Members
19097 initiator: int
19098 the Initiator Proximity Domain.
19099
19100 target: int
19101 the Target Proximity Domain.
19102
19103 hierarchy: HmatLBMemoryHierarchy
19104 the Memory Hierarchy. Indicates the performance of memory or
19105 side cache.
19106
19107 data-type: HmatLBDataType
19108 presents the type of data, access/read/write latency or hit la‐
19109 tency.
19110
19111 latency: int (optional)
19112 the value of latency from initiator to target proximity domain,
19113 the latency unit is "ns(nanosecond)".
19114
19115 bandwidth: int (optional)
19116 the value of bandwidth between initiator and target proximity
19117 domain, the bandwidth unit is "Bytes per second".
19118
19119 Since
19120 5.0
19121
19122 HmatCacheAssociativity (Enum)
19123 Cache associativity in the Memory Side Cache Information Structure of
19124 HMAT
19125
19126 For more information of HmatCacheAssociativity, see chapter 5.2.27.5:
19127 Table 5-147 of ACPI 6.3 spec.
19128
19129 Values
19130 none
19131
19132 None (no memory side cache in this proximity domain,
19133 or cache associativity unknown)
19134
19135 direct Direct Mapped
19136
19137 complex
19138 Complex Cache Indexing (implementation specific)
19139
19140 Since
19141 5.0
19142
19143 HmatCacheWritePolicy (Enum)
19144 Cache write policy in the Memory Side Cache Information Structure of
19145 HMAT
19146
19147 For more information of HmatCacheWritePolicy, see chapter 5.2.27.5: Ta‐
19148 ble 5-147: Field "Cache Attributes" of ACPI 6.3 spec.
19149
19150 Values
19151 none None (no memory side cache in this proximity domain, or cache
19152 write policy unknown)
19153
19154 write-back
19155 Write Back (WB)
19156
19157 write-through
19158 Write Through (WT)
19159
19160 Since
19161 5.0
19162
19163 NumaHmatCacheOptions (Object)
19164 Set the memory side cache information for a given memory domain.
19165
19166 For more information of NumaHmatCacheOptions, see chapter 5.2.27.5: Ta‐
19167 ble 5-147: Field "Cache Attributes" of ACPI 6.3 spec.
19168
19169 Members
19170 node-id: int
19171 the memory proximity domain to which the memory belongs.
19172
19173 size: int
19174 the size of memory side cache in bytes.
19175
19176 level: int
19177 the cache level described in this structure.
19178
19179 associativity: HmatCacheAssociativity
19180 the cache associativity, none/direct-mapped/complex(complex
19181 cache indexing).
19182
19183 policy: HmatCacheWritePolicy
19184 the write policy, none/write-back/write-through.
19185
19186 line: int
19187 the cache Line size in bytes.
19188
19189 Since
19190 5.0
19191
19192 memsave (Command)
19193 Save a portion of guest memory to a file.
19194
19195 Arguments
19196 val: int
19197 the virtual address of the guest to start from
19198
19199 size: int
19200 the size of memory region to save
19201
19202 filename: string
19203 the file to save the memory to as binary data
19204
19205 cpu-index: int (optional)
19206 the index of the virtual CPU to use for translating the virtual
19207 address (defaults to CPU 0)
19208
19209 Returns
19210 Nothing on success
19211
19212 Since
19213 0.14
19214
19215 Notes
19216 Errors were not reliably returned until 1.1
19217
19218 Example
19219 -> { "execute": "memsave",
19220 "arguments": { "val": 10,
19221 "size": 100,
19222 "filename": "/tmp/virtual-mem-dump" } }
19223 <- { "return": {} }
19224
19225 pmemsave (Command)
19226 Save a portion of guest physical memory to a file.
19227
19228 Arguments
19229 val: int
19230 the physical address of the guest to start from
19231
19232 size: int
19233 the size of memory region to save
19234
19235 filename: string
19236 the file to save the memory to as binary data
19237
19238 Returns
19239 Nothing on success
19240
19241 Since
19242 0.14
19243
19244 Notes
19245 Errors were not reliably returned until 1.1
19246
19247 Example
19248 -> { "execute": "pmemsave",
19249 "arguments": { "val": 10,
19250 "size": 100,
19251 "filename": "/tmp/physical-mem-dump" } }
19252 <- { "return": {} }
19253
19254 Memdev (Object)
19255 Information about memory backend
19256
19257 Members
19258 id: string (optional)
19259 backend's ID if backend has 'id' property (since 2.9)
19260
19261 size: int
19262 memory backend size
19263
19264 merge: boolean
19265 whether memory merge support is enabled
19266
19267 dump: boolean
19268 whether memory backend's memory is included in a core dump
19269
19270 prealloc: boolean
19271 whether memory was preallocated
19272
19273 share: boolean
19274 whether memory is private to QEMU or shared (since 6.1)
19275
19276 reserve: boolean (optional)
19277 whether swap space (or huge pages) was reserved if applicable.
19278 This corresponds to the user configuration and not the actual
19279 behavior implemented in the OS to perform the reservation. For
19280 example, Linux will never reserve swap space for shared file
19281 mappings. (since 6.1)
19282
19283 host-nodes: array of int
19284 host nodes for its memory policy
19285
19286 policy: HostMemPolicy
19287 memory policy of memory backend
19288
19289 Since
19290 2.1
19291
19292 query-memdev (Command)
19293 Returns information for all memory backends.
19294
19295 Returns
19296 a list of Memdev.
19297
19298 Since
19299 2.1
19300
19301 Example
19302 -> { "execute": "query-memdev" }
19303 <- { "return": [
19304 {
19305 "id": "mem1",
19306 "size": 536870912,
19307 "merge": false,
19308 "dump": true,
19309 "prealloc": false,
19310 "share": false,
19311 "host-nodes": [0, 1],
19312 "policy": "bind"
19313 },
19314 {
19315 "size": 536870912,
19316 "merge": false,
19317 "dump": true,
19318 "prealloc": true,
19319 "share": false,
19320 "host-nodes": [2, 3],
19321 "policy": "preferred"
19322 }
19323 ]
19324 }
19325
19326 CpuInstanceProperties (Object)
19327 List of properties to be used for hotplugging a CPU instance, it should
19328 be passed by management with device_add command when a CPU is being
19329 hotplugged.
19330
19331 Members
19332 node-id: int (optional)
19333 NUMA node ID the CPU belongs to
19334
19335 socket-id: int (optional)
19336 socket number within node/board the CPU belongs to
19337
19338 die-id: int (optional)
19339 die number within socket the CPU belongs to (since 4.1)
19340
19341 cluster-id: int (optional)
19342 cluster number within die the CPU belongs to (since 7.1)
19343
19344 core-id: int (optional)
19345 core number within cluster the CPU belongs to
19346
19347 thread-id: int (optional)
19348 thread number within core the CPU belongs to
19349
19350 Note
19351 currently there are 6 properties that could be present but management
19352 should be prepared to pass through other properties with device_add
19353 command to allow for future interface extension. This also requires the
19354 filed names to be kept in sync with the properties passed to -de‐
19355 vice/device_add.
19356
19357 Since
19358 2.7
19359
19360 HotpluggableCPU (Object)
19361 Members
19362 type: string
19363 CPU object type for usage with device_add command
19364
19365 props: CpuInstanceProperties
19366 list of properties to be used for hotplugging CPU
19367
19368 vcpus-count: int
19369 number of logical VCPU threads HotpluggableCPU provides
19370
19371 qom-path: string (optional)
19372 link to existing CPU object if CPU is present or omitted if CPU
19373 is not present.
19374
19375 Since
19376 2.7
19377
19378 query-hotpluggable-cpus (Command)
19379 TODO
19380 Better documentation; currently there is none.
19381
19382 Returns
19383 a list of HotpluggableCPU objects.
19384
19385 Since
19386 2.7
19387
19388 Example
19389 For pseries machine type started with -smp 2,cores=2,maxcpus=4 -cpu POWER8:
19390
19391 -> { "execute": "query-hotpluggable-cpus" }
19392 <- {"return": [
19393 { "props": { "core-id": 8 }, "type": "POWER8-spapr-cpu-core",
19394 "vcpus-count": 1 },
19395 { "props": { "core-id": 0 }, "type": "POWER8-spapr-cpu-core",
19396 "vcpus-count": 1, "qom-path": "/machine/unattached/device[0]"}
19397 ]}'
19398
19399 For pc machine type started with -smp 1,maxcpus=2:
19400
19401 -> { "execute": "query-hotpluggable-cpus" }
19402 <- {"return": [
19403 {
19404 "type": "qemu64-x86_64-cpu", "vcpus-count": 1,
19405 "props": {"core-id": 0, "socket-id": 1, "thread-id": 0}
19406 },
19407 {
19408 "qom-path": "/machine/unattached/device[0]",
19409 "type": "qemu64-x86_64-cpu", "vcpus-count": 1,
19410 "props": {"core-id": 0, "socket-id": 0, "thread-id": 0}
19411 }
19412 ]}
19413
19414 For s390x-virtio-ccw machine type started with -smp 1,maxcpus=2 -cpu qemu
19415 (Since: 2.11):
19416
19417 -> { "execute": "query-hotpluggable-cpus" }
19418 <- {"return": [
19419 {
19420 "type": "qemu-s390x-cpu", "vcpus-count": 1,
19421 "props": { "core-id": 1 }
19422 },
19423 {
19424 "qom-path": "/machine/unattached/device[0]",
19425 "type": "qemu-s390x-cpu", "vcpus-count": 1,
19426 "props": { "core-id": 0 }
19427 }
19428 ]}
19429
19430 set-numa-node (Command)
19431 Runtime equivalent of '-numa' CLI option, available at preconfigure
19432 stage to configure numa mapping before initializing machine.
19433
19434 Arguments
19435 The members of NumaOptions
19436
19437 Since
19438 3.0
19439
19440 balloon (Command)
19441 Request the balloon driver to change its balloon size.
19442
19443 Arguments
19444 value: int
19445 the target logical size of the VM in bytes. We can deduce the
19446 size of the balloon using this formula:
19447 logical_vm_size = vm_ram_size - balloon_size
19448
19449 From it we have: balloon_size = vm_ram_size - value
19450
19451 Returns
19452 • Nothing on success
19453
19454 • If the balloon driver is enabled but not functional because the KVM
19455 kernel module cannot support it, KvmMissingCap
19456
19457 • If no balloon device is present, DeviceNotActive
19458
19459 Notes
19460 This command just issues a request to the guest. When it returns, the
19461 balloon size may not have changed. A guest can change the balloon size
19462 independent of this command.
19463
19464 Since
19465 0.14
19466
19467 Example
19468 -> { "execute": "balloon", "arguments": { "value": 536870912 } }
19469 <- { "return": {} }
19470
19471 With a 2.5GiB guest this command inflated the ballon to 3GiB.
19472
19473 BalloonInfo (Object)
19474 Information about the guest balloon device.
19475
19476 Members
19477 actual: int
19478 the logical size of the VM in bytes Formula used: logi‐
19479 cal_vm_size = vm_ram_size - balloon_size
19480
19481 Since
19482 0.14
19483
19484 query-balloon (Command)
19485 Return information about the balloon device.
19486
19487 Returns
19488 • BalloonInfo on success
19489
19490 • If the balloon driver is enabled but not functional because the KVM
19491 kernel module cannot support it, KvmMissingCap
19492
19493 • If no balloon device is present, DeviceNotActive
19494
19495 Since
19496 0.14
19497
19498 Example
19499 -> { "execute": "query-balloon" }
19500 <- { "return": {
19501 "actual": 1073741824
19502 }
19503 }
19504
19505 BALLOON_CHANGE (Event)
19506 Emitted when the guest changes the actual BALLOON level. This value is
19507 equivalent to the actual field return by the 'query-balloon' command
19508
19509 Arguments
19510 actual: int
19511 the logical size of the VM in bytes Formula used: logi‐
19512 cal_vm_size = vm_ram_size - balloon_size
19513
19514 Note
19515 this event is rate-limited.
19516
19517 Since
19518 1.2
19519
19520 Example
19521 <- { "event": "BALLOON_CHANGE",
19522 "data": { "actual": 944766976 },
19523 "timestamp": { "seconds": 1267020223, "microseconds": 435656 } }
19524
19525 MemoryInfo (Object)
19526 Actual memory information in bytes.
19527
19528 Members
19529 base-memory: int
19530 size of "base" memory specified with command line option -m.
19531
19532 plugged-memory: int (optional)
19533 size of memory that can be hot-unplugged. This field is omitted
19534 if target doesn't support memory hotplug (i.e. CONFIG_MEM_DEVICE
19535 not defined at build time).
19536
19537 Since
19538 2.11
19539
19540 query-memory-size-summary (Command)
19541 Return the amount of initially allocated and present hotpluggable (if
19542 enabled) memory in bytes.
19543
19544 Example
19545 -> { "execute": "query-memory-size-summary" }
19546 <- { "return": { "base-memory": 4294967296, "plugged-memory": 0 } }
19547
19548 Since
19549 2.11
19550
19551 PCDIMMDeviceInfo (Object)
19552 PCDIMMDevice state information
19553
19554 Members
19555 id: string (optional)
19556 device's ID
19557
19558 addr: int
19559 physical address, where device is mapped
19560
19561 size: int
19562 size of memory that the device provides
19563
19564 slot: int
19565 slot number at which device is plugged in
19566
19567 node: int
19568 NUMA node number where device is plugged in
19569
19570 memdev: string
19571 memory backend linked with device
19572
19573 hotplugged: boolean
19574 true if device was hotplugged
19575
19576 hotpluggable: boolean
19577 true if device if could be added/removed while machine is run‐
19578 ning
19579
19580 Since
19581 2.1
19582
19583 VirtioPMEMDeviceInfo (Object)
19584 VirtioPMEM state information
19585
19586 Members
19587 id: string (optional)
19588 device's ID
19589
19590 memaddr: int
19591 physical address in memory, where device is mapped
19592
19593 size: int
19594 size of memory that the device provides
19595
19596 memdev: string
19597 memory backend linked with device
19598
19599 Since
19600 4.1
19601
19602 VirtioMEMDeviceInfo (Object)
19603 VirtioMEMDevice state information
19604
19605 Members
19606 id: string (optional)
19607 device's ID
19608
19609 memaddr: int
19610 physical address in memory, where device is mapped
19611
19612 requested-size: int
19613 the user requested size of the device
19614
19615 size: int
19616 the (current) size of memory that the device provides
19617
19618 max-size: int
19619 the maximum size of memory that the device can provide
19620
19621 block-size: int
19622 the block size of memory that the device provides
19623
19624 node: int
19625 NUMA node number where device is assigned to
19626
19627 memdev: string
19628 memory backend linked with the region
19629
19630 Since
19631 5.1
19632
19633 SgxEPCDeviceInfo (Object)
19634 Sgx EPC state information
19635
19636 Members
19637 id: string (optional)
19638 device's ID
19639
19640 memaddr: int
19641 physical address in memory, where device is mapped
19642
19643 size: int
19644 size of memory that the device provides
19645
19646 memdev: string
19647 memory backend linked with device
19648
19649 node: int
19650 the numa node (Since: 7.0)
19651
19652 Since
19653 6.2
19654
19655 MemoryDeviceInfoKind (Enum)
19656 Values
19657 dimm Not documented
19658
19659 nvdimm Not documented
19660
19661 virtio-pmem
19662 Not documented
19663
19664 virtio-mem
19665 Not documented
19666
19667 sgx-epc
19668 Not documented
19669
19670 Since
19671 2.1
19672
19673 PCDIMMDeviceInfoWrapper (Object)
19674 Members
19675 data: PCDIMMDeviceInfo
19676 Not documented
19677
19678 Since
19679 2.1
19680
19681 VirtioPMEMDeviceInfoWrapper (Object)
19682 Members
19683 data: VirtioPMEMDeviceInfo
19684 Not documented
19685
19686 Since
19687 2.1
19688
19689 VirtioMEMDeviceInfoWrapper (Object)
19690 Members
19691 data: VirtioMEMDeviceInfo
19692 Not documented
19693
19694 Since
19695 2.1
19696
19697 SgxEPCDeviceInfoWrapper (Object)
19698 Members
19699 data: SgxEPCDeviceInfo
19700 Not documented
19701
19702 Since
19703 6.2
19704
19705 MemoryDeviceInfo (Object)
19706 Union containing information about a memory device
19707
19708 nvdimm is included since 2.12. virtio-pmem is included since 4.1. vir‐
19709 tio-mem is included since 5.1. sgx-epc is included since 6.2.
19710
19711 Members
19712 type: MemoryDeviceInfoKind
19713 Not documented
19714
19715 The members of PCDIMMDeviceInfoWrapper when type is "dimm"
19716
19717 The members of PCDIMMDeviceInfoWrapper when type is "nvdimm"
19718
19719 The members of VirtioPMEMDeviceInfoWrapper when type is "virtio-pmem"
19720
19721 The members of VirtioMEMDeviceInfoWrapper when type is "virtio-mem"
19722
19723 The members of SgxEPCDeviceInfoWrapper when type is "sgx-epc"
19724
19725 Since
19726 2.1
19727
19728 SgxEPC (Object)
19729 Sgx EPC cmdline information
19730
19731 Members
19732 memdev: string
19733 memory backend linked with device
19734
19735 node: int
19736 the numa node (Since: 7.0)
19737
19738 Since
19739 6.2
19740
19741 SgxEPCProperties (Object)
19742 SGX properties of machine types.
19743
19744 Members
19745 sgx-epc: array of SgxEPC
19746 list of ids of memory-backend-epc objects.
19747
19748 Since
19749 6.2
19750
19751 query-memory-devices (Command)
19752 Lists available memory devices and their state
19753
19754 Since
19755 2.1
19756
19757 Example
19758 -> { "execute": "query-memory-devices" }
19759 <- { "return": [ { "data":
19760 { "addr": 5368709120,
19761 "hotpluggable": true,
19762 "hotplugged": true,
19763 "id": "d1",
19764 "memdev": "/objects/memX",
19765 "node": 0,
19766 "size": 1073741824,
19767 "slot": 0},
19768 "type": "dimm"
19769 } ] }
19770
19771 MEMORY_DEVICE_SIZE_CHANGE (Event)
19772 Emitted when the size of a memory device changes. Only emitted for mem‐
19773 ory devices that can actually change the size (e.g., virtio-mem due to
19774 guest action).
19775
19776 Arguments
19777 id: string (optional)
19778 device's ID
19779
19780 size: int
19781 the new size of memory that the device provides
19782
19783 qom-path: string
19784 path to the device object in the QOM tree (since 6.2)
19785
19786 Note
19787 this event is rate-limited.
19788
19789 Since
19790 5.1
19791
19792 Example
19793 <- { "event": "MEMORY_DEVICE_SIZE_CHANGE",
19794 "data": { "id": "vm0", "size": 1073741824,
19795 "qom-path": "/machine/unattached/device[2]" },
19796 "timestamp": { "seconds": 1588168529, "microseconds": 201316 } }
19797
19798 MEM_UNPLUG_ERROR (Event)
19799 Emitted when memory hot unplug error occurs.
19800
19801 Arguments
19802 device: string
19803 device name
19804
19805 msg: string
19806 Informative message
19807
19808 Features
19809 deprecated
19810 This event is deprecated. Use DEVICE_UNPLUG_GUEST_ERROR instead.
19811
19812 Since
19813 2.4
19814
19815 Example
19816 <- { "event": "MEM_UNPLUG_ERROR",
19817 "data": { "device": "dimm1",
19818 "msg": "acpi: device unplug for unsupported device"
19819 },
19820 "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
19821
19822 BootConfiguration (Object)
19823 Schema for virtual machine boot configuration.
19824
19825 Members
19826 order: string (optional)
19827 Boot order (a=floppy, c=hard disk, d=CD-ROM, n=network)
19828
19829 once: string (optional)
19830 Boot order to apply on first boot
19831
19832 menu: boolean (optional)
19833 Whether to show a boot menu
19834
19835 splash: string (optional)
19836 The name of the file to be passed to the firmware as logo pic‐
19837 ture, if menu is true.
19838
19839 splash-time: int (optional)
19840 How long to show the logo picture, in milliseconds
19841
19842 reboot-timeout: int (optional)
19843 Timeout before guest reboots after boot fails
19844
19845 strict: boolean (optional)
19846 Whether to attempt booting from devices not included in the boot
19847 order
19848
19849 Since
19850 7.1
19851
19852 SMPConfiguration (Object)
19853 Schema for CPU topology configuration. A missing value lets QEMU fig‐
19854 ure out a suitable value based on the ones that are provided.
19855
19856 Members
19857 cpus: int (optional)
19858 number of virtual CPUs in the virtual machine
19859
19860 sockets: int (optional)
19861 number of sockets in the CPU topology
19862
19863 dies: int (optional)
19864 number of dies per socket in the CPU topology
19865
19866 clusters: int (optional)
19867 number of clusters per die in the CPU topology (since 7.0)
19868
19869 cores: int (optional)
19870 number of cores per cluster in the CPU topology
19871
19872 threads: int (optional)
19873 number of threads per core in the CPU topology
19874
19875 maxcpus: int (optional)
19876 maximum number of hotpluggable virtual CPUs in the virtual ma‐
19877 chine
19878
19879 Since
19880 6.1
19881
19882 x-query-irq (Command)
19883 Query interrupt statistics
19884
19885 Features
19886 unstable
19887 This command is meant for debugging.
19888
19889 Returns
19890 interrupt statistics
19891
19892 Since
19893 6.2
19894
19895 x-query-jit (Command)
19896 Query TCG compiler statistics
19897
19898 Features
19899 unstable
19900 This command is meant for debugging.
19901
19902 Returns
19903 TCG compiler statistics
19904
19905 Since
19906 6.2
19907
19908 If
19909 CONFIG_TCG
19910
19911 x-query-numa (Command)
19912 Query NUMA topology information
19913
19914 Features
19915 unstable
19916 This command is meant for debugging.
19917
19918 Returns
19919 topology information
19920
19921 Since
19922 6.2
19923
19924 x-query-opcount (Command)
19925 Query TCG opcode counters
19926
19927 Features
19928 unstable
19929 This command is meant for debugging.
19930
19931 Returns
19932 TCG opcode counters
19933
19934 Since
19935 6.2
19936
19937 If
19938 CONFIG_TCG
19939
19940 x-query-profile (Command)
19941 Query TCG profiling information
19942
19943 Features
19944 unstable
19945 This command is meant for debugging.
19946
19947 Returns
19948 profile information
19949
19950 Since
19951 6.2
19952
19953 If
19954 CONFIG_TCG
19955
19956 x-query-ramblock (Command)
19957 Query system ramblock information
19958
19959 Features
19960 unstable
19961 This command is meant for debugging.
19962
19963 Returns
19964 system ramblock information
19965
19966 Since
19967 6.2
19968
19969 x-query-rdma (Command)
19970 Query RDMA state
19971
19972 Features
19973 unstable
19974 This command is meant for debugging.
19975
19976 Returns
19977 RDMA state
19978
19979 Since
19980 6.2
19981
19982 x-query-roms (Command)
19983 Query information on the registered ROMS
19984
19985 Features
19986 unstable
19987 This command is meant for debugging.
19988
19989 Returns
19990 registered ROMs
19991
19992 Since
19993 6.2
19994
19995 x-query-usb (Command)
19996 Query information on the USB devices
19997
19998 Features
19999 unstable
20000 This command is meant for debugging.
20001
20002 Returns
20003 USB device information
20004
20005 Since
20006 6.2
20007
20008 SmbiosEntryPointType (Enum)
20009 Values
20010 32 SMBIOS version 2.1 (32-bit) Entry Point
20011
20012 64 SMBIOS version 3.0 (64-bit) Entry Point
20013
20014 Since
20015 7.0
20016
20017 MemorySizeConfiguration (Object)
20018 Schema for memory size configuration.
20019
20020 Members
20021 size: int (optional)
20022 memory size in bytes
20023
20024 max-size: int (optional)
20025 maximum hotpluggable memory size in bytes
20026
20027 slots: int (optional)
20028 number of available memory slots for hotplug
20029
20030 Since
20031 7.1
20032
20033 dumpdtb (Command)
20034 Save the FDT in dtb format.
20035
20036 Arguments
20037 filename: string
20038 name of the dtb file to be created
20039
20040 Since
20041 7.2
20042
20043 Example
20044 {"execute": "dumpdtb"}
20045 "arguments": { "filename": "fdt.dtb" } }
20046
20047 If
20048 CONFIG_FDT
20049
20050 CpuModelInfo (Object)
20051 Virtual CPU model.
20052
20053 A CPU model consists of the name of a CPU definition, to which delta
20054 changes are applied (e.g. features added/removed). Most magic values
20055 that an architecture might require should be hidden behind the name.
20056 However, if required, architectures can expose relevant properties.
20057
20058 Members
20059 name: string
20060 the name of the CPU definition the model is based on
20061
20062 props: value (optional)
20063 a dictionary of QOM properties to be applied
20064
20065 Since
20066 2.8
20067
20068 CpuModelExpansionType (Enum)
20069 An enumeration of CPU model expansion types.
20070
20071 Values
20072 static Expand to a static CPU model, a combination of a static base
20073 model name and property delta changes. As the static base model
20074 will never change, the expanded CPU model will be the same, in‐
20075 dependent of QEMU version, machine type, machine options, and
20076 accelerator options. Therefore, the resulting model can be used
20077 by tooling without having to specify a compatibility machine -
20078 e.g. when displaying the "host" model. The static CPU models are
20079 migration-safe.
20080
20081 full Expand all properties. The produced model is not guaranteed to
20082 be migration-safe, but allows tooling to get an insight and work
20083 with model details.
20084
20085 Note
20086 When a non-migration-safe CPU model is expanded in static mode, some
20087 features enabled by the CPU model may be omitted, because they can't be
20088 implemented by a static CPU model definition (e.g. cache info
20089 passthrough and PMU passthrough in x86). If you need an accurate repre‐
20090 sentation of the features enabled by a non-migration-safe CPU model,
20091 use full. If you need a static representation that will keep ABI com‐
20092 patibility even when changing QEMU version or machine-type, use static
20093 (but keep in mind that some features may be omitted).
20094
20095 Since
20096 2.8
20097
20098 CpuModelCompareResult (Enum)
20099 An enumeration of CPU model comparison results. The result is usually
20100 calculated using e.g. CPU features or CPU generations.
20101
20102 Values
20103 incompatible
20104 If model A is incompatible to model B, model A is not guaranteed
20105 to run where model B runs and the other way around.
20106
20107 identical
20108 If model A is identical to model B, model A is guaranteed to run
20109 where model B runs and the other way around.
20110
20111 superset
20112 If model A is a superset of model B, model B is guaranteed to
20113 run where model A runs. There are no guarantees about the other
20114 way.
20115
20116 subset If model A is a subset of model B, model A is guaranteed to run
20117 where model B runs. There are no guarantees about the other way.
20118
20119 Since
20120 2.8
20121
20122 CpuModelBaselineInfo (Object)
20123 The result of a CPU model baseline.
20124
20125 Members
20126 model: CpuModelInfo
20127 the baselined CpuModelInfo.
20128
20129 Since
20130 2.8
20131
20132 If
20133 TARGET_S390X
20134
20135 CpuModelCompareInfo (Object)
20136 The result of a CPU model comparison.
20137
20138 Members
20139 result: CpuModelCompareResult
20140 The result of the compare operation.
20141
20142 responsible-properties: array of string
20143 List of properties that led to the comparison result not being
20144 identical.
20145 responsible-properties is a list of QOM property names that led to both
20146 CPUs not being detected as identical. For identical models, this list
20147 is empty. If a QOM property is read-only, that means there's no known
20148 way to make the CPU models identical. If the special property name
20149 "type" is included, the models are by definition not identical and can‐
20150 not be made identical.
20151
20152 Since
20153 2.8
20154
20155 If
20156 TARGET_S390X
20157
20158 query-cpu-model-comparison (Command)
20159 Compares two CPU models, returning how they compare in a specific con‐
20160 figuration. The results indicates how both models compare regarding
20161 runnability. This result can be used by tooling to make decisions if a
20162 certain CPU model will run in a certain configuration or if a compati‐
20163 ble CPU model has to be created by baselining.
20164
20165 Usually, a CPU model is compared against the maximum possible CPU model
20166 of a certain configuration (e.g. the "host" model for KVM). If that CPU
20167 model is identical or a subset, it will run in that configuration.
20168
20169 The result returned by this command may be affected by:
20170
20171 • QEMU version: CPU models may look different depending on the QEMU
20172 version. (Except for CPU models reported as "static" in
20173 query-cpu-definitions.)
20174
20175 • machine-type: CPU model may look different depending on the ma‐
20176 chine-type. (Except for CPU models reported as "static" in
20177 query-cpu-definitions.)
20178
20179 • machine options (including accelerator): in some architectures, CPU
20180 models may look different depending on machine and accelerator op‐
20181 tions. (Except for CPU models reported as "static" in query-cpu-defi‐
20182 nitions.)
20183
20184 • "-cpu" arguments and global properties: arguments to the -cpu option
20185 and global properties may affect expansion of CPU models. Using
20186 query-cpu-model-expansion while using these is not advised.
20187
20188 Some architectures may not support comparing CPU models. s390x supports
20189 comparing CPU models.
20190
20191 Arguments
20192 modela: CpuModelInfo
20193 Not documented
20194
20195 modelb: CpuModelInfo
20196 Not documented
20197
20198 Returns
20199 a CpuModelBaselineInfo. Returns an error if comparing CPU models is not
20200 supported, if a model cannot be used, if a model contains an unknown
20201 cpu definition name, unknown properties or properties with wrong types.
20202
20203 Note
20204 this command isn't specific to s390x, but is only implemented on this
20205 architecture currently.
20206
20207 Since
20208 2.8
20209
20210 If
20211 TARGET_S390X
20212
20213 query-cpu-model-baseline (Command)
20214 Baseline two CPU models, creating a compatible third model. The created
20215 model will always be a static, migration-safe CPU model (see "static"
20216 CPU model expansion for details).
20217
20218 This interface can be used by tooling to create a compatible CPU model
20219 out two CPU models. The created CPU model will be identical to or a
20220 subset of both CPU models when comparing them. Therefore, the created
20221 CPU model is guaranteed to run where the given CPU models run.
20222
20223 The result returned by this command may be affected by:
20224
20225 • QEMU version: CPU models may look different depending on the QEMU
20226 version. (Except for CPU models reported as "static" in
20227 query-cpu-definitions.)
20228
20229 • machine-type: CPU model may look different depending on the ma‐
20230 chine-type. (Except for CPU models reported as "static" in
20231 query-cpu-definitions.)
20232
20233 • machine options (including accelerator): in some architectures, CPU
20234 models may look different depending on machine and accelerator op‐
20235 tions. (Except for CPU models reported as "static" in query-cpu-defi‐
20236 nitions.)
20237
20238 • "-cpu" arguments and global properties: arguments to the -cpu option
20239 and global properties may affect expansion of CPU models. Using
20240 query-cpu-model-expansion while using these is not advised.
20241
20242 Some architectures may not support baselining CPU models. s390x sup‐
20243 ports baselining CPU models.
20244
20245 Arguments
20246 modela: CpuModelInfo
20247 Not documented
20248
20249 modelb: CpuModelInfo
20250 Not documented
20251
20252 Returns
20253 a CpuModelBaselineInfo. Returns an error if baselining CPU models is
20254 not supported, if a model cannot be used, if a model contains an un‐
20255 known cpu definition name, unknown properties or properties with wrong
20256 types.
20257
20258 Note
20259 this command isn't specific to s390x, but is only implemented on this
20260 architecture currently.
20261
20262 Since
20263 2.8
20264
20265 If
20266 TARGET_S390X
20267
20268 CpuModelExpansionInfo (Object)
20269 The result of a cpu model expansion.
20270
20271 Members
20272 model: CpuModelInfo
20273 the expanded CpuModelInfo.
20274
20275 Since
20276 2.8
20277
20278 If
20279 TARGET_S390X or TARGET_I386 or TARGET_ARM
20280
20281 query-cpu-model-expansion (Command)
20282 Expands a given CPU model (or a combination of CPU model + additional
20283 options) to different granularities, allowing tooling to get an under‐
20284 standing what a specific CPU model looks like in QEMU under a certain
20285 configuration.
20286
20287 This interface can be used to query the "host" CPU model.
20288
20289 The data returned by this command may be affected by:
20290
20291 • QEMU version: CPU models may look different depending on the QEMU
20292 version. (Except for CPU models reported as "static" in
20293 query-cpu-definitions.)
20294
20295 • machine-type: CPU model may look different depending on the ma‐
20296 chine-type. (Except for CPU models reported as "static" in
20297 query-cpu-definitions.)
20298
20299 • machine options (including accelerator): in some architectures, CPU
20300 models may look different depending on machine and accelerator op‐
20301 tions. (Except for CPU models reported as "static" in query-cpu-defi‐
20302 nitions.)
20303
20304 • "-cpu" arguments and global properties: arguments to the -cpu option
20305 and global properties may affect expansion of CPU models. Using
20306 query-cpu-model-expansion while using these is not advised.
20307
20308 Some architectures may not support all expansion types. s390x supports
20309 "full" and "static". Arm only supports "full".
20310
20311 Arguments
20312 type: CpuModelExpansionType
20313 Not documented
20314
20315 model: CpuModelInfo
20316 Not documented
20317
20318 Returns
20319 a CpuModelExpansionInfo. Returns an error if expanding CPU models is
20320 not supported, if the model cannot be expanded, if the model contains
20321 an unknown CPU definition name, unknown properties or properties with a
20322 wrong type. Also returns an error if an expansion type is not sup‐
20323 ported.
20324
20325 Since
20326 2.8
20327
20328 If
20329 TARGET_S390X or TARGET_I386 or TARGET_ARM
20330
20331 CpuDefinitionInfo (Object)
20332 Virtual CPU definition.
20333
20334 Members
20335 name: string
20336 the name of the CPU definition
20337
20338 migration-safe: boolean (optional)
20339 whether a CPU definition can be safely used for migration in
20340 combination with a QEMU compatibility machine when migrating be‐
20341 tween different QEMU versions and between hosts with different
20342 sets of (hardware or software) capabilities. If not provided,
20343 information is not available and callers should not assume the
20344 CPU definition to be migration-safe. (since 2.8)
20345
20346 static: boolean
20347 whether a CPU definition is static and will not change depending
20348 on QEMU version, machine type, machine options and accelerator
20349 options. A static model is always migration-safe. (since 2.8)
20350
20351 unavailable-features: array of string (optional)
20352 List of properties that prevent the CPU model from running in
20353 the current host. (since 2.8)
20354
20355 typename: string
20356 Type name that can be used as argument to device-list-proper‐
20357 ties, to introspect properties configurable using -cpu or
20358 -global. (since 2.9)
20359
20360 alias-of: string (optional)
20361 Name of CPU model this model is an alias for. The target of the
20362 CPU model alias may change depending on the machine type. Man‐
20363 agement software is supposed to translate CPU model aliases in
20364 the VM configuration, because aliases may stop being migra‐
20365 tion-safe in the future (since 4.1)
20366
20367 deprecated: boolean
20368 If true, this CPU model is deprecated and may be removed in in
20369 some future version of QEMU according to the QEMU deprecation
20370 policy. (since 5.2)
20371 unavailable-features is a list of QOM property names that represent CPU
20372 model attributes that prevent the CPU from running. If the QOM prop‐
20373 erty is read-only, that means there's no known way to make the CPU
20374 model run in the current host. Implementations that choose not to pro‐
20375 vide specific information return the property name "type". If the
20376 property is read-write, it means that it MAY be possible to run the CPU
20377 model in the current host if that property is changed. Management soft‐
20378 ware can use it as hints to suggest or choose an alternative for the
20379 user, or just to generate meaningful error messages explaining why the
20380 CPU model can't be used. If unavailable-features is an empty list, the
20381 CPU model is runnable using the current host and machine-type. If un‐
20382 available-features is not present, runnability information for the CPU
20383 is not available.
20384
20385 Since
20386 1.2
20387
20388 If
20389 TARGET_PPC or TARGET_ARM or TARGET_I386 or TARGET_S390X or TARGET_MIPS
20390 or TARGET_LOONGARCH64
20391
20392 query-cpu-definitions (Command)
20393 Return a list of supported virtual CPU definitions
20394
20395 Returns
20396 a list of CpuDefInfo
20397
20398 Since
20399 1.2
20400
20401 If
20402 TARGET_PPC or TARGET_ARM or TARGET_I386 or TARGET_S390X or TARGET_MIPS
20403 or TARGET_LOONGARCH64
20404
20406 ReplayMode (Enum)
20407 Mode of the replay subsystem.
20408
20409 Values
20410 none normal execution mode. Replay or record are not enabled.
20411
20412 record record mode. All non-deterministic data is written into the re‐
20413 play log.
20414
20415 play replay mode. Non-deterministic data required for system execu‐
20416 tion is read from the log.
20417
20418 Since
20419 2.5
20420
20421 ReplayInfo (Object)
20422 Record/replay information.
20423
20424 Members
20425 mode: ReplayMode
20426 current mode.
20427
20428 filename: string (optional)
20429 name of the record/replay log file. It is present only in
20430 record or replay modes, when the log is recorded or replayed.
20431
20432 icount: int
20433 current number of executed instructions.
20434
20435 Since
20436 5.2
20437
20438 query-replay (Command)
20439 Retrieve the record/replay information. It includes current instruc‐
20440 tion count which may be used for replay-break and replay-seek commands.
20441
20442 Returns
20443 record/replay information.
20444
20445 Since
20446 5.2
20447
20448 Example
20449 -> { "execute": "query-replay" }
20450 <- { "return": { "mode": "play", "filename": "log.rr", "icount": 220414 } }
20451
20452 replay-break (Command)
20453 Set replay breakpoint at instruction count icount. Execution stops
20454 when the specified instruction is reached. There can be at most one
20455 breakpoint. When breakpoint is set, any prior one is removed. The
20456 breakpoint may be set only in replay mode and only "in the future",
20457 i.e. at instruction counts greater than the current one. The current
20458 instruction count can be observed with query-replay.
20459
20460 Arguments
20461 icount: int
20462 instruction count to stop at
20463
20464 Since
20465 5.2
20466
20467 Example
20468 -> { "execute": "replay-break", "arguments": { "icount": 220414 } }
20469
20470 replay-delete-break (Command)
20471 Remove replay breakpoint which was set with replay-break. The command
20472 is ignored when there are no replay breakpoints.
20473
20474 Since
20475 5.2
20476
20477 Example
20478 -> { "execute": "replay-delete-break" }
20479
20480 replay-seek (Command)
20481 Automatically proceed to the instruction count icount, when replaying
20482 the execution. The command automatically loads nearest snapshot and re‐
20483 plays the execution to find the desired instruction. When there is no
20484 preceding snapshot or the execution is not replayed, then the command
20485 fails. icount for the reference may be obtained with query-replay com‐
20486 mand.
20487
20488 Arguments
20489 icount: int
20490 target instruction count
20491
20492 Since
20493 5.2
20494
20495 Example
20496 -> { "execute": "replay-seek", "arguments": { "icount": 220414 } }
20497
20499 YankInstanceType (Enum)
20500 An enumeration of yank instance types. See YankInstance for more infor‐
20501 mation.
20502
20503 Values
20504 block-node
20505 Not documented
20506
20507 chardev
20508 Not documented
20509
20510 migration
20511 Not documented
20512
20513 Since
20514 6.0
20515
20516 YankInstanceBlockNode (Object)
20517 Specifies which block graph node to yank. See YankInstance for more in‐
20518 formation.
20519
20520 Members
20521 node-name: string
20522 the name of the block graph node
20523
20524 Since
20525 6.0
20526
20527 YankInstanceChardev (Object)
20528 Specifies which character device to yank. See YankInstance for more in‐
20529 formation.
20530
20531 Members
20532 id: string
20533 the chardev's ID
20534
20535 Since
20536 6.0
20537
20538 YankInstance (Object)
20539 A yank instance can be yanked with the yank qmp command to recover from
20540 a hanging QEMU.
20541
20542 Currently implemented yank instances:
20543
20544 • nbd block device: Yanking it will shut down the connection to
20545 the nbd server without attempting to reconnect.
20546
20547 • socket chardev: Yanking it will shut down the connected
20548 socket.
20549
20550 • migration: Yanking it will shut down all migration connec‐
20551 tions. Unlike migrate_cancel, it will not notify the migration
20552 process, so migration will go into failed state, instead of
20553 cancelled state. yank should be used to recover from hangs.
20554
20555 Members
20556 type: YankInstanceType
20557 Not documented
20558
20559 The members of YankInstanceBlockNode when type is "block-node"
20560
20561 The members of YankInstanceChardev when type is "chardev"
20562
20563 Since
20564 6.0
20565
20566 yank (Command)
20567 Try to recover from hanging QEMU by yanking the specified instances.
20568 See YankInstance for more information.
20569
20570 Takes a list of YankInstance as argument.
20571
20572 Arguments
20573 instances: array of YankInstance
20574 Not documented
20575
20576 Returns
20577 • Nothing on success
20578
20579 • DeviceNotFound error, if any of the YankInstances doesn't exist
20580
20581 Example
20582 -> { "execute": "yank",
20583 "arguments": {
20584 "instances": [
20585 { "type": "block-node",
20586 "node-name": "nbd0" }
20587 ] } }
20588 <- { "return": {} }
20589
20590 Since
20591 6.0
20592
20593 query-yank (Command)
20594 Query yank instances. See YankInstance for more information.
20595
20596 Returns
20597 list of YankInstance
20598
20599 Example
20600 -> { "execute": "query-yank" }
20601 <- { "return": [
20602 { "type": "block-node",
20603 "node-name": "nbd0" }
20604 ] }
20605
20606 Since
20607 6.0
20608
20610 add_client (Command)
20611 Allow client connections for VNC, Spice and socket based character de‐
20612 vices to be passed in to QEMU via SCM_RIGHTS.
20613
20614 Arguments
20615 protocol: string
20616 protocol name. Valid names are "vnc", "spice", "dbus-display" or
20617 the name of a character device (eg. from -chardev id=XXXX)
20618
20619 fdname: string
20620 file descriptor name previously passed via 'getfd' command
20621
20622 skipauth: boolean (optional)
20623 whether to skip authentication. Only applies to "vnc" and
20624 "spice" protocols
20625
20626 tls: boolean (optional)
20627 whether to perform TLS. Only applies to the "spice" protocol
20628
20629 Returns
20630 nothing on success.
20631
20632 Since
20633 0.14
20634
20635 Example
20636 -> { "execute": "add_client", "arguments": { "protocol": "vnc",
20637 "fdname": "myclient" } }
20638 <- { "return": {} }
20639
20640 NameInfo (Object)
20641 Guest name information.
20642
20643 Members
20644 name: string (optional)
20645 The name of the guest
20646
20647 Since
20648 0.14
20649
20650 query-name (Command)
20651 Return the name information of a guest.
20652
20653 Returns
20654 NameInfo of the guest
20655
20656 Since
20657 0.14
20658
20659 Example
20660 -> { "execute": "query-name" }
20661 <- { "return": { "name": "qemu-name" } }
20662
20663 IOThreadInfo (Object)
20664 Information about an iothread
20665
20666 Members
20667 id: string
20668 the identifier of the iothread
20669
20670 thread-id: int
20671 ID of the underlying host thread
20672
20673 poll-max-ns: int
20674 maximum polling time in ns, 0 means polling is disabled (since
20675 2.9)
20676
20677 poll-grow: int
20678 how many ns will be added to polling time, 0 means that it's not
20679 configured (since 2.9)
20680
20681 poll-shrink: int
20682 how many ns will be removed from polling time, 0 means that it's
20683 not configured (since 2.9)
20684
20685 aio-max-batch: int
20686 maximum number of requests in a batch for the AIO engine, 0
20687 means that the engine will use its default (since 6.1)
20688
20689 Since
20690 2.0
20691
20692 query-iothreads (Command)
20693 Returns a list of information about each iothread.
20694
20695 Note
20696 this list excludes the QEMU main loop thread, which is not declared us‐
20697 ing the -object iothread command-line option. It is always the main
20698 thread of the process.
20699
20700 Returns
20701 a list of IOThreadInfo for each iothread
20702
20703 Since
20704 2.0
20705
20706 Example
20707 -> { "execute": "query-iothreads" }
20708 <- { "return": [
20709 {
20710 "id":"iothread0",
20711 "thread-id":3134
20712 },
20713 {
20714 "id":"iothread1",
20715 "thread-id":3135
20716 }
20717 ]
20718 }
20719
20720 stop (Command)
20721 Stop all guest VCPU execution.
20722
20723 Since
20724 0.14
20725
20726 Notes
20727 This function will succeed even if the guest is already in the stopped
20728 state. In "inmigrate" state, it will ensure that the guest remains
20729 paused once migration finishes, as if the -S option was passed on the
20730 command line.
20731
20732 Example
20733 -> { "execute": "stop" }
20734 <- { "return": {} }
20735
20736 cont (Command)
20737 Resume guest VCPU execution.
20738
20739 Since
20740 0.14
20741
20742 Returns
20743 If successful, nothing
20744
20745 Notes
20746 This command will succeed if the guest is currently running. It will
20747 also succeed if the guest is in the "inmigrate" state; in this case,
20748 the effect of the command is to make sure the guest starts once migra‐
20749 tion finishes, removing the effect of the -S command line option if it
20750 was passed.
20751
20752 Example
20753 -> { "execute": "cont" }
20754 <- { "return": {} }
20755
20756 x-exit-preconfig (Command)
20757 Exit from "preconfig" state
20758
20759 This command makes QEMU exit the preconfig state and proceed with VM
20760 initialization using configuration data provided on the command line
20761 and via the QMP monitor during the preconfig state. The command is only
20762 available during the preconfig state (i.e. when the --preconfig command
20763 line option was in use).
20764
20765 Features
20766 unstable
20767 This command is experimental.
20768
20769 Since
20770 3.0
20771
20772 Returns
20773 nothing
20774
20775 Example
20776 -> { "execute": "x-exit-preconfig" }
20777 <- { "return": {} }
20778
20779 human-monitor-command (Command)
20780 Execute a command on the human monitor and return the output.
20781
20782 Arguments
20783 command-line: string
20784 the command to execute in the human monitor
20785
20786 cpu-index: int (optional)
20787 The CPU to use for commands that require an implicit CPU
20788
20789 Features
20790 savevm-monitor-nodes
20791 If present, HMP command savevm only snapshots monitor-owned
20792 nodes if they have no parents. This allows the use of 'savevm'
20793 with -blockdev. (since 4.2)
20794
20795 Returns
20796 the output of the command as a string
20797
20798 Since
20799 0.14
20800
20801 Notes
20802 This command only exists as a stop-gap. Its use is highly discouraged.
20803 The semantics of this command are not guaranteed: this means that com‐
20804 mand names, arguments and responses can change or be removed at ANY
20805 time. Applications that rely on long term stability guarantees should
20806 NOT use this command.
20807
20808 Known limitations:
20809
20810 • This command is stateless, this means that commands that depend on
20811 state information (such as getfd) might not work
20812
20813 • Commands that prompt the user for data don't currently work
20814
20815 Example
20816 -> { "execute": "human-monitor-command",
20817 "arguments": { "command-line": "info kvm" } }
20818 <- { "return": "kvm support: enabled\r\n" }
20819
20820 getfd (Command)
20821 Receive a file descriptor via SCM rights and assign it a name
20822
20823 Arguments
20824 fdname: string
20825 file descriptor name
20826
20827 Returns
20828 Nothing on success
20829
20830 Since
20831 0.14
20832
20833 Notes
20834 If fdname already exists, the file descriptor assigned to it will be
20835 closed and replaced by the received file descriptor.
20836
20837 The 'closefd' command can be used to explicitly close the file descrip‐
20838 tor when it is no longer needed.
20839
20840 Example
20841 -> { "execute": "getfd", "arguments": { "fdname": "fd1" } }
20842 <- { "return": {} }
20843
20844 closefd (Command)
20845 Close a file descriptor previously passed via SCM rights
20846
20847 Arguments
20848 fdname: string
20849 file descriptor name
20850
20851 Returns
20852 Nothing on success
20853
20854 Since
20855 0.14
20856
20857 Example
20858 -> { "execute": "closefd", "arguments": { "fdname": "fd1" } }
20859 <- { "return": {} }
20860
20861 AddfdInfo (Object)
20862 Information about a file descriptor that was added to an fd set.
20863
20864 Members
20865 fdset-id: int
20866 The ID of the fd set that fd was added to.
20867
20868 fd: int
20869 The file descriptor that was received via SCM rights and added
20870 to the fd set.
20871
20872 Since
20873 1.2
20874
20875 add-fd (Command)
20876 Add a file descriptor, that was passed via SCM rights, to an fd set.
20877
20878 Arguments
20879 fdset-id: int (optional)
20880 The ID of the fd set to add the file descriptor to.
20881
20882 opaque: string (optional)
20883 A free-form string that can be used to describe the fd.
20884
20885 Returns
20886 • AddfdInfo on success
20887
20888 • If file descriptor was not received, FdNotSupplied
20889
20890 • If fdset-id is a negative value, InvalidParameterValue
20891
20892 Notes
20893 The list of fd sets is shared by all monitor connections.
20894
20895 If fdset-id is not specified, a new fd set will be created.
20896
20897 Since
20898 1.2
20899
20900 Example
20901 -> { "execute": "add-fd", "arguments": { "fdset-id": 1 } }
20902 <- { "return": { "fdset-id": 1, "fd": 3 } }
20903
20904 remove-fd (Command)
20905 Remove a file descriptor from an fd set.
20906
20907 Arguments
20908 fdset-id: int
20909 The ID of the fd set that the file descriptor belongs to.
20910
20911 fd: int (optional)
20912 The file descriptor that is to be removed.
20913
20914 Returns
20915 • Nothing on success
20916
20917 • If fdset-id or fd is not found, FdNotFound
20918
20919 Since
20920 1.2
20921
20922 Notes
20923 The list of fd sets is shared by all monitor connections.
20924
20925 If fd is not specified, all file descriptors in fdset-id will be re‐
20926 moved.
20927
20928 Example
20929 -> { "execute": "remove-fd", "arguments": { "fdset-id": 1, "fd": 3 } }
20930 <- { "return": {} }
20931
20932 FdsetFdInfo (Object)
20933 Information about a file descriptor that belongs to an fd set.
20934
20935 Members
20936 fd: int
20937 The file descriptor value.
20938
20939 opaque: string (optional)
20940 A free-form string that can be used to describe the fd.
20941
20942 Since
20943 1.2
20944
20945 FdsetInfo (Object)
20946 Information about an fd set.
20947
20948 Members
20949 fdset-id: int
20950 The ID of the fd set.
20951
20952 fds: array of FdsetFdInfo
20953 A list of file descriptors that belong to this fd set.
20954
20955 Since
20956 1.2
20957
20958 query-fdsets (Command)
20959 Return information describing all fd sets.
20960
20961 Returns
20962 A list of FdsetInfo
20963
20964 Since
20965 1.2
20966
20967 Note
20968 The list of fd sets is shared by all monitor connections.
20969
20970 Example
20971 -> { "execute": "query-fdsets" }
20972 <- { "return": [
20973 {
20974 "fds": [
20975 {
20976 "fd": 30,
20977 "opaque": "rdonly:/path/to/file"
20978 },
20979 {
20980 "fd": 24,
20981 "opaque": "rdwr:/path/to/file"
20982 }
20983 ],
20984 "fdset-id": 1
20985 },
20986 {
20987 "fds": [
20988 {
20989 "fd": 28
20990 },
20991 {
20992 "fd": 29
20993 }
20994 ],
20995 "fdset-id": 0
20996 }
20997 ]
20998 }
20999
21000 CommandLineParameterType (Enum)
21001 Possible types for an option parameter.
21002
21003 Values
21004 string accepts a character string
21005
21006 boolean
21007 accepts "on" or "off"
21008
21009 number accepts a number
21010
21011 size accepts a number followed by an optional suffix (K)ilo, (M)ega,
21012 (G)iga, (T)era
21013
21014 Since
21015 1.5
21016
21017 CommandLineParameterInfo (Object)
21018 Details about a single parameter of a command line option.
21019
21020 Members
21021 name: string
21022 parameter name
21023
21024 type: CommandLineParameterType
21025 parameter CommandLineParameterType
21026
21027 help: string (optional)
21028 human readable text string, not suitable for parsing.
21029
21030 default: string (optional)
21031 default value string (since 2.1)
21032
21033 Since
21034 1.5
21035
21036 CommandLineOptionInfo (Object)
21037 Details about a command line option, including its list of parameter
21038 details
21039
21040 Members
21041 option: string
21042 option name
21043
21044 parameters: array of CommandLineParameterInfo
21045 an array of CommandLineParameterInfo
21046
21047 Since
21048 1.5
21049
21050 query-command-line-options (Command)
21051 Query command line option schema.
21052
21053 Arguments
21054 option: string (optional)
21055 option name
21056
21057 Returns
21058 list of CommandLineOptionInfo for all options (or for the given op‐
21059 tion). Returns an error if the given option doesn't exist.
21060
21061 Since
21062 1.5
21063
21064 Example
21065 -> { "execute": "query-command-line-options",
21066 "arguments": { "option": "option-rom" } }
21067 <- { "return": [
21068 {
21069 "parameters": [
21070 {
21071 "name": "romfile",
21072 "type": "string"
21073 },
21074 {
21075 "name": "bootindex",
21076 "type": "number"
21077 }
21078 ],
21079 "option": "option-rom"
21080 }
21081 ]
21082 }
21083
21084 RTC_CHANGE (Event)
21085 Emitted when the guest changes the RTC time.
21086
21087 Arguments
21088 offset: int
21089 offset in seconds between base RTC clock (as specified by -rtc
21090 base), and new RTC clock value
21091
21092 qom-path: string
21093 path to the RTC object in the QOM tree
21094
21095 Note
21096 This event is rate-limited. It is not guaranteed that the RTC in the
21097 system implements this event, or even that the system has an RTC at
21098 all.
21099
21100 Since
21101 0.13
21102
21103 Example
21104 <- { "event": "RTC_CHANGE",
21105 "data": { "offset": 78 },
21106 "timestamp": { "seconds": 1267020223, "microseconds": 435656 } }
21107
21108 VFU_CLIENT_HANGUP (Event)
21109 Emitted when the client of a TYPE_VFIO_USER_SERVER closes the communi‐
21110 cation channel
21111
21112 Arguments
21113 vfu-id: string
21114 ID of the TYPE_VFIO_USER_SERVER object. It is the last component
21115 of vfu-qom-path referenced below
21116
21117 vfu-qom-path: string
21118 path to the TYPE_VFIO_USER_SERVER object in the QOM tree
21119
21120 dev-id: string
21121 ID of attached PCI device
21122
21123 dev-qom-path: string
21124 path to attached PCI device in the QOM tree
21125
21126 Since
21127 7.1
21128
21129 Example
21130 <- { "event": "VFU_CLIENT_HANGUP",
21131 "data": { "vfu-id": "vfu1",
21132 "vfu-qom-path": "/objects/vfu1",
21133 "dev-id": "sas1",
21134 "dev-qom-path": "/machine/peripheral/sas1" },
21135 "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
21136
21137 rtc-reset-reinjection (Command)
21138 This command will reset the RTC interrupt reinjection backlog. Can be
21139 used if another mechanism to synchronize guest time is in effect, for
21140 example QEMU guest agent's guest-set-time command.
21141
21142 Since
21143 2.1
21144
21145 Example
21146 -> { "execute": "rtc-reset-reinjection" }
21147 <- { "return": {} }
21148
21149 If
21150 TARGET_I386
21151
21152 SevState (Enum)
21153 An enumeration of SEV state information used during query-sev.
21154
21155 Values
21156 uninit The guest is uninitialized.
21157
21158 launch-update
21159 The guest is currently being launched; plaintext data and regis‐
21160 ter state is being imported.
21161
21162 launch-secret
21163 The guest is currently being launched; ciphertext data is being
21164 imported.
21165
21166 running
21167 The guest is fully launched or migrated in.
21168
21169 send-update
21170 The guest is currently being migrated out to another machine.
21171
21172 receive-update
21173 The guest is currently being migrated from another machine.
21174
21175 Since
21176 2.12
21177
21178 If
21179 TARGET_I386
21180
21181 SevInfo (Object)
21182 Information about Secure Encrypted Virtualization (SEV) support
21183
21184 Members
21185 enabled: boolean
21186 true if SEV is active
21187
21188 api-major: int
21189 SEV API major version
21190
21191 api-minor: int
21192 SEV API minor version
21193
21194 build-id: int
21195 SEV FW build id
21196
21197 policy: int
21198 SEV policy value
21199
21200 state: SevState
21201 SEV guest state
21202
21203 handle: int
21204 SEV firmware handle
21205
21206 Since
21207 2.12
21208
21209 If
21210 TARGET_I386
21211
21212 query-sev (Command)
21213 Returns information about SEV
21214
21215 Returns
21216 SevInfo
21217
21218 Since
21219 2.12
21220
21221 Example
21222 -> { "execute": "query-sev" }
21223 <- { "return": { "enabled": true, "api-major" : 0, "api-minor" : 0,
21224 "build-id" : 0, "policy" : 0, "state" : "running",
21225 "handle" : 1 } }
21226
21227 If
21228 TARGET_I386
21229
21230 SevLaunchMeasureInfo (Object)
21231 SEV Guest Launch measurement information
21232
21233 Members
21234 data: string
21235 the measurement value encoded in base64
21236
21237 Since
21238 2.12
21239
21240 If
21241 TARGET_I386
21242
21243 query-sev-launch-measure (Command)
21244 Query the SEV guest launch information.
21245
21246 Returns
21247 The SevLaunchMeasureInfo for the guest
21248
21249 Since
21250 2.12
21251
21252 Example
21253 -> { "execute": "query-sev-launch-measure" }
21254 <- { "return": { "data": "4l8LXeNlSPUDlXPJG5966/8%YZ" } }
21255
21256 If
21257 TARGET_I386
21258
21259 SevCapability (Object)
21260 The struct describes capability for a Secure Encrypted Virtualization
21261 feature.
21262
21263 Members
21264 pdh: string
21265 Platform Diffie-Hellman key (base64 encoded)
21266
21267 cert-chain: string
21268 PDH certificate chain (base64 encoded)
21269
21270 cpu0-id: string
21271 Unique ID of CPU0 (base64 encoded) (since 7.1)
21272
21273 cbitpos: int
21274 C-bit location in page table entry
21275
21276 reduced-phys-bits: int
21277 Number of physical Address bit reduction when SEV is enabled
21278
21279 Since
21280 2.12
21281
21282 If
21283 TARGET_I386
21284
21285 query-sev-capabilities (Command)
21286 This command is used to get the SEV capabilities, and is supported on
21287 AMD X86 platforms only.
21288
21289 Returns
21290 SevCapability objects.
21291
21292 Since
21293 2.12
21294
21295 Example
21296 -> { "execute": "query-sev-capabilities" }
21297 <- { "return": { "pdh": "8CCDD8DDD", "cert-chain": "888CCCDDDEE",
21298 "cpu0-id": "2lvmGwo+...61iEinw==",
21299 "cbitpos": 47, "reduced-phys-bits": 5}}
21300
21301 If
21302 TARGET_I386
21303
21304 sev-inject-launch-secret (Command)
21305 This command injects a secret blob into memory of SEV guest.
21306
21307 Arguments
21308 packet-header: string
21309 the launch secret packet header encoded in base64
21310
21311 secret: string
21312 the launch secret data to be injected encoded in base64
21313
21314 gpa: int (optional)
21315 the guest physical address where secret will be injected.
21316
21317 Since
21318 6.0
21319
21320 If
21321 TARGET_I386
21322
21323 SevAttestationReport (Object)
21324 The struct describes attestation report for a Secure Encrypted Virtual‐
21325 ization feature.
21326
21327 Members
21328 data: string
21329 guest attestation report (base64 encoded)
21330
21331 Since
21332 6.1
21333
21334 If
21335 TARGET_I386
21336
21337 query-sev-attestation-report (Command)
21338 This command is used to get the SEV attestation report, and is sup‐
21339 ported on AMD X86 platforms only.
21340
21341 Arguments
21342 mnonce: string
21343 a random 16 bytes value encoded in base64 (it will be included
21344 in report)
21345
21346 Returns
21347 SevAttestationReport objects.
21348
21349 Since
21350 6.1
21351
21352 Example
21353 -> { "execute" : "query-sev-attestation-report",
21354 "arguments": { "mnonce": "aaaaaaa" } }
21355 <- { "return" : { "data": "aaaaaaaabbbddddd"} }
21356
21357 If
21358 TARGET_I386
21359
21360 dump-skeys (Command)
21361 Dump guest's storage keys
21362
21363 Arguments
21364 filename: string
21365 the path to the file to dump to
21366 This command is only supported on s390 architecture.
21367
21368 Since
21369 2.5
21370
21371 Example
21372 -> { "execute": "dump-skeys",
21373 "arguments": { "filename": "/tmp/skeys" } }
21374 <- { "return": {} }
21375
21376 If
21377 TARGET_S390X
21378
21379 GICCapability (Object)
21380 The struct describes capability for a specific GIC (Generic Interrupt
21381 Controller) version. These bits are not only decided by QEMU/KVM soft‐
21382 ware version, but also decided by the hardware that the program is run‐
21383 ning upon.
21384
21385 Members
21386 version: int
21387 version of GIC to be described. Currently, only 2 and 3 are sup‐
21388 ported.
21389
21390 emulated: boolean
21391 whether current QEMU/hardware supports emulated GIC device in
21392 user space.
21393
21394 kernel: boolean
21395 whether current QEMU/hardware supports hardware accelerated GIC
21396 device in kernel.
21397
21398 Since
21399 2.6
21400
21401 If
21402 TARGET_ARM
21403
21404 query-gic-capabilities (Command)
21405 This command is ARM-only. It will return a list of GICCapability ob‐
21406 jects that describe its capability bits.
21407
21408 Returns
21409 a list of GICCapability objects.
21410
21411 Since
21412 2.6
21413
21414 Example
21415 -> { "execute": "query-gic-capabilities" }
21416 <- { "return": [{ "version": 2, "emulated": true, "kernel": false },
21417 { "version": 3, "emulated": false, "kernel": true } ] }
21418
21419 If
21420 TARGET_ARM
21421
21422 SGXEPCSection (Object)
21423 Information about intel SGX EPC section info
21424
21425 Members
21426 node: int
21427 the numa node
21428
21429 size: int
21430 the size of EPC section
21431
21432 Since
21433 7.0
21434
21435 SGXInfo (Object)
21436 Information about intel Safe Guard eXtension (SGX) support
21437
21438 Members
21439 sgx: boolean
21440 true if SGX is supported
21441
21442 sgx1: boolean
21443 true if SGX1 is supported
21444
21445 sgx2: boolean
21446 true if SGX2 is supported
21447
21448 flc: boolean
21449 true if FLC is supported
21450
21451 section-size: int
21452 The EPC section size for guest Redundant with sections. Just
21453 for backward compatibility.
21454
21455 sections: array of SGXEPCSection
21456 The EPC sections info for guest (Since: 7.0)
21457
21458 Features
21459 deprecated
21460 Member section-size is deprecated. Use sections instead.
21461
21462 Since
21463 6.2
21464
21465 If
21466 TARGET_I386
21467
21468 query-sgx (Command)
21469 Returns information about SGX
21470
21471 Returns
21472 SGXInfo
21473
21474 Since
21475 6.2
21476
21477 Example
21478 -> { "execute": "query-sgx" }
21479 <- { "return": { "sgx": true, "sgx1" : true, "sgx2" : true,
21480 "flc": true, "section-size" : 96468992,
21481 "sections": [{"node": 0, "size": 67108864},
21482 {"node": 1, "size": 29360128}]} }
21483
21484 If
21485 TARGET_I386
21486
21487 query-sgx-capabilities (Command)
21488 Returns information from host SGX capabilities
21489
21490 Returns
21491 SGXInfo
21492
21493 Since
21494 6.2
21495
21496 Example
21497 -> { "execute": "query-sgx-capabilities" }
21498 <- { "return": { "sgx": true, "sgx1" : true, "sgx2" : true,
21499 "flc": true, "section-size" : 96468992,
21500 "section" : [{"node": 0, "size": 67108864},
21501 {"node": 1, "size": 29360128}]} }
21502
21503 If
21504 TARGET_I386
21505
21507 AudiodevPerDirectionOptions (Object)
21508 General audio backend options that are used for both playback and
21509 recording.
21510
21511 Members
21512 mixing-engine: boolean (optional)
21513 use QEMU's mixing engine to mix all streams inside QEMU and con‐
21514 vert audio formats when not supported by the backend. When set
21515 to off, fixed-settings must be also off (default on, since 4.2)
21516
21517 fixed-settings: boolean (optional)
21518 use fixed settings for host input/output. When off, frequency,
21519 channels and format must not be specified (default true)
21520
21521 frequency: int (optional)
21522 frequency to use when using fixed settings (default 44100)
21523
21524 channels: int (optional)
21525 number of channels when using fixed settings (default 2)
21526
21527 voices: int (optional)
21528 number of voices to use (default 1)
21529
21530 format: AudioFormat (optional)
21531 sample format to use when using fixed settings (default s16)
21532
21533 buffer-length: int (optional)
21534 the buffer length in microseconds
21535
21536 Since
21537 4.0
21538
21539 AudiodevGenericOptions (Object)
21540 Generic driver-specific options.
21541
21542 Members
21543 in: AudiodevPerDirectionOptions (optional)
21544 options of the capture stream
21545
21546 out: AudiodevPerDirectionOptions (optional)
21547 options of the playback stream
21548
21549 Since
21550 4.0
21551
21552 AudiodevAlsaPerDirectionOptions (Object)
21553 Options of the ALSA backend that are used for both playback and record‐
21554 ing.
21555
21556 Members
21557 dev: string (optional)
21558 the name of the ALSA device to use (default 'default')
21559
21560 period-length: int (optional)
21561 the period length in microseconds
21562
21563 try-poll: boolean (optional)
21564 attempt to use poll mode, falling back to non-polling access on
21565 failure (default true)
21566
21567 The members of AudiodevPerDirectionOptions
21568
21569 Since
21570 4.0
21571
21572 AudiodevAlsaOptions (Object)
21573 Options of the ALSA audio backend.
21574
21575 Members
21576 in: AudiodevAlsaPerDirectionOptions (optional)
21577 options of the capture stream
21578
21579 out: AudiodevAlsaPerDirectionOptions (optional)
21580 options of the playback stream
21581
21582 threshold: int (optional)
21583 set the threshold (in microseconds) when playback starts
21584
21585 Since
21586 4.0
21587
21588 AudiodevSndioOptions (Object)
21589 Options of the sndio audio backend.
21590
21591 Members
21592 in: AudiodevPerDirectionOptions (optional)
21593 options of the capture stream
21594
21595 out: AudiodevPerDirectionOptions (optional)
21596 options of the playback stream
21597
21598 dev: string (optional)
21599 the name of the sndio device to use (default 'default')
21600
21601 latency: int (optional)
21602 play buffer size (in microseconds)
21603
21604 Since
21605 7.2
21606
21607 AudiodevCoreaudioPerDirectionOptions (Object)
21608 Options of the Core Audio backend that are used for both playback and
21609 recording.
21610
21611 Members
21612 buffer-count: int (optional)
21613 number of buffers
21614
21615 The members of AudiodevPerDirectionOptions
21616
21617 Since
21618 4.0
21619
21620 AudiodevCoreaudioOptions (Object)
21621 Options of the coreaudio audio backend.
21622
21623 Members
21624 in: AudiodevCoreaudioPerDirectionOptions (optional)
21625 options of the capture stream
21626
21627 out: AudiodevCoreaudioPerDirectionOptions (optional)
21628 options of the playback stream
21629
21630 Since
21631 4.0
21632
21633 AudiodevDsoundOptions (Object)
21634 Options of the DirectSound audio backend.
21635
21636 Members
21637 in: AudiodevPerDirectionOptions (optional)
21638 options of the capture stream
21639
21640 out: AudiodevPerDirectionOptions (optional)
21641 options of the playback stream
21642
21643 latency: int (optional)
21644 add extra latency to playback in microseconds (default 10000)
21645
21646 Since
21647 4.0
21648
21649 AudiodevJackPerDirectionOptions (Object)
21650 Options of the JACK backend that are used for both playback and record‐
21651 ing.
21652
21653 Members
21654 server-name: string (optional)
21655 select from among several possible concurrent server instances
21656 (default: environment variable $JACK_DEFAULT_SERVER if set, else
21657 "default")
21658
21659 client-name: string (optional)
21660 the client name to use. The server will modify this name to cre‐
21661 ate a unique variant, if needed unless exact-name is true (de‐
21662 fault: the guest's name)
21663
21664 connect-ports: string (optional)
21665 if set, a regular expression of JACK client port name(s) to mon‐
21666 itor for and automatically connect to
21667
21668 start-server: boolean (optional)
21669 start a jack server process if one is not already present (de‐
21670 fault: false)
21671
21672 exact-name: boolean (optional)
21673 use the exact name requested otherwise JACK automatically gener‐
21674 ates a unique one, if needed (default: false)
21675
21676 The members of AudiodevPerDirectionOptions
21677
21678 Since
21679 5.1
21680
21681 AudiodevJackOptions (Object)
21682 Options of the JACK audio backend.
21683
21684 Members
21685 in: AudiodevJackPerDirectionOptions (optional)
21686 options of the capture stream
21687
21688 out: AudiodevJackPerDirectionOptions (optional)
21689 options of the playback stream
21690
21691 Since
21692 5.1
21693
21694 AudiodevOssPerDirectionOptions (Object)
21695 Options of the OSS backend that are used for both playback and record‐
21696 ing.
21697
21698 Members
21699 dev: string (optional)
21700 file name of the OSS device (default '/dev/dsp')
21701
21702 buffer-count: int (optional)
21703 number of buffers
21704
21705 try-poll: boolean (optional)
21706 attempt to use poll mode, falling back to non-polling access on
21707 failure (default true)
21708
21709 The members of AudiodevPerDirectionOptions
21710
21711 Since
21712 4.0
21713
21714 AudiodevOssOptions (Object)
21715 Options of the OSS audio backend.
21716
21717 Members
21718 in: AudiodevOssPerDirectionOptions (optional)
21719 options of the capture stream
21720
21721 out: AudiodevOssPerDirectionOptions (optional)
21722 options of the playback stream
21723
21724 try-mmap: boolean (optional)
21725 try using memory-mapped access, falling back to non-mem‐
21726 ory-mapped access on failure (default true)
21727
21728 exclusive: boolean (optional)
21729 open device in exclusive mode (vmix won't work) (default false)
21730
21731 dsp-policy: int (optional)
21732 set the timing policy of the device (between 0 and 10, where
21733 smaller number means smaller latency but higher CPU usage) or -1
21734 to use fragment mode (option ignored on some platforms) (default
21735 5)
21736
21737 Since
21738 4.0
21739
21740 AudiodevPaPerDirectionOptions (Object)
21741 Options of the Pulseaudio backend that are used for both playback and
21742 recording.
21743
21744 Members
21745 name: string (optional)
21746 name of the sink/source to use
21747
21748 stream-name: string (optional)
21749 name of the PulseAudio stream created by qemu. Can be used to
21750 identify the stream in PulseAudio when you create multiple
21751 PulseAudio devices or run multiple qemu instances (default: au‐
21752 diodev's id, since 4.2)
21753
21754 latency: int (optional)
21755 latency you want PulseAudio to achieve in microseconds (default
21756 15000)
21757
21758 The members of AudiodevPerDirectionOptions
21759
21760 Since
21761 4.0
21762
21763 AudiodevPaOptions (Object)
21764 Options of the PulseAudio audio backend.
21765
21766 Members
21767 in: AudiodevPaPerDirectionOptions (optional)
21768 options of the capture stream
21769
21770 out: AudiodevPaPerDirectionOptions (optional)
21771 options of the playback stream
21772
21773 server: string (optional)
21774 PulseAudio server address (default: let PulseAudio choose)
21775
21776 Since
21777 4.0
21778
21779 AudiodevSdlPerDirectionOptions (Object)
21780 Options of the SDL audio backend that are used for both playback and
21781 recording.
21782
21783 Members
21784 buffer-count: int (optional)
21785 number of buffers (default 4)
21786
21787 The members of AudiodevPerDirectionOptions
21788
21789 Since
21790 6.0
21791
21792 AudiodevSdlOptions (Object)
21793 Options of the SDL audio backend.
21794
21795 Members
21796 in: AudiodevSdlPerDirectionOptions (optional)
21797 options of the recording stream
21798
21799 out: AudiodevSdlPerDirectionOptions (optional)
21800 options of the playback stream
21801
21802 Since
21803 6.0
21804
21805 AudiodevWavOptions (Object)
21806 Options of the wav audio backend.
21807
21808 Members
21809 in: AudiodevPerDirectionOptions (optional)
21810 options of the capture stream
21811
21812 out: AudiodevPerDirectionOptions (optional)
21813 options of the playback stream
21814
21815 path: string (optional)
21816 name of the wav file to record (default 'qemu.wav')
21817
21818 Since
21819 4.0
21820
21821 AudioFormat (Enum)
21822 An enumeration of possible audio formats.
21823
21824 Values
21825 u8 unsigned 8 bit integer
21826
21827 s8 signed 8 bit integer
21828
21829 u16 unsigned 16 bit integer
21830
21831 s16 signed 16 bit integer
21832
21833 u32 unsigned 32 bit integer
21834
21835 s32 signed 32 bit integer
21836
21837 f32 single precision floating-point (since 5.0)
21838
21839 Since
21840 4.0
21841
21842 AudiodevDriver (Enum)
21843 An enumeration of possible audio backend drivers.
21844
21845 Values
21846 jack JACK audio backend (since 5.1)
21847
21848 none Not documented
21849
21850 alsa Not documented
21851
21852 coreaudio
21853 Not documented
21854
21855 dbus Not documented
21856
21857 dsound Not documented
21858
21859 oss Not documented
21860
21861 pa Not documented
21862
21863 sdl Not documented
21864
21865 sndio Not documented
21866
21867 spice Not documented
21868
21869 wav Not documented
21870
21871 Since
21872 4.0
21873
21874 Audiodev (Object)
21875 Options of an audio backend.
21876
21877 Members
21878 id: string
21879 identifier of the backend
21880
21881 driver: AudiodevDriver
21882 the backend driver to use
21883
21884 timer-period: int (optional)
21885 timer period (in microseconds, 0: use lowest possible)
21886
21887 The members of AudiodevGenericOptions when driver is "none"
21888
21889 The members of AudiodevAlsaOptions when driver is "alsa"
21890
21891 The members of AudiodevCoreaudioOptions when driver is "coreaudio"
21892
21893 The members of AudiodevGenericOptions when driver is "dbus"
21894
21895 The members of AudiodevDsoundOptions when driver is "dsound"
21896
21897 The members of AudiodevJackOptions when driver is "jack"
21898
21899 The members of AudiodevOssOptions when driver is "oss"
21900
21901 The members of AudiodevPaOptions when driver is "pa"
21902
21903 The members of AudiodevSdlOptions when driver is "sdl"
21904
21905 The members of AudiodevSndioOptions when driver is "sndio"
21906
21907 The members of AudiodevGenericOptions when driver is "spice"
21908
21909 The members of AudiodevWavOptions when driver is "wav"
21910
21911 Since
21912 4.0
21913
21915 AcpiTableOptions (Object)
21916 Specify an ACPI table on the command line to load.
21917
21918 At most one of file and data can be specified. The list of files speci‐
21919 fied by any one of them is loaded and concatenated in order. If both
21920 are omitted, data is implied.
21921
21922 Other fields / optargs can be used to override fields of the generic
21923 ACPI table header; refer to the ACPI specification 5.0, section 5.2.6
21924 System Description Table Header. If a header field is not overridden,
21925 then the corresponding value from the concatenated blob is used (in
21926 case of file), or it is filled in with a hard-coded value (in case of
21927 data).
21928
21929 String fields are copied into the matching ACPI member from lowest ad‐
21930 dress upwards, and silently truncated / NUL-padded to length.
21931
21932 Members
21933 sig: string (optional)
21934 table signature / identifier (4 bytes)
21935
21936 rev: int (optional)
21937 table revision number (dependent on signature, 1 byte)
21938
21939 oem_id: string (optional)
21940 OEM identifier (6 bytes)
21941
21942 oem_table_id: string (optional)
21943 OEM table identifier (8 bytes)
21944
21945 oem_rev: int (optional)
21946 OEM-supplied revision number (4 bytes)
21947
21948 asl_compiler_id: string (optional)
21949 identifier of the utility that created the table (4 bytes)
21950
21951 asl_compiler_rev: int (optional)
21952 revision number of the utility that created the table (4 bytes)
21953
21954 file: string (optional)
21955 colon (:) separated list of pathnames to load and concatenate as
21956 table data. The resultant binary blob is expected to have an
21957 ACPI table header. At least one file is required. This field ex‐
21958 cludes data.
21959
21960 data: string (optional)
21961 colon (:) separated list of pathnames to load and concatenate as
21962 table data. The resultant binary blob must not have an ACPI ta‐
21963 ble header. At least one file is required. This field excludes
21964 file.
21965
21966 Since
21967 1.5
21968
21969 ACPISlotType (Enum)
21970 Values
21971 DIMM memory slot
21972
21973 CPU logical CPU slot (since 2.7)
21974
21975 ACPIOSTInfo (Object)
21976 OSPM Status Indication for a device For description of possible values
21977 of source and status fields see "_OST (OSPM Status Indication)" chapter
21978 of ACPI5.0 spec.
21979
21980 Members
21981 device: string (optional)
21982 device ID associated with slot
21983
21984 slot: string
21985 slot ID, unique per slot of a given slot-type
21986
21987 slot-type: ACPISlotType
21988 type of the slot
21989
21990 source: int
21991 an integer containing the source event
21992
21993 status: int
21994 an integer containing the status code
21995
21996 Since
21997 2.1
21998
21999 query-acpi-ospm-status (Command)
22000 Return a list of ACPIOSTInfo for devices that support status reporting
22001 via ACPI _OST method.
22002
22003 Since
22004 2.1
22005
22006 Example
22007 -> { "execute": "query-acpi-ospm-status" }
22008 <- { "return": [ { "device": "d1", "slot": "0", "slot-type": "DIMM", "source": 1, "status": 0},
22009 { "slot": "1", "slot-type": "DIMM", "source": 0, "status": 0},
22010 { "slot": "2", "slot-type": "DIMM", "source": 0, "status": 0},
22011 { "slot": "3", "slot-type": "DIMM", "source": 0, "status": 0}
22012 ]}
22013
22014 ACPI_DEVICE_OST (Event)
22015 Emitted when guest executes ACPI _OST method.
22016
22017 Arguments
22018 info: ACPIOSTInfo
22019 OSPM Status Indication
22020
22021 Since
22022 2.1
22023
22024 Example
22025 <- { "event": "ACPI_DEVICE_OST",
22026 "data": { "info": { "device": "d1", "slot": "0",
22027 "slot-type": "DIMM", "source": 1, "status": 0 } },
22028 "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
22029
22031 PciMemoryRange (Object)
22032 A PCI device memory region
22033
22034 Members
22035 base: int
22036 the starting address (guest physical)
22037
22038 limit: int
22039 the ending address (guest physical)
22040
22041 Since
22042 0.14
22043
22044 PciMemoryRegion (Object)
22045 Information about a PCI device I/O region.
22046
22047 Members
22048 bar: int
22049 the index of the Base Address Register for this region
22050
22051 type: string
22052
22053 • 'io' if the region is a PIO region
22054
22055 • 'memory' if the region is a MMIO region
22056
22057 size: int
22058 memory size
22059
22060 prefetch: boolean (optional)
22061 if type is 'memory', true if the memory is prefetchable
22062
22063 mem_type_64: boolean (optional)
22064 if type is 'memory', true if the BAR is 64-bit
22065
22066 address: int
22067 Not documented
22068
22069 Since
22070 0.14
22071
22072 PciBusInfo (Object)
22073 Information about a bus of a PCI Bridge device
22074
22075 Members
22076 number: int
22077 primary bus interface number. This should be the number of the
22078 bus the device resides on.
22079
22080 secondary: int
22081 secondary bus interface number. This is the number of the main
22082 bus for the bridge
22083
22084 subordinate: int
22085 This is the highest number bus that resides below the bridge.
22086
22087 io_range: PciMemoryRange
22088 The PIO range for all devices on this bridge
22089
22090 memory_range: PciMemoryRange
22091 The MMIO range for all devices on this bridge
22092
22093 prefetchable_range: PciMemoryRange
22094 The range of prefetchable MMIO for all devices on this bridge
22095
22096 Since
22097 2.4
22098
22099 PciBridgeInfo (Object)
22100 Information about a PCI Bridge device
22101
22102 Members
22103 bus: PciBusInfo
22104 information about the bus the device resides on
22105
22106 devices: array of PciDeviceInfo (optional)
22107 a list of PciDeviceInfo for each device on this bridge
22108
22109 Since
22110 0.14
22111
22112 PciDeviceClass (Object)
22113 Information about the Class of a PCI device
22114
22115 Members
22116 desc: string (optional)
22117 a string description of the device's class
22118
22119 class: int
22120 the class code of the device
22121
22122 Since
22123 2.4
22124
22125 PciDeviceId (Object)
22126 Information about the Id of a PCI device
22127
22128 Members
22129 device: int
22130 the PCI device id
22131
22132 vendor: int
22133 the PCI vendor id
22134
22135 subsystem: int (optional)
22136 the PCI subsystem id (since 3.1)
22137
22138 subsystem-vendor: int (optional)
22139 the PCI subsystem vendor id (since 3.1)
22140
22141 Since
22142 2.4
22143
22144 PciDeviceInfo (Object)
22145 Information about a PCI device
22146
22147 Members
22148 bus: int
22149 the bus number of the device
22150
22151 slot: int
22152 the slot the device is located in
22153
22154 function: int
22155 the function of the slot used by the device
22156
22157 class_info: PciDeviceClass
22158 the class of the device
22159
22160 id: PciDeviceId
22161 the PCI device id
22162
22163 irq: int (optional)
22164 if an IRQ is assigned to the device, the IRQ number
22165
22166 irq_pin: int
22167 the IRQ pin, zero means no IRQ (since 5.1)
22168
22169 qdev_id: string
22170 the device name of the PCI device
22171
22172 pci_bridge: PciBridgeInfo (optional)
22173 if the device is a PCI bridge, the bridge information
22174
22175 regions: array of PciMemoryRegion
22176 a list of the PCI I/O regions associated with the device
22177
22178 Notes
22179 the contents of class_info.desc are not stable and should only be
22180 treated as informational.
22181
22182 Since
22183 0.14
22184
22185 PciInfo (Object)
22186 Information about a PCI bus
22187
22188 Members
22189 bus: int
22190 the bus index
22191
22192 devices: array of PciDeviceInfo
22193 a list of devices on this bus
22194
22195 Since
22196 0.14
22197
22198 query-pci (Command)
22199 Return information about the PCI bus topology of the guest.
22200
22201 Returns
22202 a list of PciInfo for each PCI bus. Each bus is represented by a
22203 json-object, which has a key with a json-array of all PCI devices at‐
22204 tached to it. Each device is represented by a json-object.
22205
22206 Since
22207 0.14
22208
22209 Example
22210 -> { "execute": "query-pci" }
22211 <- { "return": [
22212 {
22213 "bus": 0,
22214 "devices": [
22215 {
22216 "bus": 0,
22217 "qdev_id": "",
22218 "slot": 0,
22219 "class_info": {
22220 "class": 1536,
22221 "desc": "Host bridge"
22222 },
22223 "id": {
22224 "device": 32902,
22225 "vendor": 4663
22226 },
22227 "function": 0,
22228 "regions": [
22229 ]
22230 },
22231 {
22232 "bus": 0,
22233 "qdev_id": "",
22234 "slot": 1,
22235 "class_info": {
22236 "class": 1537,
22237 "desc": "ISA bridge"
22238 },
22239 "id": {
22240 "device": 32902,
22241 "vendor": 28672
22242 },
22243 "function": 0,
22244 "regions": [
22245 ]
22246 },
22247 {
22248 "bus": 0,
22249 "qdev_id": "",
22250 "slot": 1,
22251 "class_info": {
22252 "class": 257,
22253 "desc": "IDE controller"
22254 },
22255 "id": {
22256 "device": 32902,
22257 "vendor": 28688
22258 },
22259 "function": 1,
22260 "regions": [
22261 {
22262 "bar": 4,
22263 "size": 16,
22264 "address": 49152,
22265 "type": "io"
22266 }
22267 ]
22268 },
22269 {
22270 "bus": 0,
22271 "qdev_id": "",
22272 "slot": 2,
22273 "class_info": {
22274 "class": 768,
22275 "desc": "VGA controller"
22276 },
22277 "id": {
22278 "device": 4115,
22279 "vendor": 184
22280 },
22281 "function": 0,
22282 "regions": [
22283 {
22284 "prefetch": true,
22285 "mem_type_64": false,
22286 "bar": 0,
22287 "size": 33554432,
22288 "address": 4026531840,
22289 "type": "memory"
22290 },
22291 {
22292 "prefetch": false,
22293 "mem_type_64": false,
22294 "bar": 1,
22295 "size": 4096,
22296 "address": 4060086272,
22297 "type": "memory"
22298 },
22299 {
22300 "prefetch": false,
22301 "mem_type_64": false,
22302 "bar": 6,
22303 "size": 65536,
22304 "address": -1,
22305 "type": "memory"
22306 }
22307 ]
22308 },
22309 {
22310 "bus": 0,
22311 "qdev_id": "",
22312 "irq": 11,
22313 "slot": 4,
22314 "class_info": {
22315 "class": 1280,
22316 "desc": "RAM controller"
22317 },
22318 "id": {
22319 "device": 6900,
22320 "vendor": 4098
22321 },
22322 "function": 0,
22323 "regions": [
22324 {
22325 "bar": 0,
22326 "size": 32,
22327 "address": 49280,
22328 "type": "io"
22329 }
22330 ]
22331 }
22332 ]
22333 }
22334 ]
22335 }
22336
22337 Note
22338 This example has been shortened as the real response is too long.
22339
22341 StatsType (Enum)
22342 Enumeration of statistics types
22343
22344 Values
22345 cumulative
22346 stat is cumulative; value can only increase.
22347
22348 instant
22349 stat is instantaneous; value can increase or decrease.
22350
22351 peak stat is the peak value; value can only increase.
22352
22353 linear-histogram
22354 stat is a linear histogram.
22355
22356 log2-histogram
22357 stat is a logarithmic histogram, with one bucket for each power
22358 of two.
22359
22360 Since
22361 7.1
22362
22363 StatsUnit (Enum)
22364 Enumeration of unit of measurement for statistics
22365
22366 Values
22367 bytes stat reported in bytes.
22368
22369 seconds
22370 stat reported in seconds.
22371
22372 cycles stat reported in clock cycles.
22373
22374 boolean
22375 stat is a boolean value.
22376
22377 Since
22378 7.1
22379
22380 StatsProvider (Enum)
22381 Enumeration of statistics providers.
22382
22383 Values
22384 kvm Not documented
22385
22386 Since
22387 7.1
22388
22389 StatsTarget (Enum)
22390 The kinds of objects on which one can request statistics.
22391
22392 Values
22393 vm statistics that apply to the entire virtual machine or the en‐
22394 tire QEMU process.
22395
22396 vcpu statistics that apply to a single virtual CPU.
22397
22398 Since
22399 7.1
22400
22401 StatsRequest (Object)
22402 Indicates a set of statistics that should be returned by query-stats.
22403
22404 Members
22405 provider: StatsProvider
22406 provider for which to return statistics.
22407
22408 names: array of string (optional)
22409 statistics to be returned (all if omitted).
22410
22411 Since
22412 7.1
22413
22414 StatsVCPUFilter (Object)
22415 Members
22416 vcpus: array of string (optional)
22417 list of QOM paths for the desired vCPU objects.
22418
22419 Since
22420 7.1
22421
22422 StatsFilter (Object)
22423 The arguments to the query-stats command; specifies a target for which
22424 to request statistics and optionally the required subset of information
22425 for that target: - which vCPUs to request statistics for - which
22426 providers to request statistics from - which named values to return
22427 within each provider
22428
22429 Members
22430 target: StatsTarget
22431 Not documented
22432
22433 providers: array of StatsRequest (optional)
22434 Not documented
22435
22436 The members of StatsVCPUFilter when target is "vcpu"
22437
22438 Since
22439 7.1
22440
22441 StatsValue (Alternate)
22442 Members
22443 scalar: int
22444 single unsigned 64-bit integers.
22445
22446 list: array of int
22447 list of unsigned 64-bit integers (used for histograms).
22448
22449 boolean: boolean
22450 Not documented
22451
22452 Since
22453 7.1
22454
22455 Stats (Object)
22456 Members
22457 name: string
22458 name of stat.
22459
22460 value: StatsValue
22461 stat value.
22462
22463 Since
22464 7.1
22465
22466 StatsResult (Object)
22467 Members
22468 provider: StatsProvider
22469 provider for this set of statistics.
22470
22471 qom-path: string (optional)
22472 Path to the object for which the statistics are returned, if the
22473 object is exposed in the QOM tree
22474
22475 stats: array of Stats
22476 list of statistics.
22477
22478 Since
22479 7.1
22480
22481 query-stats (Command)
22482 Return runtime-collected statistics for objects such as the VM or its
22483 vCPUs.
22484
22485 The arguments are a StatsFilter and specify the provider and objects to
22486 return statistics about.
22487
22488 Arguments
22489 The members of StatsFilter
22490
22491 Returns
22492 a list of StatsResult, one for each provider and object (e.g., for each
22493 vCPU).
22494
22495 Since
22496 7.1
22497
22498 StatsSchemaValue (Object)
22499 Schema for a single statistic.
22500
22501 Members
22502 name: string
22503 name of the statistic; each element of the schema is uniquely
22504 identified by a target, a provider (both available in StatsS‐
22505 chema) and the name.
22506
22507 type: StatsType
22508 kind of statistic.
22509
22510 unit: StatsUnit (optional)
22511 basic unit of measure for the statistic; if missing, the statis‐
22512 tic is a simple number or counter.
22513
22514 base: int (optional)
22515 base for the multiple of unit in which the statistic is mea‐
22516 sured. Only present if exponent is non-zero; base and exponent
22517 together form a SI prefix (e.g., _nano-_ for base=10 and expo‐
22518 nent=-9) or IEC binary prefix (e.g. _kibi-_ for base=2 and expo‐
22519 nent=10)
22520
22521 exponent: int
22522 exponent for the multiple of unit in which the statistic is ex‐
22523 pressed, or 0 for the basic unit
22524
22525 bucket-size: int (optional)
22526 Present when type is "linear-histogram", contains the width of
22527 each bucket of the histogram.
22528
22529 Since
22530 7.1
22531
22532 StatsSchema (Object)
22533 Schema for all available statistics for a provider and target.
22534
22535 Members
22536 provider: StatsProvider
22537 provider for this set of statistics.
22538
22539 target: StatsTarget
22540 the kind of object that can be queried through the provider.
22541
22542 stats: array of StatsSchemaValue
22543 list of statistics.
22544
22545 Since
22546 7.1
22547
22548 query-stats-schemas (Command)
22549 Return the schema for all available runtime-collected statistics.
22550
22551 Arguments
22552 provider: StatsProvider (optional)
22553 Not documented
22554
22555 Note
22556 runtime-collected statistics and their names fall outside QEMU's usual
22557 deprecation policies. QEMU will try to keep the set of available data
22558 stable, together with their names, but will not guarantee stability at
22559 all costs; the same is true of providers that source statistics exter‐
22560 nally, e.g. from Linux. For example, if the same value is being
22561 tracked with different names on different architectures or by different
22562 providers, one of them might be renamed. A statistic might go away if
22563 an algorithm is changed or some code is removed; changing a default
22564 might cause previously useful statistics to always report 0. Such
22565 changes, however, are expected to be rare.
22566
22567 Since
22568 7.1
22569
22571 VirtioInfo (Object)
22572 Basic information about a given VirtIODevice
22573
22574 Members
22575 path: string
22576 The VirtIODevice's canonical QOM path
22577
22578 name: string
22579 Name of the VirtIODevice
22580
22581 Since
22582 7.2
22583
22584 x-query-virtio (Command)
22585 Returns a list of all realized VirtIODevices
22586
22587 Features
22588 unstable
22589 This command is meant for debugging.
22590
22591 Returns
22592 List of gathered VirtIODevices
22593
22594 Since
22595 7.2
22596
22597 Example
22598 -> { "execute": "x-query-virtio" }
22599 <- { "return": [
22600 {
22601 "name": "virtio-input",
22602 "path": "/machine/peripheral-anon/device[4]/virtio-backend"
22603 },
22604 {
22605 "name": "virtio-crypto",
22606 "path": "/machine/peripheral/crypto0/virtio-backend"
22607 },
22608 {
22609 "name": "virtio-scsi",
22610 "path": "/machine/peripheral-anon/device[2]/virtio-backend"
22611 },
22612 {
22613 "name": "virtio-net",
22614 "path": "/machine/peripheral-anon/device[1]/virtio-backend"
22615 },
22616 {
22617 "name": "virtio-serial",
22618 "path": "/machine/peripheral-anon/device[0]/virtio-backend"
22619 }
22620 ]
22621 }
22622
22623 VhostStatus (Object)
22624 Information about a vhost device. This information will only be dis‐
22625 played if the vhost device is active.
22626
22627 Members
22628 n-mem-sections: int
22629 vhost_dev n_mem_sections
22630
22631 n-tmp-sections: int
22632 vhost_dev n_tmp_sections
22633
22634 nvqs: int
22635 vhost_dev nvqs (number of virtqueues being used)
22636
22637 vq-index: int
22638 vhost_dev vq_index
22639
22640 features: VirtioDeviceFeatures
22641 vhost_dev features
22642
22643 acked-features: VirtioDeviceFeatures
22644 vhost_dev acked_features
22645
22646 backend-features: VirtioDeviceFeatures
22647 vhost_dev backend_features
22648
22649 protocol-features: VhostDeviceProtocols
22650 vhost_dev protocol_features
22651
22652 max-queues: int
22653 vhost_dev max_queues
22654
22655 backend-cap: int
22656 vhost_dev backend_cap
22657
22658 log-enabled: boolean
22659 vhost_dev log_enabled flag
22660
22661 log-size: int
22662 vhost_dev log_size
22663
22664 Since
22665 7.2
22666
22667 VirtioStatus (Object)
22668 Full status of the virtio device with most VirtIODevice members. Also
22669 includes the full status of the corresponding vhost device if the vhost
22670 device is active.
22671
22672 Members
22673 name: string
22674 VirtIODevice name
22675
22676 device-id: int
22677 VirtIODevice ID
22678
22679 vhost-started: boolean
22680 VirtIODevice vhost_started flag
22681
22682 guest-features: VirtioDeviceFeatures
22683 VirtIODevice guest_features
22684
22685 host-features: VirtioDeviceFeatures
22686 VirtIODevice host_features
22687
22688 backend-features: VirtioDeviceFeatures
22689 VirtIODevice backend_features
22690
22691 device-endian: string
22692 VirtIODevice device_endian
22693
22694 num-vqs: int
22695 VirtIODevice virtqueue count. This is the number of active
22696 virtqueues being used by the VirtIODevice.
22697
22698 status: VirtioDeviceStatus
22699 VirtIODevice configuration status (VirtioDeviceStatus)
22700
22701 isr: int
22702 VirtIODevice ISR
22703
22704 queue-sel: int
22705 VirtIODevice queue_sel
22706
22707 vm-running: boolean
22708 VirtIODevice vm_running flag
22709
22710 broken: boolean
22711 VirtIODevice broken flag
22712
22713 disabled: boolean
22714 VirtIODevice disabled flag
22715
22716 use-started: boolean
22717 VirtIODevice use_started flag
22718
22719 started: boolean
22720 VirtIODevice started flag
22721
22722 start-on-kick: boolean
22723 VirtIODevice start_on_kick flag
22724
22725 disable-legacy-check: boolean
22726 VirtIODevice disabled_legacy_check flag
22727
22728 bus-name: string
22729 VirtIODevice bus_name
22730
22731 use-guest-notifier-mask: boolean
22732 VirtIODevice use_guest_notifier_mask flag
22733
22734 vhost-dev: VhostStatus (optional)
22735 Corresponding vhost device info for a given VirtIODevice.
22736 Present if the given VirtIODevice has an active vhost device.
22737
22738 Since
22739 7.2
22740
22741 x-query-virtio-status (Command)
22742 Poll for a comprehensive status of a given virtio device
22743
22744 Arguments
22745 path: string
22746 Canonical QOM path of the VirtIODevice
22747
22748 Features
22749 unstable
22750 This command is meant for debugging.
22751
22752 Returns
22753 VirtioStatus of the virtio device
22754
22755 Since
22756 7.2
22757
22758 Examples
22759 1. Poll for the status of virtio-crypto (no vhost-crypto active)
22760
22761 -> { "execute": "x-query-virtio-status",
22762 "arguments": { "path": "/machine/peripheral/crypto0/virtio-backend" }
22763 }
22764 <- { "return": {
22765 "device-endian": "little",
22766 "bus-name": "",
22767 "disable-legacy-check": false,
22768 "name": "virtio-crypto",
22769 "started": true,
22770 "device-id": 20,
22771 "backend-features": {
22772 "transports": [],
22773 "dev-features": []
22774 },
22775 "start-on-kick": false,
22776 "isr": 1,
22777 "broken": false,
22778 "status": {
22779 "statuses": [
22780 "VIRTIO_CONFIG_S_ACKNOWLEDGE: Valid virtio device found",
22781 "VIRTIO_CONFIG_S_DRIVER: Guest OS compatible with device",
22782 "VIRTIO_CONFIG_S_FEATURES_OK: Feature negotiation complete",
22783 "VIRTIO_CONFIG_S_DRIVER_OK: Driver setup and ready"
22784 ]
22785 },
22786 "num-vqs": 2,
22787 "guest-features": {
22788 "dev-features": [],
22789 "transports": [
22790 "VIRTIO_RING_F_EVENT_IDX: Used & avail. event fields enabled",
22791 "VIRTIO_RING_F_INDIRECT_DESC: Indirect descriptors supported",
22792 "VIRTIO_F_VERSION_1: Device compliant for v1 spec (legacy)"
22793 ]
22794 },
22795 "host-features": {
22796 "unknown-dev-features": 1073741824,
22797 "dev-features": [],
22798 "transports": [
22799 "VIRTIO_RING_F_EVENT_IDX: Used & avail. event fields enabled",
22800 "VIRTIO_RING_F_INDIRECT_DESC: Indirect descriptors supported",
22801 "VIRTIO_F_VERSION_1: Device compliant for v1 spec (legacy)",
22802 "VIRTIO_F_ANY_LAYOUT: Device accepts arbitrary desc. layouts",
22803 "VIRTIO_F_NOTIFY_ON_EMPTY: Notify when device runs out of avail. descs. on VQ"
22804 ]
22805 },
22806 "use-guest-notifier-mask": true,
22807 "vm-running": true,
22808 "queue-sel": 1,
22809 "disabled": false,
22810 "vhost-started": false,
22811 "use-started": true
22812 }
22813 }
22814
22815 2. Poll for the status of virtio-net (vhost-net is active)
22816
22817 -> { "execute": "x-query-virtio-status",
22818 "arguments": { "path": "/machine/peripheral-anon/device[1]/virtio-backend" }
22819 }
22820 <- { "return": {
22821 "device-endian": "little",
22822 "bus-name": "",
22823 "disabled-legacy-check": false,
22824 "name": "virtio-net",
22825 "started": true,
22826 "device-id": 1,
22827 "vhost-dev": {
22828 "n-tmp-sections": 4,
22829 "n-mem-sections": 4,
22830 "max-queues": 1,
22831 "backend-cap": 2,
22832 "log-size": 0,
22833 "backend-features": {
22834 "dev-features": [],
22835 "transports": []
22836 },
22837 "nvqs": 2,
22838 "protocol-features": {
22839 "protocols": []
22840 },
22841 "vq-index": 0,
22842 "log-enabled": false,
22843 "acked-features": {
22844 "dev-features": [
22845 "VIRTIO_NET_F_MRG_RXBUF: Driver can merge receive buffers"
22846 ],
22847 "transports": [
22848 "VIRTIO_RING_F_EVENT_IDX: Used & avail. event fields enabled",
22849 "VIRTIO_RING_F_INDIRECT_DESC: Indirect descriptors supported",
22850 "VIRTIO_F_VERSION_1: Device compliant for v1 spec (legacy)"
22851 ]
22852 },
22853 "features": {
22854 "dev-features": [
22855 "VHOST_F_LOG_ALL: Logging write descriptors supported",
22856 "VIRTIO_NET_F_MRG_RXBUF: Driver can merge receive buffers"
22857 ],
22858 "transports": [
22859 "VIRTIO_RING_F_EVENT_IDX: Used & avail. event fields enabled",
22860 "VIRTIO_RING_F_INDIRECT_DESC: Indirect descriptors supported",
22861 "VIRTIO_F_IOMMU_PLATFORM: Device can be used on IOMMU platform",
22862 "VIRTIO_F_VERSION_1: Device compliant for v1 spec (legacy)",
22863 "VIRTIO_F_ANY_LAYOUT: Device accepts arbitrary desc. layouts",
22864 "VIRTIO_F_NOTIFY_ON_EMPTY: Notify when device runs out of avail. descs. on VQ"
22865 ]
22866 }
22867 },
22868 "backend-features": {
22869 "dev-features": [
22870 "VHOST_USER_F_PROTOCOL_FEATURES: Vhost-user protocol features negotiation supported",
22871 "VIRTIO_NET_F_GSO: Handling GSO-type packets supported",
22872 "VIRTIO_NET_F_CTRL_MAC_ADDR: MAC address set through control channel",
22873 "VIRTIO_NET_F_GUEST_ANNOUNCE: Driver sending gratuitous packets supported",
22874 "VIRTIO_NET_F_CTRL_RX_EXTRA: Extra RX mode control supported",
22875 "VIRTIO_NET_F_CTRL_VLAN: Control channel VLAN filtering supported",
22876 "VIRTIO_NET_F_CTRL_RX: Control channel RX mode supported",
22877 "VIRTIO_NET_F_CTRL_VQ: Control channel available",
22878 "VIRTIO_NET_F_STATUS: Configuration status field available",
22879 "VIRTIO_NET_F_MRG_RXBUF: Driver can merge receive buffers",
22880 "VIRTIO_NET_F_HOST_UFO: Device can receive UFO",
22881 "VIRTIO_NET_F_HOST_ECN: Device can receive TSO with ECN",
22882 "VIRTIO_NET_F_HOST_TSO6: Device can receive TSOv6",
22883 "VIRTIO_NET_F_HOST_TSO4: Device can receive TSOv4",
22884 "VIRTIO_NET_F_GUEST_UFO: Driver can receive UFO",
22885 "VIRTIO_NET_F_GUEST_ECN: Driver can receive TSO with ECN",
22886 "VIRTIO_NET_F_GUEST_TSO6: Driver can receive TSOv6",
22887 "VIRTIO_NET_F_GUEST_TSO4: Driver can receive TSOv4",
22888 "VIRTIO_NET_F_MAC: Device has given MAC address",
22889 "VIRTIO_NET_F_CTRL_GUEST_OFFLOADS: Control channel offloading reconfig. supported",
22890 "VIRTIO_NET_F_GUEST_CSUM: Driver handling packets with partial checksum supported",
22891 "VIRTIO_NET_F_CSUM: Device handling packets with partial checksum supported"
22892 ],
22893 "transports": [
22894 "VIRTIO_RING_F_EVENT_IDX: Used & avail. event fields enabled",
22895 "VIRTIO_RING_F_INDIRECT_DESC: Indirect descriptors supported",
22896 "VIRTIO_F_VERSION_1: Device compliant for v1 spec (legacy)",
22897 "VIRTIO_F_ANY_LAYOUT: Device accepts arbitrary desc. layouts",
22898 "VIRTIO_F_NOTIFY_ON_EMPTY: Notify when device runs out of avail. descs. on VQ"
22899 ]
22900 },
22901 "start-on-kick": false,
22902 "isr": 1,
22903 "broken": false,
22904 "status": {
22905 "statuses": [
22906 "VIRTIO_CONFIG_S_ACKNOWLEDGE: Valid virtio device found",
22907 "VIRTIO_CONFIG_S_DRIVER: Guest OS compatible with device",
22908 "VIRTIO_CONFIG_S_FEATURES_OK: Feature negotiation complete",
22909 "VIRTIO_CONFIG_S_DRIVER_OK: Driver setup and ready"
22910 ]
22911 },
22912 "num-vqs": 3,
22913 "guest-features": {
22914 "dev-features": [
22915 "VIRTIO_NET_F_CTRL_MAC_ADDR: MAC address set through control channel",
22916 "VIRTIO_NET_F_GUEST_ANNOUNCE: Driver sending gratuitous packets supported",
22917 "VIRTIO_NET_F_CTRL_VLAN: Control channel VLAN filtering supported",
22918 "VIRTIO_NET_F_CTRL_RX: Control channel RX mode supported",
22919 "VIRTIO_NET_F_CTRL_VQ: Control channel available",
22920 "VIRTIO_NET_F_STATUS: Configuration status field available",
22921 "VIRTIO_NET_F_MRG_RXBUF: Driver can merge receive buffers",
22922 "VIRTIO_NET_F_HOST_UFO: Device can receive UFO",
22923 "VIRTIO_NET_F_HOST_ECN: Device can receive TSO with ECN",
22924 "VIRTIO_NET_F_HOST_TSO6: Device can receive TSOv6",
22925 "VIRTIO_NET_F_HOST_TSO4: Device can receive TSOv4",
22926 "VIRTIO_NET_F_GUEST_UFO: Driver can receive UFO",
22927 "VIRTIO_NET_F_GUEST_ECN: Driver can receive TSO with ECN",
22928 "VIRTIO_NET_F_GUEST_TSO6: Driver can receive TSOv6",
22929 "VIRTIO_NET_F_GUEST_TSO4: Driver can receive TSOv4",
22930 "VIRTIO_NET_F_MAC: Device has given MAC address",
22931 "VIRTIO_NET_F_CTRL_GUEST_OFFLOADS: Control channel offloading reconfig. supported",
22932 "VIRTIO_NET_F_GUEST_CSUM: Driver handling packets with partial checksum supported",
22933 "VIRTIO_NET_F_CSUM: Device handling packets with partial checksum supported"
22934 ],
22935 "transports": [
22936 "VIRTIO_RING_F_EVENT_IDX: Used & avail. event fields enabled",
22937 "VIRTIO_RING_F_INDIRECT_DESC: Indirect descriptors supported",
22938 "VIRTIO_F_VERSION_1: Device compliant for v1 spec (legacy)"
22939 ]
22940 },
22941 "host-features": {
22942 "dev-features": [
22943 "VHOST_USER_F_PROTOCOL_FEATURES: Vhost-user protocol features negotiation supported",
22944 "VIRTIO_NET_F_GSO: Handling GSO-type packets supported",
22945 "VIRTIO_NET_F_CTRL_MAC_ADDR: MAC address set through control channel",
22946 "VIRTIO_NET_F_GUEST_ANNOUNCE: Driver sending gratuitous packets supported",
22947 "VIRTIO_NET_F_CTRL_RX_EXTRA: Extra RX mode control supported",
22948 "VIRTIO_NET_F_CTRL_VLAN: Control channel VLAN filtering supported",
22949 "VIRTIO_NET_F_CTRL_RX: Control channel RX mode supported",
22950 "VIRTIO_NET_F_CTRL_VQ: Control channel available",
22951 "VIRTIO_NET_F_STATUS: Configuration status field available",
22952 "VIRTIO_NET_F_MRG_RXBUF: Driver can merge receive buffers",
22953 "VIRTIO_NET_F_HOST_UFO: Device can receive UFO",
22954 "VIRTIO_NET_F_HOST_ECN: Device can receive TSO with ECN",
22955 "VIRTIO_NET_F_HOST_TSO6: Device can receive TSOv6",
22956 "VIRTIO_NET_F_HOST_TSO4: Device can receive TSOv4",
22957 "VIRTIO_NET_F_GUEST_UFO: Driver can receive UFO",
22958 "VIRTIO_NET_F_GUEST_ECN: Driver can receive TSO with ECN",
22959 "VIRTIO_NET_F_GUEST_TSO6: Driver can receive TSOv6",
22960 "VIRTIO_NET_F_GUEST_TSO4: Driver can receive TSOv4",
22961 "VIRTIO_NET_F_MAC: Device has given MAC address",
22962 "VIRTIO_NET_F_CTRL_GUEST_OFFLOADS: Control channel offloading reconfig. supported",
22963 "VIRTIO_NET_F_GUEST_CSUM: Driver handling packets with partial checksum supported",
22964 "VIRTIO_NET_F_CSUM: Device handling packets with partial checksum supported"
22965 ],
22966 "transports": [
22967 "VIRTIO_RING_F_EVENT_IDX: Used & avail. event fields enabled",
22968 "VIRTIO_RING_F_INDIRECT_DESC: Indirect descriptors supported",
22969 "VIRTIO_F_VERSION_1: Device compliant for v1 spec (legacy)",
22970 "VIRTIO_F_ANY_LAYOUT: Device accepts arbitrary desc. layouts",
22971 "VIRTIO_F_NOTIFY_ON_EMPTY: Notify when device runs out of avail. descs. on VQ"
22972 ]
22973 },
22974 "use-guest-notifier-mask": true,
22975 "vm-running": true,
22976 "queue-sel": 2,
22977 "disabled": false,
22978 "vhost-started": true,
22979 "use-started": true
22980 }
22981 }
22982
22983 VirtioDeviceStatus (Object)
22984 A structure defined to list the configuration statuses of a virtio de‐
22985 vice
22986
22987 Members
22988 statuses: array of string
22989 List of decoded configuration statuses of the virtio device
22990
22991 unknown-statuses: int (optional)
22992 Virtio device statuses bitmap that have not been decoded
22993
22994 Since
22995 7.2
22996
22997 VhostDeviceProtocols (Object)
22998 A structure defined to list the vhost user protocol features of a Vhost
22999 User device
23000
23001 Members
23002 protocols: array of string
23003 List of decoded vhost user protocol features of a vhost user de‐
23004 vice
23005
23006 unknown-protocols: int (optional)
23007 Vhost user device protocol features bitmap that have not been
23008 decoded
23009
23010 Since
23011 7.2
23012
23013 VirtioDeviceFeatures (Object)
23014 The common fields that apply to most Virtio devices. Some devices may
23015 not have their own device-specific features (e.g. virtio-rng).
23016
23017 Members
23018 transports: array of string
23019 List of transport features of the virtio device
23020
23021 dev-features: array of string (optional)
23022 List of device-specific features (if the device has unique fea‐
23023 tures)
23024
23025 unknown-dev-features: int (optional)
23026 Virtio device features bitmap that have not been decoded
23027
23028 Since
23029 7.2
23030
23031 VirtQueueStatus (Object)
23032 Information of a VirtIODevice VirtQueue, including most members of the
23033 VirtQueue data structure.
23034
23035 Members
23036 name: string
23037 Name of the VirtIODevice that uses this VirtQueue
23038
23039 queue-index: int
23040 VirtQueue queue_index
23041
23042 inuse: int
23043 VirtQueue inuse
23044
23045 vring-num: int
23046 VirtQueue vring.num
23047
23048 vring-num-default: int
23049 VirtQueue vring.num_default
23050
23051 vring-align: int
23052 VirtQueue vring.align
23053
23054 vring-desc: int
23055 VirtQueue vring.desc (descriptor area)
23056
23057 vring-avail: int
23058 VirtQueue vring.avail (driver area)
23059
23060 vring-used: int
23061 VirtQueue vring.used (device area)
23062
23063 last-avail-idx: int (optional)
23064 VirtQueue last_avail_idx or return of vhost_dev
23065 vhost_get_vring_base (if vhost active)
23066
23067 shadow-avail-idx: int (optional)
23068 VirtQueue shadow_avail_idx
23069
23070 used-idx: int
23071 VirtQueue used_idx
23072
23073 signalled-used: int
23074 VirtQueue signalled_used
23075
23076 signalled-used-valid: boolean
23077 VirtQueue signalled_used_valid flag
23078
23079 Since
23080 7.2
23081
23082 x-query-virtio-queue-status (Command)
23083 Return the status of a given VirtIODevice's VirtQueue
23084
23085 Arguments
23086 path: string
23087 VirtIODevice canonical QOM path
23088
23089 queue: int
23090 VirtQueue index to examine
23091
23092 Features
23093 unstable
23094 This command is meant for debugging.
23095
23096 Returns
23097 VirtQueueStatus of the VirtQueue
23098
23099 Notes
23100 last_avail_idx will not be displayed in the case where the selected
23101 VirtIODevice has a running vhost device and the VirtIODevice VirtQueue
23102 index (queue) does not exist for the corresponding vhost device
23103 vhost_virtqueue. Also, shadow_avail_idx will not be displayed in the
23104 case where the selected VirtIODevice has a running vhost device.
23105
23106 Since
23107 7.2
23108
23109 Examples
23110 1. Get VirtQueueStatus for virtio-vsock (vhost-vsock running)
23111
23112 -> { "execute": "x-query-virtio-queue-status",
23113 "arguments": { "path": "/machine/peripheral/vsock0/virtio-backend",
23114 "queue": 1 }
23115 }
23116 <- { "return": {
23117 "signalled-used": 0,
23118 "inuse": 0,
23119 "name": "vhost-vsock",
23120 "vring-align": 4096,
23121 "vring-desc": 5217370112,
23122 "signalled-used-valid": false,
23123 "vring-num-default": 128,
23124 "vring-avail": 5217372160,
23125 "queue-index": 1,
23126 "last-avail-idx": 0,
23127 "vring-used": 5217372480,
23128 "used-idx": 0,
23129 "vring-num": 128
23130 }
23131 }
23132
23133 2. Get VirtQueueStatus for virtio-serial (no vhost)
23134
23135 -> { "execute": "x-query-virtio-queue-status",
23136 "arguments": { "path": "/machine/peripheral-anon/device[0]/virtio-backend",
23137 "queue": 20 }
23138 }
23139 <- { "return": {
23140 "signalled-used": 0,
23141 "inuse": 0,
23142 "name": "virtio-serial",
23143 "vring-align": 4096,
23144 "vring-desc": 5182074880,
23145 "signalled-used-valid": false,
23146 "vring-num-default": 128,
23147 "vring-avail": 5182076928,
23148 "queue-index": 20,
23149 "last-avail-idx": 0,
23150 "vring-used": 5182077248,
23151 "used-idx": 0,
23152 "shadow-avail-idx": 0,
23153 "vring-num": 128
23154 }
23155 }
23156
23157 VirtVhostQueueStatus (Object)
23158 Information of a vhost device's vhost_virtqueue, including most members
23159 of the vhost_dev vhost_virtqueue data structure.
23160
23161 Members
23162 name: string
23163 Name of the VirtIODevice that uses this vhost_virtqueue
23164
23165 kick: int
23166 vhost_virtqueue kick
23167
23168 call: int
23169 vhost_virtqueue call
23170
23171 desc: int
23172 vhost_virtqueue desc
23173
23174 avail: int
23175 vhost_virtqueue avail
23176
23177 used: int
23178 vhost_virtqueue used
23179
23180 num: int
23181 vhost_virtqueue num
23182
23183 desc-phys: int
23184 vhost_virtqueue desc_phys (descriptor area phys. addr.)
23185
23186 desc-size: int
23187 vhost_virtqueue desc_size
23188
23189 avail-phys: int
23190 vhost_virtqueue avail_phys (driver area phys. addr.)
23191
23192 avail-size: int
23193 vhost_virtqueue avail_size
23194
23195 used-phys: int
23196 vhost_virtqueue used_phys (device area phys. addr.)
23197
23198 used-size: int
23199 vhost_virtqueue used_size
23200
23201 Since
23202 7.2
23203
23204 x-query-virtio-vhost-queue-status (Command)
23205 Return information of a given vhost device's vhost_virtqueue
23206
23207 Arguments
23208 path: string
23209 VirtIODevice canonical QOM path
23210
23211 queue: int
23212 vhost_virtqueue index to examine
23213
23214 Features
23215 unstable
23216 This command is meant for debugging.
23217
23218 Returns
23219 VirtVhostQueueStatus of the vhost_virtqueue
23220
23221 Since
23222 7.2
23223
23224 Examples
23225 1. Get vhost_virtqueue status for vhost-crypto
23226
23227 -> { "execute": "x-query-virtio-vhost-queue-status",
23228 "arguments": { "path": "/machine/peripheral/crypto0/virtio-backend",
23229 "queue": 0 }
23230 }
23231 <- { "return": {
23232 "avail-phys": 5216124928,
23233 "name": "virtio-crypto",
23234 "used-phys": 5216127040,
23235 "avail-size": 2054,
23236 "desc-size": 16384,
23237 "used-size": 8198,
23238 "desc": 140141447430144,
23239 "num": 1024,
23240 "call": 0,
23241 "avail": 140141447446528,
23242 "desc-phys": 5216108544,
23243 "used": 140141447448640,
23244 "kick": 0
23245 }
23246 }
23247
23248 2. Get vhost_virtqueue status for vhost-vsock
23249
23250 -> { "execute": "x-query-virtio-vhost-queue-status",
23251 "arguments": { "path": "/machine/peripheral/vsock0/virtio-backend",
23252 "queue": 0 }
23253 }
23254 <- { "return": {
23255 "avail-phys": 5182261248,
23256 "name": "vhost-vsock",
23257 "used-phys": 5182261568,
23258 "avail-size": 262,
23259 "desc-size": 2048,
23260 "used-size": 1030,
23261 "desc": 140141413580800,
23262 "num": 128,
23263 "call": 0,
23264 "avail": 140141413582848,
23265 "desc-phys": 5182259200,
23266 "used": 140141413583168,
23267 "kick": 0
23268 }
23269 }
23270
23271 VirtioRingDesc (Object)
23272 Information regarding the vring descriptor area
23273
23274 Members
23275 addr: int
23276 Guest physical address of the descriptor area
23277
23278 len: int
23279 Length of the descriptor area
23280
23281 flags: array of string
23282 List of descriptor flags
23283
23284 Since
23285 7.2
23286
23287 VirtioRingAvail (Object)
23288 Information regarding the avail vring (a.k.a. driver area)
23289
23290 Members
23291 flags: int
23292 VRingAvail flags
23293
23294 idx: int
23295 VRingAvail index
23296
23297 ring: int
23298 VRingAvail ring[] entry at provided index
23299
23300 Since
23301 7.2
23302
23303 VirtioRingUsed (Object)
23304 Information regarding the used vring (a.k.a. device area)
23305
23306 Members
23307 flags: int
23308 VRingUsed flags
23309
23310 idx: int
23311 VRingUsed index
23312
23313 Since
23314 7.2
23315
23316 VirtioQueueElement (Object)
23317 Information regarding a VirtQueue's VirtQueueElement including descrip‐
23318 tor, driver, and device areas
23319
23320 Members
23321 name: string
23322 Name of the VirtIODevice that uses this VirtQueue
23323
23324 index: int
23325 Index of the element in the queue
23326
23327 descs: array of VirtioRingDesc
23328 List of descriptors (VirtioRingDesc)
23329
23330 avail: VirtioRingAvail
23331 VRingAvail info
23332
23333 used: VirtioRingUsed
23334 VRingUsed info
23335
23336 Since
23337 7.2
23338
23339 x-query-virtio-queue-element (Command)
23340 Return the information about a VirtQueue's VirtQueueElement
23341
23342 Arguments
23343 path: string
23344 VirtIODevice canonical QOM path
23345
23346 queue: int
23347 VirtQueue index to examine
23348
23349 index: int (optional)
23350 Index of the element in the queue (default: head of the queue)
23351
23352 Features
23353 unstable
23354 This command is meant for debugging.
23355
23356 Returns
23357 VirtioQueueElement information
23358
23359 Since
23360 7.2
23361
23362 Examples
23363 1. Introspect on virtio-net's VirtQueue 0 at index 5
23364
23365 -> { "execute": "x-query-virtio-queue-element",
23366 "arguments": { "path": "/machine/peripheral-anon/device[1]/virtio-backend",
23367 "queue": 0,
23368 "index": 5 }
23369 }
23370 <- { "return": {
23371 "index": 5,
23372 "name": "virtio-net",
23373 "descs": [
23374 {
23375 "flags": ["write"],
23376 "len": 1536,
23377 "addr": 5257305600
23378 }
23379 ],
23380 "avail": {
23381 "idx": 256,
23382 "flags": 0,
23383 "ring": 5
23384 },
23385 "used": {
23386 "idx": 13,
23387 "flags": 0
23388 }
23389 }
23390 }
23391
23392 2. Introspect on virtio-crypto's VirtQueue 1 at head
23393
23394 -> { "execute": "x-query-virtio-queue-element",
23395 "arguments": { "path": "/machine/peripheral/crypto0/virtio-backend",
23396 "queue": 1 }
23397 }
23398 <- { "return": {
23399 "index": 0,
23400 "name": "virtio-crypto",
23401 "descs": [
23402 {
23403 "flags": [],
23404 "len": 0,
23405 "addr": 8080268923184214134
23406 }
23407 ],
23408 "avail": {
23409 "idx": 280,
23410 "flags": 0,
23411 "ring": 0
23412 },
23413 "used": {
23414 "idx": 280,
23415 "flags": 0
23416 }
23417 }
23418 }
23419
23420 3. Introspect on virtio-scsi's VirtQueue 2 at head
23421
23422 -> { "execute": "x-query-virtio-queue-element",
23423 "arguments": { "path": "/machine/peripheral-anon/device[2]/virtio-backend",
23424 "queue": 2 }
23425 }
23426 <- { "return": {
23427 "index": 19,
23428 "name": "virtio-scsi",
23429 "descs": [
23430 {
23431 "flags": ["used", "indirect", "write"],
23432 "len": 4099327944,
23433 "addr": 12055409292258155293
23434 }
23435 ],
23436 "avail": {
23437 "idx": 1147,
23438 "flags": 0,
23439 "ring": 19
23440 },
23441 "used": {
23442 "idx": 280,
23443 "flags": 0
23444 }
23445 }
23446 }
23447
23449 2023, The QEMU Project Developers
23450
23451
23452
23453
234547.2.6 Sep 26, 2023 QEMU-QMP-REF(7)