[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [Qemu-devel] qemu-system-ppc video artifacts since "tcg:
From: |
Gerd Hoffmann |
Subject: |
Re: [Qemu-ppc] [Qemu-devel] qemu-system-ppc video artifacts since "tcg: drop global lock during TCG code execution" |
Date: |
Thu, 16 Mar 2017 16:34:22 +0100 |
Hi,
> >> least cg3.c is doing
> >>
> >> read dirty bitmap
> >> read VRAM
> >> clear dirty bitmap
> >>
> >> which has a race.
> It's much simpler than that, just clear the dirty bitmap bit before
> reading the memory.
Well, not *that* simple. vga checks the dirty bitmap with scanline
granularity, like that:
foreach (scanline) {
if (get_dirty(scanline))
update_scanline()
}
reset_dirty(framebuffer)
I suspect simply transforming that to
foreach (scanline) {
if (test_and_clear_dirty(scanline))
update_scanline()
}
is not going to fly due to page tracking working with page granularity.
With two subsequent scanlines within one page the second scanline will
never be updated because updating first clears the dirty bit of the
page ...
Looping twice over all scanlines, with the first loop just figuring
which scanlines are modified, then clear dirty bits, then update in a
second loop should work I think. It'll duplicate a bunch of code
though, because in reality the loop isn't just three lines because of
doublescan, interlave and other funky stuff coming from CGA
compatibility.
Given that probably pretty much every display adapter is affected I'd
tend to take Alex patch for 2.9, then sort the mess in the 2.10 devel
cycle and revert the patch when done.
cheers,
Gerd
- Re: [Qemu-ppc] qemu-system-ppc video artifacts since "tcg: drop global lock during TCG code execution", (continued)
- Re: [Qemu-ppc] qemu-system-ppc video artifacts since "tcg: drop global lock during TCG code execution", Mark Cave-Ayland, 2017/03/14
- Re: [Qemu-ppc] qemu-system-ppc video artifacts since "tcg: drop global lock during TCG code execution", Alex Bennée, 2017/03/14
- Re: [Qemu-ppc] qemu-system-ppc video artifacts since "tcg: drop global lock during TCG code execution", BALATON Zoltan, 2017/03/14
- Re: [Qemu-ppc] qemu-system-ppc video artifacts since "tcg: drop global lock during TCG code execution", luigi burdo, 2017/03/14
- Re: [Qemu-ppc] qemu-system-ppc video artifacts since "tcg: drop global lock during TCG code execution", Alex Bennée, 2017/03/15
- Re: [Qemu-ppc] [Qemu-devel] qemu-system-ppc video artifacts since "tcg: drop global lock during TCG code execution", Mark Cave-Ayland, 2017/03/15
- Re: [Qemu-ppc] [Qemu-devel] qemu-system-ppc video artifacts since "tcg: drop global lock during TCG code execution", Alex Bennée, 2017/03/15
- Re: [Qemu-ppc] [Qemu-devel] qemu-system-ppc video artifacts since "tcg: drop global lock during TCG code execution", Paolo Bonzini, 2017/03/16
- Re: [Qemu-ppc] [Qemu-devel] qemu-system-ppc video artifacts since "tcg: drop global lock during TCG code execution", Alex Bennée, 2017/03/16
- Re: [Qemu-ppc] [Qemu-devel] qemu-system-ppc video artifacts since "tcg: drop global lock during TCG code execution", Paolo Bonzini, 2017/03/16
- Re: [Qemu-ppc] [Qemu-devel] qemu-system-ppc video artifacts since "tcg: drop global lock during TCG code execution",
Gerd Hoffmann <=
- Re: [Qemu-ppc] [Qemu-devel] qemu-system-ppc video artifacts since "tcg: drop global lock during TCG code execution", Paolo Bonzini, 2017/03/16
- Re: [Qemu-ppc] [Qemu-devel] qemu-system-ppc video artifacts since "tcg: drop global lock during TCG code execution", Gerd Hoffmann, 2017/03/28
- Re: [Qemu-ppc] [Qemu-devel] qemu-system-ppc video artifacts since "tcg: drop global lock during TCG code execution", Paolo Bonzini, 2017/03/28
- Re: [Qemu-ppc] qemu-system-ppc video artifacts since "tcg: drop global lock during TCG code execution", Alex Bennée, 2017/03/15
- Re: [Qemu-ppc] qemu-system-ppc video artifacts since "tcg: drop global lock during TCG code execution", Gerd Hoffmann, 2017/03/15
- Re: [Qemu-ppc] qemu-system-ppc video artifacts since "tcg: drop global lock during TCG code execution", Alex Bennée, 2017/03/15
- Re: [Qemu-ppc] qemu-system-ppc video artifacts since "tcg: drop global lock during TCG code execution", Gerd Hoffmann, 2017/03/16
- Re: [Qemu-ppc] qemu-system-ppc video artifacts since "tcg: drop global lock during TCG code execution", Alex Bennée, 2017/03/16
- Re: [Qemu-ppc] [Qemu-devel] qemu-system-ppc video artifacts since "tcg: drop global lock during TCG code execution", Paolo Bonzini, 2017/03/16