qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] What should a virtual board emulate? (was: [PATCH] mips-ful


From: Markus Armbruster
Subject: [Qemu-devel] What should a virtual board emulate? (was: [PATCH] mips-fulong2e: obey -vga none)
Date: Wed, 20 Mar 2019 07:11:46 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux)

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.

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.

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.

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?

[...]



reply via email to

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