Re: [tip:core/debugobjects] debugobjects: Reduce contention on the global pool_lock

From: Ingo Molnar
Date: Sun Feb 05 2017 - 05:03:54 EST



* tip-bot for Waiman Long <tipbot@xxxxxxxxx> wrote:

> ---
> lib/debugobjects.c | 31 ++++++++++++++++++++++---------
> 1 file changed, 22 insertions(+), 9 deletions(-)
>
> diff --git a/lib/debugobjects.c b/lib/debugobjects.c
> index dc78217..5476bbe 100644
> --- a/lib/debugobjects.c
> +++ b/lib/debugobjects.c
> @@ -172,25 +172,38 @@ alloc_object(void *addr, struct debug_bucket *b, struct debug_obj_descr *descr)
>
> /*
> * workqueue function to free objects.
> + *
> + * To reduce contention on the global pool_lock, the actual freeing of
> + * debug objects will be delayed if the pool_lock is busy. We also free
> + * the objects in a batch of 4 for each lock/unlock cycle.
> */
> +#define ODEBUG_FREE_BATCH 4
> static void free_obj_work(struct work_struct *work)
> {

Please put an extra newline before function definitions.

Looks good otherwise!

Thanks,

Ingo