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(a)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.