[libvirt] QEMU 1.6 and drive discard parameter
Amos Kong
akong at redhat.com
Thu Oct 31 11:17:34 UTC 2013
CC Kevin, Paolo
On Thu, Oct 31, 2013 at 04:35:43PM +0800, Amos Kong wrote:
> On Thu, Oct 31, 2013 at 04:07:15PM +0800, Osier Yang wrote:
> > CC to Amos.
> >
> > On 30/10/13 16:19, whitearchey wrote:
> > >
> > >In QEMU 1.6 parameters of 'drive' option were removed:
> > >
> > >QemuOptsList qemu_drive_opts = {
> > > .name = "drive",
> > > .head = QTAILQ_HEAD_INITIALIZER(qemu_drive_opts.head),
> > > .desc = {
> > > /*
> > > * no elements => accept any params
> > > * validation will happen later
> > > */
> > > { /* end of list */ }
> > > },
> > >};
> > >
> > >But libvirt still checks for QEMU_CAPS_DRIVE_DISCARD using QMP
> > >query-command-line-options:
> > >
> > >static struct virQEMUCapsCommandLineProps virQEMUCapsCommandLine[] = {
> > > { "machine", "mem-merge", QEMU_CAPS_MEM_MERGE },
> > > { "drive", "discard", QEMU_CAPS_DRIVE_DISCARD },
> > > { "realtime", "mlock", QEMU_CAPS_MLOCK },
> > >};
> > >...
> > >qemuMonitorGetCommandLineOptionParameters(mon,
> > >virQEMUCapsCommandLine[i].option, &values)
> > >
> > >So, when I try to use discard option in domain xml I get this error:
> > >
> > >error : qemuBuildDriveStr:3986 : unsupported configuration:
> > >discard is not supported by this QEMU binary
> > >
> >
> > It's a qemu problem, the command "query-command-line-options" should
> > keep working
> > after the structures were changed for any option, in this case, all
> > the option descs were
> > moved to "qemu_common_drive_opts" instead.
>
> { 'execute': 'query-command-line-options', 'arguments': { 'option': 'drive' } }
>
> {
> "return": [
> {
> "parameters": [
> ],
> "option": "drive"
> }
> ]
> }
>
> It returns a NULL parameters list, that's true, some error handling
> should be done by libvirt.
Currently we have three QemuOptsList (qemu_common_drive_opts,
qemu_legacy_drive_opts, and qemu_drive_opts)
only qemu_drive_opts is added to vm_config_groups[]
| commit 492fdc6fbe17b2d45878e813e980f782ac260c30
| Author: Kevin Wolf <kwolf at redhat.com>
| Date: Wed Jun 19 13:44:17 2013 +0200
|
| Revert "block: Disable driver-specific options for 1.5"
This patch removed the items in qemu_drive_opts .desc
We query commandline options by checking information in vm_config_groups[],
so we can only get a NULL parameter list now.
Another issue is we also can't query legacy options of -drive.
--
Can we fix this problem by copy desc items of qemu_legacy_drive_opts and
qemu_common_drive_opts to qemu_drive_opts?
--
Amos.
More information about the libvir-list
mailing list