qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [libvirt] [PATCH RFC] blockdev: copy legacy and common


From: Amos Kong
Subject: Re: [Qemu-devel] [libvirt] [PATCH RFC] blockdev: copy legacy and common opts to qemu_drive_opts
Date: Wed, 6 Nov 2013 00:34:17 +0800
User-agent: Mutt/1.5.21 (2010-09-15)

Hi Kevin,

On Mon, Nov 04, 2013 at 12:27:10PM +0100, Kevin Wolf wrote:
> Am 04.11.2013 um 08:01 hat Amos Kong geschrieben:
> > 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[].
> > 
> > We query commandline options by checking information in
> > vm_config_groups[], so we can only get a NULL parameter list now.
> > 
> > This patch copied desc items of qemu_legacy_drive_opts and
> > qemu_common_drive_opts to qemu_drive_opts.
> > 
> > Signed-off-by: Amos Kong <address@hidden>
> 
> This breaks driver-specific options because they aren't (and cannot be)
> listed in the QemuOptsList.
> 
> For example:
> 
> $ x86_64-softmmu/qemu-system-x86_64 -drive file.driver=nbd,file.host=localhost
> qemu-system-x86_64: -drive file.driver=nbd,file.host=localhost: Invalid 
> parameter 'file.driver'
> 
> query-command-line-options isn't an appropriate API to query the -drive
> capabilities in the blockdev-add world. You really want to have
> introspection for that.
> 
> For compatibility, we might want to at least expose part of the provided
> options there. In this case you should modify the monitor command to
> access the local QemuOptsLists of drive_init() and blockdev_init() for
> option="drive".

It's to access the local QemuOptsLists of drive_init() and
blockdev_init() for option="drive".

I saw there are two repeat items ("copy-on-read", "read-only")
I will merge the two desc lists together, remove the repeat items,
and output once.

Attached my draft patch, I can use it to compile qemu binary, but
touched following error, any note?

------------------------
address@hidden qemu]$ make
  CC    util/qemu-config.o
  AR    libqemuutil.a
  LINK  qemu-ga
  LINK  qemu-nbd
  LINK  qemu-img
  LINK  qemu-io
libqemuutil.a(qemu-config.o): In function `qmp_query_command_line_options':
/home/devel/qemu/util/qemu-config.c:141: undefined reference to 
`qemu_legacy_drive_opts'
/home/devel/qemu/util/qemu-config.c:142: undefined reference to 
`qemu_common_drive_opts'
/home/devel/qemu/util/qemu-config.c:144: undefined reference to 
`qemu_drive_opts'
collect2: error: ld returned 1 exit status
make: *** [qemu-nbd] Error 1
make: *** Waiting for unfinished jobs....
libqemuutil.a(qemu-config.o): In function `qmp_query_command_line_options':
/home/devel/qemu/util/qemu-config.c:141: undefined reference to 
`qemu_legacy_drive_opts'
/home/devel/qemu/util/qemu-config.c:142: undefined reference to 
`qemu_common_drive_opts'
/home/devel/qemu/util/qemu-config.c:144: undefined reference to 
`qemu_drive_opts'
collect2: error: ld returned 1 exit status
make: *** [qemu-img] Error 1
libqemuutil.a(qemu-config.o): In function `qmp_query_command_line_options':
/home/devel/qemu/util/qemu-config.c:141: undefined reference to 
`qemu_legacy_drive_opts'
/home/devel/qemu/util/qemu-config.c:142: undefined reference to 
`qemu_common_drive_opts'
/home/devel/qemu/util/qemu-config.c:144: undefined reference to 
`qemu_drive_opts'
collect2: error: ld returned 1 exit status
make: *** [qemu-io] Error 1
  LINK  x86_64-softmmu/qemu-system-x86_64


-- 
                        Amos.

Attachment: 0001-qmp-access-the-local-QemuOptsLists-for-drive-option.patch
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]