Am 17.08.19 um 13:39 schrieb Chris Wilson:
> Rearrange the couple of 32-bit atomics hidden amongst the field of
> pointers that unnecessarily caused the compiler to insert some padding,
> shrinks the size of the base struct dma_fence from 80 to 72 bytes on
> x86-64.
>
> Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk>
> Cc: Christian König <christian.koe...@amd.com>

Reviewed-by: Christian König <christian.koe...@amd.com>

BTW: We could also put the timestamp in the union if we want.

E.g. the cb_list should only be used while the fence is unsignaled, the 
timestamp while it is signaled and the rcu while it is freed.

Would save another 8 bytes, bringing us down to 64.

Christian.

> ---
>   include/linux/dma-fence.h | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/include/linux/dma-fence.h b/include/linux/dma-fence.h
> index 404aa748eda6..2ce4d877d33e 100644
> --- a/include/linux/dma-fence.h
> +++ b/include/linux/dma-fence.h
> @@ -63,7 +63,7 @@ struct dma_fence_cb;
>    * been completed, or never called at all.
>    */
>   struct dma_fence {
> -     struct kref refcount;
> +     spinlock_t *lock;
>       const struct dma_fence_ops *ops;
>       /* We clear the callback list on kref_put so that by the time we
>        * release the fence it is unused. No one should be adding to the 
> cb_list
> @@ -73,11 +73,11 @@ struct dma_fence {
>               struct rcu_head rcu;
>               struct list_head cb_list;
>       };
> -     spinlock_t *lock;
>       u64 context;
>       u64 seqno;
> -     unsigned long flags;
>       ktime_t timestamp;
> +     unsigned long flags;
> +     struct kref refcount;
>       int error;
>   };
>   

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

Reply via email to