On 30/03/17 07:55, Gerd Hoffmann wrote: > Hi, > > First attempt on making display updates thread-save for real. Most > interesting patches at this point are #2 (adds helper functions to > create and use a dirty bitmap copy) and #3 (updates vga code to use > them). > > Patch #1 fixes a bug I've noticed while wading through the vga code, > and #4 removes the temporary workaround for testing purposes. Which > will of course break some or all non-vga display adapters as those > are not ported over yet. > > git branch is available here: > git://git.kraxel.org/qemu work/vga-fixes > > Gerd Hoffmann (4): > vga: add vga_scanline_invalidated helper > memory: add support getting and using a dirty bitmap copy. > vga: make display updates thread safe. > [testing] console: remove do_safe_dpy_refresh > > exec.c | 79 > +++++++++++++++++++++++++++++++++++++++++++++++++ > hw/display/vga.c | 50 +++++++++++++++++-------------- > include/exec/memory.h | 13 ++++++++ > include/exec/ram_addr.h | 8 +++++ > include/qemu/typedefs.h | 1 + > memory.c | 15 ++++++++++ > ui/console.c | 25 +--------------- > 7 files changed, 145 insertions(+), 46 deletions(-)
Excellent! I can help out with converting and/or testing the SPARC devices (cg3/tcx) if required. Out of interest, from your work do you have a rough estimate as to how this affects guest performance? For example benchmarks with Jan's original commit to reduce the locking vs. Alex's current workaround vs. with this patchset applied? ATB, Mark.