qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 6905b9: console: add same surface replace pre


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 6905b9: console: add same surface replace pre-condition
Date: Mon, 24 Apr 2017 08:47:18 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 6905b93447a42e606dfd126b90f75f4cd3c6fe94
      
https://github.com/qemu/qemu/commit/6905b93447a42e606dfd126b90f75f4cd3c6fe94
  Author: Marc-André Lureau <address@hidden>
  Date:   2017-04-24 (Mon, 24 Apr 2017)

  Changed paths:
    M ui/console.c

  Log Message:
  -----------
  console: add same surface replace pre-condition

Catch an invalid state early, before a potential use-after-free. This is
mainly useful for documentation purposes.

Signed-off-by: Marc-André Lureau <address@hidden>
Message-id: address@hidden
Signed-off-by: Gerd Hoffmann <address@hidden>


  Commit: e0665c3b5f57e0c1d20ec555c925fb84ccc31b29
      
https://github.com/qemu/qemu/commit/e0665c3b5f57e0c1d20ec555c925fb84ccc31b29
  Author: Marc-André Lureau <address@hidden>
  Date:   2017-04-24 (Mon, 24 Apr 2017)

  Changed paths:
    M ui/console.c

  Log Message:
  -----------
  console: add same displaychangelistener registration pre-condition

Catch an invalid state. Mainly useful for documentation purposes.

Signed-off-by: Marc-André Lureau <address@hidden>
Message-id: address@hidden
Signed-off-by: Gerd Hoffmann <address@hidden>


  Commit: a27450ec042fd646269d1594368305877dfe7e53
      
https://github.com/qemu/qemu/commit/a27450ec042fd646269d1594368305877dfe7e53
  Author: Laurent Vivier <address@hidden>
  Date:   2017-04-24 (Mon, 24 Apr 2017)

  Changed paths:
    M hw/display/virtio-gpu.c

  Log Message:
  -----------
  virtio-gpu: replace PIXMAN_* by PIXMAN_BE_*

This avoids a "#ifdef HOST_WORDS_BIGENDIAN" and this is the purpose
of PIXMAN_BE_* macros.

Signed-off-by: Laurent Vivier <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Sahid Orentino Ferdjaoui <address@hidden>
Message-id: address@hidden
Signed-off-by: Gerd Hoffmann <address@hidden>


  Commit: d6eb1413920affb7be3df9982682dd183a805dd7
      
https://github.com/qemu/qemu/commit/d6eb1413920affb7be3df9982682dd183a805dd7
  Author: Gerd Hoffmann <address@hidden>
  Date:   2017-04-24 (Mon, 24 Apr 2017)

  Changed paths:
    M include/qemu/bitmap.h
    M util/bitmap.c

  Log Message:
  -----------
  bitmap: add bitmap_copy_and_clear_atomic

Signed-off-by: Gerd Hoffmann <address@hidden>
Message-id: address@hidden
Signed-off-by: Gerd Hoffmann <address@hidden>


  Commit: 8deaf12ca1a7c89867df739dc9056080509628bd
      
https://github.com/qemu/qemu/commit/8deaf12ca1a7c89867df739dc9056080509628bd
  Author: Gerd Hoffmann <address@hidden>
  Date:   2017-04-24 (Mon, 24 Apr 2017)

  Changed paths:
    M exec.c
    M include/exec/memory.h
    M include/exec/ram_addr.h
    M include/qemu/typedefs.h
    M memory.c

  Log Message:
  -----------
  memory: add support getting and using a dirty bitmap copy.

This patch adds support for getting and using a local copy of the dirty
bitmap.

memory_region_snapshot_and_clear_dirty() will create a snapshot of the
dirty bitmap for the specified range, clear the dirty bitmap and return
the copy.  The returned bitmap can be a bit larger than requested, the
range is expanded so the code can copy unsigned longs from the bitmap
and avoid atomic bit update operations.

memory_region_snapshot_get_dirty() will return the dirty status of
pages, pretty much like memory_region_get_dirty(), but using the copy
returned by memory_region_copy_and_clear_dirty().

Signed-off-by: Gerd Hoffmann <address@hidden>
Message-id: address@hidden
Signed-off-by: Gerd Hoffmann <address@hidden>


  Commit: f3289f6f0f9781d1fe77b4cfc3f18a6336eaed72
      
