Message ID | 20181102132543.16486-2-daniel.vetter@ffwll.ch (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/3] drm/lease: debug output for lease creation | expand |
Quoting Daniel Vetter (2018-11-02 13:25:42) > This essentially undoes > > commit 39868bd7668bd47308b1dfd97c212757caee764f > Author: Chris Wilson <chris@chris-wilson.co.uk> > Date: Tue Oct 29 08:55:58 2013 +0000 > > drm: Compact booleans within struct drm_file > > We do lockless access to these flags everywhere, and it's kinda not a > great idea to mix lockless and bitfields. Aside from that gcc isn't > generating great code for these. > > If this ever becomes an issue size-wise, I think we need atomic_t here > and atomic bitflag ops. (you don't need atomic_t to use atomic bitflag ops, more so since the bit ops work on unsigned long!) > Cc: Chris Wilson <chris@chris-wilson.co.uk> > Cc: David Herrmann <dh.herrmann@gmail.com> > Cc: Dave Airlie <airlied@redhat.com> > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> A bit of a nuisance since bools are not well specified in terms of alignment and size, so the growth is as bad as you would expect, and if atomic access to these individual members was strictly required we would already be up the proverbial creek. Acked-by: Chris Wilson <chris@chris-wilson.co.uk> -Chris
diff --git a/include/drm/drm_file.h b/include/drm/drm_file.h index 26485acc51d7..84ac79219e4c 100644 --- a/include/drm/drm_file.h +++ b/include/drm/drm_file.h @@ -164,14 +164,14 @@ struct drm_file { * See also the :ref:`section on primary nodes and authentication * <drm_primary_node>`. */ - unsigned authenticated :1; + bool authenticated; /** * @stereo_allowed: * * True when the client has asked us to expose stereo 3D mode flags. */ - unsigned stereo_allowed :1; + bool stereo_allowed; /** * @universal_planes: @@ -179,10 +179,10 @@ struct drm_file { * True if client understands CRTC primary planes and cursor planes * in the plane list. Automatically set when @atomic is set. */ - unsigned universal_planes:1; + bool universal_planes; /** @atomic: True if client understands atomic properties. */ - unsigned atomic:1; + bool atomic; /** * @aspect_ratio_allowed: @@ -190,14 +190,14 @@ struct drm_file { * True, if client can handle picture aspect ratios, and has requested * to pass this information along with the mode. */ - unsigned aspect_ratio_allowed:1; + bool aspect_ratio_allowed; /** * @writeback_connectors: * * True if client understands writeback connectors */ - unsigned writeback_connectors:1; + bool writeback_connectors; /** * @is_master: @@ -208,7 +208,7 @@ struct drm_file { * See also the :ref:`section on primary nodes and authentication * <drm_primary_node>`. */ - unsigned is_master:1; + bool is_master; /** * @master:
This essentially undoes commit 39868bd7668bd47308b1dfd97c212757caee764f Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Tue Oct 29 08:55:58 2013 +0000 drm: Compact booleans within struct drm_file We do lockless access to these flags everywhere, and it's kinda not a great idea to mix lockless and bitfields. Aside from that gcc isn't generating great code for these. If this ever becomes an issue size-wise, I think we need atomic_t here and atomic bitflag ops. Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: David Herrmann <dh.herrmann@gmail.com> Cc: Dave Airlie <airlied@redhat.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> --- include/drm/drm_file.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-)