[PATCH 00/19] xf86-video-qxl cleanups, switchmode, vt segfaults

Alon Levy alevy at redhat.com
Thu May 31 03:24:34 PDT 2012


This patchset has multiple fixes and cleanups, including:
 * handle DestroyPixmap during [LeaveVT, EnterVT]. When we evacuated
   all the surfaces we also destroyed all_surfaces, causing segfaults.
 * tracking of mspace allocation (compile time flag, defaults to off),
   including trivial accounting and valgrind assisted
 * simplify switch mode by not evacuating, not needed since we are still
   in control of the pci. Instead do a primary destroy followed by primary
   creation.
 * The uxa changes are just to remove includes that are not required (font).
 * There is a trivial call to xf86CrtcConfigInit to allow later xf86_hide_cursors
   in qxl_leave_vt to avoid some pixmap references until qxl_enter_vt.

I have not tested these patches with a Xinerama setup, I'd appreciate any tests
or pointing out something that wouldn't work for that scenario
(xf86CrtcConfigInit ?)

Alon Levy (19):
  uxa: remove unnecessary includes, reduces warnings due to duplicate
    definitions
  uxa-damage: remove unnecessary include (doesn't fix any warnings)
  qxl_surface: remove redundant qxl_garbage_collect, qxl_allocnf calls
    it
  qxl_driver: hide cursors on vt switch
  qxl_surface: handle destroyed pixmaps while evacuated
  qxl_mem: add debug flags, simple accounting and valgrind enabled
  rename qxl_reset to qxl_reset_and_create_mem_slots
  qxl_leave_vt: change outb to ioport_write (easier to grep /
    breakpoint on a single point)
  mspace: add mspace_malloc_stats_return
  qxl_driver: abort on mspace error, don't spin (default abort
    function)
  qxl_pre_init: memset qxl struct
  qxl_surface: cosmetics
  qxl_surface: logging: add function name to ErrorF
  qxl.h: add device_primary tri state UNDEFINED/NONE/CREATED
  prefix io with qxl_io, add several
  io: add qxl_io_destroy_primary
  qxl_surface: add DEBUG_SURFACE_LIFECYCLE helpers
  qxl_surface: don't unlink surface 0
  qxl_switch_mode: don't evacuate, just recreate primary surface

 src/mspace.c         |   33 ++++++++--
 src/mspace.h         |    5 +-
 src/qxl.h            |   24 +++++++-
 src/qxl_driver.c     |  166 +++++++++++++++++++++++++++++++++++++++++---------
 src/qxl_mem.c        |   54 +++++++++++++++-
 src/qxl_surface.c    |  112 ++++++++++++++++++++++++++++------
 src/uxa/uxa-accel.c  |    2 -
 src/uxa/uxa-damage.c |    1 -
 src/uxa/uxa.c        |    2 -
 9 files changed, 336 insertions(+), 63 deletions(-)

-- 
1.7.10.1



More information about the xorg-devel mailing list