Re: [PATCH v6 4/6] lib/dlock-list: Make sibling CPUs share the same linked list

From: Jan Kara
Date: Mon Oct 09 2017 - 03:26:21 EST


On Thu 05-10-17 10:57:07, Waiman Long wrote:
> On 10/05/2017 04:59 AM, Jan Kara wrote:
> > On Wed 04-10-17 17:20:05, Waiman Long wrote:
> >> int alloc_dlock_list_heads(struct dlock_list_heads *dlist)
> >> {
> >> - int idx;
> >> + int idx, cnt = nr_dlock_lists ? nr_dlock_lists : nr_cpu_ids;
> > Hum, is this there for the case where alloc_dlock_list_heads() is called
> > before nr_dlock_lists is initialized? But how can the dlist be used later
> > when it has larger number of lists and you don't know how many?
>
> The point is nr_dlock_lists <= nr_cpu_ids. Before nr_dlock_lists is
> initialized, the mapping table will map all cpus to the first entry. So
> the extra entries will just stay unused. At free time, they will all get
> de-allocated. I will clarify that with a comment.

OK, nice trick.

Honza
--
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR