From: Markus Armbruster <armbru@redhat.com>
To: Thomas Huth <thuth@redhat.com>
Cc: "Markus Armbruster" <armbru@redhat.com>,
"Alex Bennée" <alex.bennee@linaro.org>,
qemu-devel@nongnu.org, "Warner Losh" <imp@bsdimp.com>,
"Ryo ONODERA" <ryoon@netbsd.org>, "Kevin Wolf" <kwolf@redhat.com>,
"Beraldo Leal" <bleal@redhat.com>,
"Wainer dos Santos Moschetta" <wainersm@redhat.com>,
"Hanna Reitz" <hreitz@redhat.com>,
qemu-block@nongnu.org,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Kyle Evans" <kevans@freebsd.org>,
"Reinoud Zandijk" <reinoud@netbsd.org>,
"Michael Tokarev" <mjt@tls.msk.ru>
Subject: Re: [PATCH 04/11] qemu-options: finesse the recommendations around -blockdev
Date: Mon, 03 Apr 2023 20:17:37 +0200 [thread overview]
Message-ID: <875yac4ypq.fsf@pond.sub.org> (raw)
In-Reply-To: <21d10332-f109-15aa-b282-bc31c07b364c@redhat.com> (Thomas Huth's message of "Mon, 3 Apr 2023 18:31:04 +0200")
Thomas Huth <thuth@redhat.com> writes:
> On 03/04/2023 16.55, Markus Armbruster wrote:
>> Alex Bennée <alex.bennee@linaro.org> writes:
>>
>>> Markus Armbruster <armbru@redhat.com> writes:
>>>
>>>> Alex Bennée <alex.bennee@linaro.org> writes:
> ...
>>> I was under the impression things like -hda wouldn't work say on an Arm
>>> machine because you don't know what sort of interface you might be
>>> using and -hda implies IDE. Where is this macro substitution done?
>>
>> qemu_init() calls drive_add() for all these options.
>>
>> drive_add(TYPE, INDEX, FILE, OPTSTR) creates a QemuOpts in group
>> "drive". It sets "if" to if_name[TYPE] unless TYPE is IF_DEFAULT,
>> "index" to INDEX unless it's negative, and "file" to FILE unless it's
>> null. Then it parses OPTSTR on top.
>>
>> For -hdX, the call looks like
>>
>> drive_add(IF_DEFAULT, popt->index - QEMU_OPTION_hda, optarg,
>> HD_OPTS);
>>
>> We pass IF_DEFAULT, so "if" remains unset. "index" is set to 0 for
>> -hda, 1, for -hdb and so forth. "file" is set to the option argument.
>> Since HD_OPTS is "media=disk", we set "media" to "disk".
>>
>> The QemuOpts in config group "drive" get passed to drive_new() via
>> drive_init_func(). Unset "if" defaults to the current machine's class's
>> block_default_type.
>>
>> If a machine doesn't set this member explicitly, it remains zero, which
>> is IF_NONE. Documented in blockdev.h:
>>
>> typedef enum {
>> IF_DEFAULT = -1, /* for use with drive_add() only */
>> /*
>> * IF_NONE must be zero, because we want MachineClass member
>> ---> * block_default_type to default-initialize to IF_NONE
>> */
>> IF_NONE = 0,
>> IF_IDE, IF_SCSI, IF_FLOPPY, IF_PFLASH, IF_MTD, IF_SD, IF_VIRTIO, IF_XEN,
>> IF_COUNT
>> } BlockInterfaceType;
>>
>> Questions?
>
> How's the average user supposed to know that? Our qemu-options.hx just says:
> "-hda/-hdb file use 'file' as IDE hard disk 0/1 image"...
Ancient doc bug. Should have been updated in commit 2d0d2837dcf
(Support default block interfaces per QEMUMachine) back in 2012.
next prev parent reply other threads:[~2023-04-03 18:18 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-30 10:11 [PATCH 00/11] more misc fixes for 8.0 (tests, gdbstub, meta, docs) Alex Bennée
2023-03-30 10:11 ` [PATCH 01/11] scripts/coverage: initial coverage comparison script Alex Bennée
2023-03-30 12:37 ` Thomas Huth
2023-03-30 10:11 ` [PATCH 02/11] gdbstub: Only build libgdb_user.fa / libgdb_softmmu.fa if necessary Alex Bennée
2023-03-30 10:11 ` [PATCH 03/11] MAINTAINERS: add a section for policy documents Alex Bennée
2023-03-30 11:24 ` Thomas Huth
2023-03-30 15:31 ` Markus Armbruster
2023-03-30 15:34 ` Warner Losh
2023-03-30 16:29 ` Kashyap Chamarthy
2023-04-03 7:56 ` Philippe Mathieu-Daudé
2023-03-30 10:11 ` [PATCH 04/11] qemu-options: finesse the recommendations around -blockdev Alex Bennée
2023-03-30 11:24 ` Thomas Huth
2023-04-01 8:00 ` Michael Tokarev
2023-04-03 6:22 ` Markus Armbruster
2023-04-03 13:16 ` Alex Bennée
2023-04-03 14:55 ` Markus Armbruster
2023-04-03 16:31 ` Thomas Huth
2023-04-03 18:17 ` Markus Armbruster [this message]
2023-03-30 10:11 ` [PATCH 05/11] metadata: add .git-blame-ignore-revs Alex Bennée
2023-03-30 11:25 ` Thomas Huth
2023-03-30 10:11 ` [PATCH 06/11] Use hexagon toolchain version 16.0.0 Alex Bennée
2023-03-30 10:11 ` [PATCH 07/11] tests/qemu-iotests: explicitly invoke 'check' via 'python' Alex Bennée
2023-03-30 11:27 ` Thomas Huth
2023-03-30 10:11 ` [PATCH 08/11] tests/vm: use the default system python for NetBSD Alex Bennée
2023-03-30 11:27 ` Thomas Huth
2023-03-30 10:11 ` [PATCH 09/11] tests/requirements.txt: bump up avocado-framework version to 101.0 Alex Bennée
2023-03-30 11:43 ` Thomas Huth
2023-03-30 12:12 ` Alex Bennée
2023-03-30 12:21 ` Thomas Huth
2023-03-31 7:50 ` Thomas Huth
2023-03-30 10:11 ` [PATCH 10/11] gitlab: fix typo Alex Bennée
2023-03-30 10:39 ` Philippe Mathieu-Daudé
2023-03-30 11:35 ` Thomas Huth
2023-03-30 10:11 ` [PATCH 11/11] tests/gitlab: use kaniko to build images Alex Bennée
2023-03-30 10:17 ` Daniel P. Berrangé
2023-03-30 10:49 ` Daniel P. Berrangé
2023-03-30 18:14 ` Alex Bennée
2023-03-30 12:35 ` Thomas Huth
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=875yac4ypq.fsf@pond.sub.org \
--to=armbru@redhat.com \
--cc=alex.bennee@linaro.org \
--cc=bleal@redhat.com \
--cc=hreitz@redhat.com \
--cc=imp@bsdimp.com \
--cc=kevans@freebsd.org \
--cc=kwolf@redhat.com \
--cc=mjt@tls.msk.ru \
--cc=philmd@linaro.org \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=reinoud@netbsd.org \
--cc=ryoon@netbsd.org \
--cc=thuth@redhat.com \
--cc=wainersm@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.