[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 0/5] Add "info capabilities" monitor command
From: |
Mark McLoughlin |
Subject: |
[Qemu-devel] [PATCH 0/5] Add "info capabilities" monitor command |
Date: |
Thu, 13 Nov 2008 16:45:58 +0000 |
Hi,
Management tools need to be able to handle different versions of qemu
equally well. Such a tool might need to know whether a given version
supports a recently added command line option, whether it was built
with kqemu support or who many vcpus is allowed.
One example of this is libvirt which does "qemu -help" and looks at
the version string and which command line options are included in
the output. That's a hack that works pretty well, but clearly
"qemu -help" shouldn't be considered a stable interface.
This came up recently in the context of GSO support the KVM virtio
network device. Essentially, libvirt needs to know whether qemu will
be able to handle a tapfd with the IFF_VNET_HDR flag set. Adding
something about IFF_VNET_HDR to the -help output was rejected as
taking an ugly hack way too far :-)
The proposed solution is to add a new monitor command which will
list exactly what this qemu binary is capable of. Rather than include
every possible capability, I've limited it to:
1) New features; if a version of qemu supports the capabilities
info command, you can assume that it also supports features
that were added before that.
2) Compile time configurables which affect what features can be
requested on the command line - e.g. kqemu support
3) Magic numbers; a managment tool might know that qemu only
supports 2 IDE devices - and that may never change - but
it's much nicer if the tool can be coded generically rather
than hardcoding a magic number.
The patch implementing this isn't perfect by any means, but since
this could be implemented in so many different ways I thought I'd
post it and get people's feedback.
Cheers,
Mark.
Example output:
[qemu]
accel=kqemu,kvm
arch=x86_64
cpu=qemu64,core2duo,qemu32,coreduo,486,pentium,pentium2,pentium3,athlon,n270
machines=pc,isapc
[machine]
name=pc
max_cpus=255
nic_models=ne2k_pci,i82551,i82557b,i82559er,rtl8139,e1000,pcnet
[machine]
name=isapc
max_cpus=1
nic_models=ne2k_isa
[devices]
bluetooth=hci_null,hci_vlan,vhci_vlan,keyboard
char=null,vc,tcp,telnet,mon,unix,file,pipe,pty,stdio,dev_parport,dev_tty
drive_cache=off,none,writethrough,writeback
drive_if=ide,scsi,floppy,pflash,mtd,sd
graphics=nographics,graphics,curses,vnc,vnc_tls
network=tap,socket,user,none
soundhw=pcspk,sb16,es1370
vga=std,cirrus,vmware
[limits]
max_boot_dev=q
max_bluetooth_devs=10
max_drives=32
max_ide_devs=2
max_net_clients=32
max_nics=8
max_option_roms=16
max_parallel_ports=3
max_scsi_devs=7
max_serial_ports=4
max_usb_devs=8
- [Qemu-devel] [PATCH 0/5] Add "info capabilities" monitor command,
Mark McLoughlin <=
- [Qemu-devel] [PATCH 1/5] Re-factor nic model listing, Mark McLoughlin, 2008/11/13
- [Qemu-devel] [PATCH 2/5] Add cpu_list() for any targets that don't already have it, Mark McLoughlin, 2008/11/13
- [Qemu-devel] [PATCH 3/5] Rename xxx_cpu_list() to cpu_xxx_list(), Mark McLoughlin, 2008/11/13
- [Qemu-devel] [PATCH 4/5] Add new cpu_names() function, Mark McLoughlin, 2008/11/13
- [Qemu-devel] [PATCH 5/5] monitor: add "info capabilities" command, Mark McLoughlin, 2008/11/13
- [Qemu-devel] Re: [PATCH 5/5] monitor: add "info capabilities" command, Anthony Liguori, 2008/11/13
- [Qemu-devel] Re: [PATCH 5/5] monitor: add "info capabilities" command, Mark McLoughlin, 2008/11/14
- Re: [Qemu-devel] [PATCH 5/5] monitor: add "info capabilities" command, Avi Kivity, 2008/11/14
- Re: [Qemu-devel] [PATCH 5/5] monitor: add "info capabilities" command, Mark McLoughlin, 2008/11/14
- Re: [Qemu-devel] [PATCH 5/5] monitor: add "info capabilities" command, Avi Kivity, 2008/11/16