[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] What should a virtual board emulate? (was: [PATCH] mips
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [Qemu-devel] What should a virtual board emulate? (was: [PATCH] mips-fulong2e: obey -vga none) |
Date: |
Wed, 20 Mar 2019 11:03:54 +0100 |
Le mer. 20 mars 2019 07:13, Markus Armbruster <address@hidden> a écrit :
> BALATON Zoltan <address@hidden> writes:
>
> > On Tue, 19 Mar 2019, Paolo Bonzini wrote:
> >> Do not create an ATI VGA if "-vga none" was passed on the command line.
> >>
> >> Cc: BALATON Zoltan <address@hidden>
> >
> > Thanks, I did not know about this variable. Although the real hardware
> > has the GPU soldered on the mainboard it makes sense to allow it to be
> > disabled in QEMU especially at this stage when Linux kernel has some
> > problem with it so this is a good idea.
>
> I'm not sure.
>
> For better or worse, we have a whole bunch of global variables
> (manipulated with command line options) our board code may elect to
> honor.
>
> When a command line option ends up in a global variable the board
> doesn't honor, we sometimes warn the user his option is being ignored,
> and we sometimes ignore it silently. But that's not what I'd like to
> discuss today.
>
> My question today is what a virtual board should emulate, and what
> -nodefaults should mean.
>
> The most straightforward case is emulating a single physical board, so
> that we emulate exactly what's on the board, no more, no less. Anything
> that can be plugged into the board we model as pluggable device you add
> with -device.
>
Yes.
> We can still have convenience options for adding such pluggable devices
> in a simpler way.
>
> We can even plug some by default. -nodefaults suppresses that, i.e. it
> gives you exactly the physical board with nothing plugged in.
Ideally.
> Things get a bit more interesting when we're emulating a family of
> physical boards. Say there's a bare-bones version, and another with
> more goodies soldered on. While we can model the two as distinct
> machine types, modelling as a single machine type with options (machine
> properties or the global variables) may be more convenient. That's
> okay.
>
> Note that -nodefault still gives you a faithful emulation of a physical
> board: the bare-bones one.
>
> Things get more interesting still when we're emulating a somewhat fuzzy
> idea of a zoo of physical boards, like x86 PC. I think the difference
> to the previous case is mostly ambiguity that comes out of the
> fuzziness.
>
> Here, -nodefault gives you an emulation of a physical board that could
> plausibly exist.
>
> Now let's circle back to this patch. mips-fulong2e emulates a physical
> board that has ATI VGA soldered on. After this patch, -nodefaults gives
> you an emulation of something that doesn't exist. Right now, that
> virtual frankenboard happens to work better than the more faithful
> emulation that has the VGA, but that's just bugs. Working around bugs
> is certainly relevant, just not for guiding us on basic design issues.
>
-display/-vga options suffers same clarity problems than -net. Is it a card
device or a cable linking to a network? Here is it a card device or a cable
connecting a monitor display?
When cards plugged on bus via extractible slots, they are optional. If no
slot (soldered) or no bus (mmio) they aren't optional. Display monitors are
optional.
> Mind, I'm not demanding mips-fulong2e should continue to ignore -vga;
> that's for its maintainer to decide. I don't demand, I ask: what should
> a virtual board emulate? What should -nodefaults do?
>
IMHO -nodefaults contains soldered/mmio chipsets.
Whether you plug a display or not is a different story.
> [...]
>
>