https://github.com/qemu/qemu/commit/f3289f6f0f9781d1fe77b4cfc3f18a6336eaed72
  Author: Gerd Hoffmann <address@hidden>
  Date:   2017-04-24 (Mon, 24 Apr 2017)

  Changed paths:
    M hw/display/vga.c

  Log Message:
  -----------
  vga: add vga_scanline_invalidated helper

Add vga_scanline_invalidated helper to check whenever a scanline was
invalidated.  Add a sanity check to fix OOB read access for display
heights larger than 2048.

Only cirrus uses this, for hardware cursor rendering, so having this
work properly for the first 2048 scanlines only shouldn't be a problem
as the cirrus can't handle large resolutions anyway.  Also changing the
invalidated_y_table size would break live migration.

Signed-off-by: Gerd Hoffmann <address@hidden>
Message-id: address@hidden
Signed-off-by: Gerd Hoffmann <address@hidden>


  Commit: fec5e8c92becad223df9d972770522f64aafdb72
      
https://github.com/qemu/qemu/commit/fec5e8c92becad223df9d972770522f64aafdb72
  Author: Gerd Hoffmann <address@hidden>
  Date:   2017-04-24 (Mon, 24 Apr 2017)

  Changed paths:
    M hw/display/vga.c

  Log Message:
  -----------
  vga: make display updates thread safe.

The vga code clears the dirty bits *after* reading the framebuffer
memory.  So if the guest framebuffer updates hits the race window
between vga reading the framebuffer and vga clearing the dirty bits
vga will miss that update

Fix it by using the new memory_region_copy_and_clear_dirty()
memory_region_copy_get_dirty() functions.  That way we clear the
dirty bitmap before reading the framebuffer.  Any guest display
updates happening in parallel will be properly tracked in the
dirty bitmap then and the next display refresh will pick them up.

Problem triggers with mttcg only.  Before mttcg was merged tcg
never ran in parallel to vga emulation.  Using kvm will hide the
problem too, due to qemu operating on a userspace copy of the
kernel's dirty bitmap.

Signed-off-by: Gerd Hoffmann <address@hidden>
Message-id: address@hidden
Signed-off-by: Gerd Hoffmann <address@hidden>


  Commit: 167e9c7982b0bd6da2de9623c91cdee3a1754899
      
https://github.com/qemu/qemu/commit/167e9c7982b0bd6da2de9623c91cdee3a1754899
  Author: Gerd Hoffmann <address@hidden>
  Date:   2017-04-24 (Mon, 24 Apr 2017)

  Changed paths:
    M hw/display/framebuffer.c

  Log Message:
  -----------
  framebuffer: make display updates thread safe

Signed-off-by: Gerd Hoffmann <address@hidden>
Message-id: address@hidden
Signed-off-by: Gerd Hoffmann <address@hidden>


  Commit: 553bcce5ac405b27c8bc2a34d49f1f9aa226476f
      
https://github.com/qemu/qemu/commit/553bcce5ac405b27c8bc2a34d49f1f9aa226476f
  Author: Gerd Hoffmann <address@hidden>
  Date:   2017-04-24 (Mon, 24 Apr 2017)

  Changed paths:
    M hw/display/exynos4210_fimd.c

  Log Message:
  -----------
  exynos: make display updates thread safe

Signed-off-by: Gerd Hoffmann <address@hidden>
Message-id: address@hidden
Signed-off-by: Gerd Hoffmann <address@hidden>


  Commit: 7fcf0c24e754cb493a1b34ceaa8b0aa1d66e91c7
      
https://github.com/qemu/qemu/commit/7fcf0c24e754cb493a1b34ceaa8b0aa1d66e91c7
  Author: Gerd Hoffmann <address@hidden>
  Date:   2017-04-24 (Mon, 24 Apr 2017)

  Changed paths:
    M hw/display/g364fb.c

  Log Message:
  -----------
  g364fb: make display updates thread safe

Signed-off-by: Gerd Hoffmann <address@hidden>
Message-id: address@hidden
Signed-off-by: Gerd Hoffmann <address@hidden>


  Commit: 104bd1dc707649fe39d0d1405ba7268ebc26edd5
      
https://github.com/qemu/qemu/commit/104bd1dc707649fe39d0d1405ba7268ebc26edd5
  Author: Gerd Hoffmann <address@hidden>
  Date:   2017-04-24 (Mon, 24 Apr 2017)

  Changed paths:
    M hw/display/vmware_vga.c

  Log Message:
  -----------
  vmsvga: fix vmsvga_update_display

