Subject: Re: [PATCH v4 1/1] rps: core implementation

From: Eric Dumazet <[email-masked]>
Date: Mon, 11 Jan 2010 10:00:53 +0100

Le 11/01/2010 07:25, Tom Herbert a écrit :
> Eric, patch below has some more minor fixes per your latest comments.
> 
> - added variables for rps_map_size and rps_cpus_in_map for efficiency
> - added preempt_disable/enable around __smp_call_function_single to
> prevent CPUs from being removed during this action (hotplug fix)
> - check cpu_online before calling __smp_call_function_single (also
> hotplug related)
> - do rcu_read_lock instead of rcu_read_lock_bh in store_rps_cpus
> - don't do rcu_derefence in store_rps_cpus
> 
> Thanks,
> Tom

Tom, I am currently running one production server with this version,
everything seems fine so far.

(Only problem is with your mail program, some lines were folded, and
I had to manually adjust your patch to apply it...)

I also did one small change :

Since struct softnet_data is now aligned to a cache line boundary, its better
to move it to appropriate section (to avoid adding holes in percpu section,
because linker is not very smart)

-DEFINE_PER_CPU(struct softnet_data, softnet_data);
+DEFINE_PER_CPU_ALIGNED(struct softnet_data, softnet_data);

I believe its ready for inclusion, but of course David should take
a look before :)

Could you post it formally with the appropriate ChangeLog with a nice
RPS description, so that other people can ack it ?

Thanks !