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.
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