Fix standard vga mode check:  Both s->config and s->enabled must be set
to enable vmware command fifo processing.

Drop dirty tracking code from the fifo rendering code path, it isn't
used anyway because vmsvga turns off dirty tracking when leaving
standard vga mode.

Signed-off-by: Gerd Hoffmann <address@hidden>
Message-id: address@hidden
Signed-off-by: Gerd Hoffmann <address@hidden>


  Commit: 6f663d7be94efacf14ee84e71340a4f49011ac36
      
https://github.com/qemu/qemu/commit/6f663d7be94efacf14ee84e71340a4f49011ac36
  Author: Gerd Hoffmann <address@hidden>
  Date:   2017-04-24 (Mon, 24 Apr 2017)

  Changed paths:
    M hw/display/qxl.c
    M hw/display/qxl.h

  Log Message:
  -----------
  qxl: add xres and yres properties

Add properties for the default display resolution, pass
on that information to the guest so the driver can use it.

Also move up qxl_crc32() function so we don't need a
forward declaration.

Additionally guest driver updates are needed so the
guest driver will actually pick this up, which will
probably land in linux kernel 4.12.

Signed-off-by: Gerd Hoffmann <address@hidden>
Message-id: address@hidden


  Commit: 729abb6a920e80c3866f60d1638f08f2eba98a9a
      
https://github.com/qemu/qemu/commit/729abb6a920e80c3866f60d1638f08f2eba98a9a
  Author: Gerd Hoffmann <address@hidden>
  Date:   2017-04-24 (Mon, 24 Apr 2017)

  Changed paths:
    M hw/display/virtio-gpu.c
    M include/hw/virtio/virtio-gpu.h

  Log Message:
  -----------
  virtio-gpu: add xres and yres properties

So the default resolution is configurable.

Signed-off-by: Gerd Hoffmann <address@hidden>
Reviewed-by: Marc-André Lureau <address@hidden>
Message-id: address@hidden


  Commit: eab1e53cacfb1d877317d5e7b416ddb43858d92e
      
https://github.com/qemu/qemu/commit/eab1e53cacfb1d877317d5e7b416ddb43858d92e
  Author: Peter Maydell <address@hidden>
  Date:   2017-04-24 (Mon, 24 Apr 2017)

  Changed paths:
    M exec.c
    M hw/display/exynos4210_fimd.c
    M hw/display/framebuffer.c
    M hw/display/g364fb.c
    M hw/display/qxl.c
    M hw/display/qxl.h
    M hw/display/vga.c
    M hw/display/virtio-gpu.c
    M hw/display/vmware_vga.c
    M include/exec/memory.h
    M include/exec/ram_addr.h
    M include/hw/virtio/virtio-gpu.h
    M include/qemu/bitmap.h
    M include/qemu/typedefs.h
    M memory.c
    M ui/console.c
    M util/bitmap.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/kraxel/tags/pull-vga-20170424-1' into 
staging

fix display update races, part one.
add xres + yres properties to qxl and virtio.
misc fixes and cleanups.

# gpg: Signature made Mon 24 Apr 2017 13:14:49 BST
# gpg:                using RSA key 0x4CB6D8EED3E87138
# gpg: Good signature from "Gerd Hoffmann (work) <address@hidden>"
# gpg:                 aka "Gerd Hoffmann <address@hidden>"
# gpg:                 aka "Gerd Hoffmann (private) <address@hidden>"
# Primary key fingerprint: A032 8CFF B93A 17A7 9901  FE7D 4CB6 D8EE D3E8 7138

* remotes/kraxel/tags/pull-vga-20170424-1:
  virtio-gpu: add xres and yres properties
  qxl: add xres and yres properties
  vmsvga: fix vmsvga_update_display
  g364fb: make display updates thread safe
  exynos: make display updates thread safe
  framebuffer: make display updates thread safe
  vga: make display updates thread safe.
  vga: add vga_scanline_invalidated helper
  memory: add support getting and using a dirty bitmap copy.
  bitmap: add bitmap_copy_and_clear_atomic
  virtio-gpu: replace PIXMAN_* by PIXMAN_BE_*
  console: add same displaychangelistener registration pre-condition
  console: add same surface replace pre-condition

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/4c55b1d0bad8...eab1e53cacfb

reply via email to

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