Re: [PATCH] sched: rewrite SCHED_CPUMASK_ALLOC

From: Ingo Molnar
Date: Fri Nov 07 2008 - 03:16:43 EST



* Li Zefan <lizf@xxxxxxxxxxxxxx> wrote:

> >> #if NR_CPUS > 128
> >> -#define SCHED_CPUMASK_ALLOC 1
> >> -#define SCHED_CPUMASK_FREE(v) kfree(v)
> >> -#define SCHED_CPUMASK_DECLARE(v) struct allmasks *v
> >> +#define SCHED_CPUMASK_DECLARE(v) struct allmasks *v
> >> +#define SCHED_CPUMASK_ALLOC(v) v = kmalloc(sizeof(*v), GFP_KERNEL)
> >> +#define SCHED_CPUMASK_FREE(v) kfree(v)
> >> #else
> >> -#define SCHED_CPUMASK_ALLOC 0
> >> -#define SCHED_CPUMASK_FREE(v)
> >> -#define SCHED_CPUMASK_DECLARE(v) struct allmasks _v, *v = &_v
> >> +#define SCHED_CPUMASK_DECLARE(v) struct allmasks _v, *v = &_v
> >> +#define SCHED_CPUMASK_ALLOC(v)
> >> +#define SCHED_CPUMASK_FREE(v)
> >> #endif
> >
> > ok, the #ifdef removal is nice, but we can make it even cleaner:
> > please just change it to a sched_cpumask_alloc() inline. That way
> > SCHED_CPUMASK_DECLARE() can go away as well: just declare the
> > variable, it will be unused in the <128 CPUs case.
> >
>
> I don't catch you. :(
>
> In the <128 CPUs case, SCHED_CPUMASK_DECLARE is needed to declare a
> local variable(struct allmasks) and a pointer pointing to it. So I
> don't know what you mean by 'unused' and how to remove the DECLARE
> macro..

Sorry, you are right - keep the SCHED_CPUMASK_DECLARE() macro please.

But the other macros can become an inline function just fine, correct?

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/