Re: [PATCH 0/3] embed drm_gem_object into radeon_bo

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

 



Hi, Daniel,

My main concerns previously for embedding GEM objects as user-space references for TTM has been twofold and implementation specific.

1) The locking has been using global mutexes where local spin- or RCU locks have been more appropriate. It looks like this has finally been / is finally going to be addressed.

2) The gem object is too specialized for general purpose use:
a) The shmem member has no natural use with TTM except possibly as a persistent swap storage, but in an ideal world, TTM would talk to the swap cache directly so in the longer term there is no need for the shmem object at all. b) Implementations may want to use other user-space visible objects than buffer objects: For example fence objects or CPU synchronization objects. The common traits of / operations on these are user-space visibility, inter-process visibility, refcounting and destruction when the relevant file is closed.

Hence a class that provides only the user-space handles, naming (flink), refcounting and registering with a file handle would be the best choice of a "base" class. Traditional Gem objects could derive from those and provide any extra *generic* members needed for buffer objects.

This doesn't really affect your work though. Just some comments on why vmwgfx don't use GEM objects by default and how they could be made optimal for TTM-aware drivers.

Thanks,
/Thomas


On 11/13/2010 09:57 PM, Daniel Vetter wrote:
Hi all,

This patch series embeds drm_gem_object into struct radeon_bo and adjusts
any references. I've decided against embedding the gem stuff into struct
ttm_bo because
- vmwgfx doesn't use gem and
- ttm is used for implementing the memory management, whereas gem provides
   the userspace interface (I know, there's some overlap there, but that's
   not really a new problem).

Please review and consider merging for -next.

Yours, Daniel

Daniel Vetter (3):
   drm/radeon: embed struct drm_gem_object
   drm/radeon: introduce gem_to_radeon_bo helper
   drm/radeon: kill radeon_bo->gobj pointer

  drivers/gpu/drm/radeon/atombios_crtc.c      |    8 ++--
  drivers/gpu/drm/radeon/evergreen_blit_kms.c |    2 +-
  drivers/gpu/drm/radeon/r600.c               |    2 +-
  drivers/gpu/drm/radeon/r600_blit_kms.c      |    2 +-
  drivers/gpu/drm/radeon/radeon.h             |    3 +-
  drivers/gpu/drm/radeon/radeon_benchmark.c   |    4 +-
  drivers/gpu/drm/radeon/radeon_cs.c          |    2 +-
  drivers/gpu/drm/radeon/radeon_device.c      |    4 +-
  drivers/gpu/drm/radeon/radeon_fb.c          |   10 +++---
  drivers/gpu/drm/radeon/radeon_gart.c        |    2 +-
  drivers/gpu/drm/radeon/radeon_gem.c         |   43 ++++++++++++---------------
  drivers/gpu/drm/radeon/radeon_legacy_crtc.c |    4 +-
  drivers/gpu/drm/radeon/radeon_object.c      |   24 +++++++--------
  drivers/gpu/drm/radeon/radeon_object.h      |    2 +-
  drivers/gpu/drm/radeon/radeon_ring.c        |    4 +-
  drivers/gpu/drm/radeon/radeon_test.c        |    4 +-
  drivers/gpu/drm/radeon/radeon_ttm.c         |    2 +-
  drivers/gpu/drm/radeon/rv770.c              |    2 +-
  18 files changed, 59 insertions(+), 65 deletions(-)

_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/dri-devel

_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux