On 2/23/23 12:02?PM, Gabriel Krisman Bertazi wrote: > Breno Leitao <leitao@xxxxxxxxxx> writes: > >> Having cache entries linked using the hlist format brings no benefit, and >> also requires an unnecessary extra pointer address per cache entry. >> >> Use the internal io_wq_work_node single-linked list for the internal >> alloc caches (async_msghdr and async_poll) >> >> This is required to be able to use KASAN on cache entries, since we do >> not need to touch unused (and poisoned) cache entries when adding more >> entries to the list. >> > > Looking at this patch, I wonder if it could go in the opposite direction > instead, and drop io_wq_work_node entirely in favor of list_head. :) > > Do we gain anything other than avoiding the backpointer with a custom > linked implementation, instead of using the interface available in > list.h, that developers know how to use and has other features like > poisoning and extra debug checks? list_head is twice as big, that's the main motivation. This impacts memory usage (obviously), but also caches when adding/removing entries. -- Jens Axboe