All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: Fam Zheng <famz@redhat.com>
Cc: kwolf@redhat.com, qemu-block@nongnu.org,
	"Mark Cave-Ayland" <mark.cave-ayland@ilande.co.uk>,
	qemu-devel@nongnu.org, mreitz@redhat.com,
	"Hervé Poussineau" <hpoussin@reactos.org>,
	"John Snow" <jsnow@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v2 8/8] hw: Drop superfluous special checks for orphaned -drive
Date: Fri, 03 Feb 2017 16:38:25 +0100	[thread overview]
Message-ID: <87zii3e13i.fsf@dusky.pond.sub.org> (raw)
In-Reply-To: <20170203140706.GD28271@lemon> (Fam Zheng's message of "Fri, 3 Feb 2017 22:07:06 +0800")

Fam Zheng <famz@redhat.com> writes:

> On Fri, 02/03 14:35, Markus Armbruster wrote:
>> > I guess the painpoint is "okay, what the heck does the machine support then?" -
>> 
>> At the place where we can reliably detect orphaned drives regardless of
>> what the machine initialization code does, we have no idea.
>> 
>> > that "3 > 2" is the good part of the old message.
>> 
>> At the places that actually adopt drives, we know.  But there are many
>> of them.  Just three check for orphans.  One of them gets it right
>> (ide/core.c), one of them gets it wrong (mips_jazz.c), and one of them
>> sets a problematic example (sun4m.c): if copied to a machine that lets
>> users configure additional SCSI HBAs, it would break if=scsi for those.
>> Dampens my enthusiasm for improving the error message by adding similar
>> checks to all the places that adopt drives.
>> 
>> We could make machines declare what they support.  Better, I think.  So
>> if you have a burning desire to leave your mark in git-blame for every
>> machine...
>
> Could you please remind me the situation about if=scsi across all machines? If
> it is simply legacy and it's recommended to use "-drive if=none" and "-device
> ...", I think saying this in the error message is enough; or if "if=scsi" is a
> valid way for some machines, then maybe we can declare support limits found with
> your script?

Short story: once my followup series "[PATCH 0/3] hw: Deprecate unwanted
use -drive if=scsi" is in, if=scsi is deprecated except for machine
types magnum pica61 LX SPARCClassic SPARCbook SS-10 SS-20 SS-4 SS-5
SS-600MP Voyager realview-eb realview-eb-mpcore versatileab versatilepb
pseries-*.  Documenting what they support would be feasible.

Long story: it's... complicated.

Ideally, -drive if=T,... (T!=none) would be sugar for a -drive / -device
combo.  It actually is for if=virtio: drive_new() desugars it.

All the others are implemented by machine-specific ad hoc code,
i.e. machine initialization creates devices however it sees fit.

For modern devices, what's done is often pretty much equivalent to a
-device.  For instance, a PC machine type's action for
if=ide,media=disk,bus=B,unit=U is pretty much equivalent to -device
ide-hd,bus=ide.B,unit=U.  See also docs/qdev-device-use.txt.

Desugaring details depend on the machine, and are code, not data.  Data
would be easier to find and document.

For non-qdevified devices, we're even farther from a clean desugaring,
simply because these are not available with -device, but can only be
created by code.  For instance, some machine types implement if=sd with
the non-qdevified hw/sd/sd.c; grep for sd_init().

So, we're not yet ready for deprecating if!=none.

But you asked for if=scsi specifically.

Only a few machines have a SCSI HBA onboard, and therefore adopt if=scsi
drives: magnum pica61 LX SPARCClassic SPARCbook SS-10 SS-20 SS-4 SS-5
SS-600MP Voyager.  We're not deprecating this usage.

A few more create SCSI HBAs on demand: realview-eb realview-eb-mpcore
versatileab versatilepb pseries-* pc*.  My followup series deprecates it
for pc* only.

Finally, there's some special SCSI magic: most SCSI HBAs adopt if=scsi
drives independend of machine initialization.  My followup series
deprecates that.

      reply	other threads:[~2017-02-03 15:38 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-26 15:09 [Qemu-devel] [PATCH v2 0/8] More sensible default for -drive interface type Markus Armbruster
2017-01-26 15:09 ` [Qemu-devel] [PATCH v2 1/8] hw: Default -drive to if=ide explicitly where it works Markus Armbruster
2017-01-26 20:02   ` Thomas Huth
2017-01-27  6:55     ` Markus Armbruster
2017-01-27 10:21       ` Yongbok Kim
2017-01-27 10:31         ` [Qemu-devel] MIPS machines (was: [PATCH v2 1/8] hw: Default -drive to if=ide explicitly where it works) Thomas Huth
2017-01-27 11:01           ` [Qemu-devel] MIPS machines Yongbok Kim
2017-01-26 15:09 ` [Qemu-arm] [PATCH v2 2/8] hw/arm/cubieboard hw/arm/xlnx-ep108: Fix units_per_default_bus Markus Armbruster
2017-01-26 15:09   ` [Qemu-devel] " Markus Armbruster
2017-01-27 18:33   ` [Qemu-arm] " Alistair Francis
2017-01-27 18:33     ` Alistair Francis
2017-01-26 15:09 ` [Qemu-arm] [PATCH v2 3/8] hw: Default -drive to if=none instead of ide when ide cannot work Markus Armbruster
2017-01-26 15:09   ` Markus Armbruster
2017-01-26 15:09   ` [Qemu-devel] " Markus Armbruster
2017-01-26 15:22   ` [Qemu-arm] " Laurent Vivier
2017-01-26 15:22     ` Laurent Vivier
2017-01-26 15:22     ` [Qemu-devel] " Laurent Vivier
2017-01-26 16:00   ` [Qemu-arm] " Thomas Huth
2017-01-26 16:00     ` Thomas Huth
2017-01-26 16:00     ` Thomas Huth
2017-01-26 15:09 ` [Qemu-arm] [PATCH v2 4/8] hw: Default -drive to if=none instead of scsi when scsi " Markus Armbruster
2017-01-26 15:09   ` [Qemu-devel] " Markus Armbruster
2017-01-26 17:59   ` [Qemu-arm] " Thomas Huth
2017-01-26 17:59     ` Thomas Huth
2017-01-27 18:31     ` [Qemu-arm] " Alistair Francis
2017-01-27 18:31       ` Alistair Francis
2017-01-26 15:09 ` [Qemu-arm] [PATCH v2 5/8] hw/arm/highbank: Default -drive to if=ide instead of if=scsi Markus Armbruster
2017-01-26 15:09   ` [Qemu-devel] " Markus Armbruster
2017-01-26 18:10   ` [Qemu-arm] " Thomas Huth
2017-01-26 18:10     ` Thomas Huth
2017-01-26 15:09 ` [Qemu-devel] [PATCH v2 6/8] blockdev: Improve message for orphaned -drive Markus Armbruster
2017-01-26 15:09 ` [Qemu-devel] [PATCH v2 7/8] blockdev: Make orphaned -drive fatal Markus Armbruster
2017-01-31 12:37   ` [Qemu-devel] [Qemu-block] " John Snow
2017-01-31 14:37     ` Markus Armbruster
2017-01-31 15:37       ` John Snow
2017-02-01  9:00         ` Markus Armbruster
2017-01-26 15:09 ` [Qemu-devel] [PATCH v2 8/8] hw: Drop superfluous special checks for orphaned -drive Markus Armbruster
2017-01-27 11:00   ` John Snow
2017-01-27 11:51     ` Markus Armbruster
2017-01-27 14:15       ` John Snow
2017-01-27 16:04         ` Markus Armbruster
2017-01-28  8:53           ` John Snow
2017-01-30  8:10             ` Markus Armbruster
2017-01-30  8:28               ` John Snow
2017-02-03 11:04               ` Fam Zheng
2017-02-03 13:35                 ` Markus Armbruster
2017-02-03 14:07                   ` Fam Zheng
2017-02-03 15:38                     ` Markus Armbruster [this message]

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=87zii3e13i.fsf@dusky.pond.sub.org \
    --to=armbru@redhat.com \
    --cc=famz@redhat.com \
    --cc=hpoussin@reactos.org \
    --cc=jsnow@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=mark.cave-ayland@ilande.co.uk \
    --cc=mreitz@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    /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.