On Wed, Apr 26, 2017 at 01:13:41PM +0100, Tvrtko Ursulin wrote: > I was thinking of exactly the same thing as this patch does, u64 > context id as key, u32 seqnos (wrapped in a container with > hlist_node). #define NSYNC 32 struct intel_timeline_sync { /* kmalloc-256 slab */ struct hlist_node node; u64 prefix; u32 bitmap; u32 seqno[NSYNC]; }; DECLARE_HASHTABLE(sync, 7); If I squint, the numbers favour the idr. ;) Tbh, the precence of the squash is noticeable and well above the noise, the difference between a hashtable and the idr, far below the noise floor (in a testcase intended to stress the efficacy of this patch). The cost of reference counting in execbuffer and the reservation_object hide all ills. :( What I am not happy with is the 1<<7 buckets I'm currently using. Thinking about the idle pruning, there shouldn't be any reason to go above 1<<3, I hope? Do we start on GEM_STATS? -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx