Thread (5 messages) 5 messages, 3 authors, 2020-03-04

Re: [PATCH] drm/bochs: Remove vga write

From: Alistair Francis <hidden>
Date: 2020-03-04 01:26:22
Also in: dri-devel, lkml

On Mon, Mar 2, 2020 at 10:24 PM Gerd Hoffmann [off-list ref] wrote:
On Mon, Mar 02, 2020 at 02:14:02PM -0800, Alistair Francis wrote:
quoted
On Fri, Feb 28, 2020 at 1:57 AM Gerd Hoffmann [off-list ref] wrote:
quoted
On Thu, Feb 27, 2020 at 01:04:54PM -0800, Alistair Francis wrote:
quoted
The QEMU model for the Bochs display has no VGA memory section at offset
0x400 [1]. By writing to this register Linux can create a write to
unassigned memory which depending on machine and architecture can result
in a store fault.

I don't see any reference to this address at OSDev [2] or in the Bochs
source code.

Removing this write still allows graphics to work inside QEMU with
the bochs-display.
It's not that simple.  The driver also handles the qemu stdvga (-device
VGA, -device secondary-vga) which *does* need the vga port write.
There is no way for the guest to figure whenever the device is
secondary-vga or bochs-display.

So how about fixing things on the host side?  Does qemu patch below
help?
That patch looks like it will fix the problem, but it doesn't seem
like the correct fix. I would rather avoid adding a large chunk of
dummy I/O to handle the two devices.
It's just a single handler for the parent mmio region, so we have a
defined default action instead of undefined behavior.

Patch just posted to qemu-devel, lets see what others think ...
Thanks, let's wait and see what happens.
quoted
quoted
Maybe another possible approach is to enable/disable vga access per
arch.  On x86 this doesn't cause any problems.  I guess you are on
risc-v?
I would prefer this option. I do see this on RISC-V, but I suspect the
issue will appear on other architectures (although how they handle I/O
failures in QEMU is a different story).

Can I just do the VGA write if x86?
I know ppc needs it too.  Not sure about other architectures.  I'd
suggest to do it the other way around: blacklist known-problematic
archs.
Argh, that is a little uglier. Let's circle back after receiving
feedback on the QEMU patch.

Alistair
cheers,
  Gerd
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help