2012-10-04 06:58:47

by Viresh Kumar

[permalink] [raw]
Subject: Re: [RFC PATCH 07/10] ARM: sched: Setup SCHED_HMP domains

On 22 September 2012 00:02, <[email protected]> wrote:
> diff --git a/arch/arm/kernel/topology.c b/arch/arm/kernel/topology.c

> +void __init arch_get_hmp_domains(struct list_head *hmp_domains_list)
> +{
> + struct cpumask hmp_fast_cpu_mask;
> + struct cpumask hmp_slow_cpu_mask;

can be merged to single line.

> + struct hmp_domain *domain;
> +
> + arch_get_fast_and_slow_cpus(&hmp_fast_cpu_mask, &hmp_slow_cpu_mask);
> +
> + /*
> + * Initialize hmp_domains
> + * Must be ordered with respect to compute capacity.
> + * Fastest domain at head of list.
> + */
> + domain = (struct hmp_domain *)
> + kmalloc(sizeof(struct hmp_domain), GFP_KERNEL);

should be:

domain = kmalloc(sizeof(*domain), GFP_KERNEL);

> + cpumask_copy(&domain->cpus, &hmp_slow_cpu_mask);

what if kmalloc failed?

> + list_add(&domain->hmp_domains, hmp_domains_list);
> + domain = (struct hmp_domain *)
> + kmalloc(sizeof(struct hmp_domain), GFP_KERNEL);

would be better to kmalloc only once with size 2* sizeof(*domain)

> + cpumask_copy(&domain->cpus, &hmp_fast_cpu_mask);
> + list_add(&domain->hmp_domains, hmp_domains_list);

Also would be better to create a macro for above two lines to remove
code redundancy.


2012-10-10 13:29:13

by Morten Rasmussen

[permalink] [raw]
Subject: Re: [RFC PATCH 07/10] ARM: sched: Setup SCHED_HMP domains

On Thu, Oct 04, 2012 at 07:58:45AM +0100, Viresh Kumar wrote:
> On 22 September 2012 00:02, <[email protected]> wrote:
> > diff --git a/arch/arm/kernel/topology.c b/arch/arm/kernel/topology.c
>
> > +void __init arch_get_hmp_domains(struct list_head *hmp_domains_list)
> > +{
> > + struct cpumask hmp_fast_cpu_mask;
> > + struct cpumask hmp_slow_cpu_mask;
>
> can be merged to single line.
>
> > + struct hmp_domain *domain;
> > +
> > + arch_get_fast_and_slow_cpus(&hmp_fast_cpu_mask, &hmp_slow_cpu_mask);
> > +
> > + /*
> > + * Initialize hmp_domains
> > + * Must be ordered with respect to compute capacity.
> > + * Fastest domain at head of list.
> > + */
> > + domain = (struct hmp_domain *)
> > + kmalloc(sizeof(struct hmp_domain), GFP_KERNEL);
>
> should be:
>
> domain = kmalloc(sizeof(*domain), GFP_KERNEL);
>
> > + cpumask_copy(&domain->cpus, &hmp_slow_cpu_mask);
>
> what if kmalloc failed?
>
> > + list_add(&domain->hmp_domains, hmp_domains_list);
> > + domain = (struct hmp_domain *)
> > + kmalloc(sizeof(struct hmp_domain), GFP_KERNEL);
>
> would be better to kmalloc only once with size 2* sizeof(*domain)
>
> > + cpumask_copy(&domain->cpus, &hmp_fast_cpu_mask);
> > + list_add(&domain->hmp_domains, hmp_domains_list);
>
> Also would be better to create a macro for above two lines to remove
> code redundancy.
>

Agree on all of the above.

Thanks,
Morten