On Sun, Aug 18, 2024 at 09:40:27PM GMT, Paul E. McKenney wrote:
> On Mon, Aug 19, 2024 at 12:16:42AM -0400, Kent Overstreet wrote:
> > You can't use a fixed number of callback heads if there's going to be an
> > unbounded number of callback heads outstanding.
> 
> The number of rcu_head structures is your choice, based on your choice
> of data structure.  You can for example link together data elements that
> have the same value of get_state_synchronize_rcu() cookie, and use a
> single rcu_head structure for that group.  You could then do whatever
> you want for the linking.
> 
> But even if you do choose to have a large number of rcu_head structures,
> perhaps one per data element, there is no law saying that each and every
> one of them needs to be passed to call_rcu().  For example, kfree_rcu()
> requires an rcu_head structure in the objects passed to it, but in the
> common (non-OOM) case, those structures go unused in favor of pages
> of pointers.
> 
> So what were you really trying to get across to me here?

Like I said, this needs to run in a fixed amount of memory, so your
proposed algorithm doesn't work for having one rcu_head per seq with
pending objects.

Reply via email to