On Wed, Nov 11, 2020 at 03:08:12PM +0100, Joerg Sonnenberger wrote: > On Wed, Nov 11, 2020 at 10:44:45AM +0100, Martin Husemann wrote: > > Consider the following pseudo-code running in softint context: > > Why do those items not have a link element inside, so that no additional > memory allocation is necesary?
That would not help - I am collecting a subset of the items and don't want to keep the whole state locked for all actions on them. A single list element inside would not be enough (they do have one, that is how the whole list works). I could create a reference struct (tuple of pointer and tailq entry) for each one collected and put that in a tailq, and then use a pool_cache(9) for the referencers - which would make the whole thing similariy akward as the kmem_intr_* variant. Martin