Messages in this thread Patch in this message | | | Date | Fri, 30 May 2014 09:00:11 -0500 (CDT) | From | Christoph Lameter <> | Subject | Re: [PATCH] vmstat: on demand updates from differentials V7 |
| |
On Fri, 30 May 2014, Frederic Weisbecker wrote:
> On Thu, May 29, 2014 at 02:56:15PM -0500, Christoph Lameter wrote: > > -static void start_cpu_timer(int cpu) > > +static void __init start_shepherd_timer(void) > > { > > - struct delayed_work *work = &per_cpu(vmstat_work, cpu); > > + int cpu; > > + > > + for_each_possible_cpu(cpu) > > + INIT_DEFERRABLE_WORK(per_cpu_ptr(&vmstat_work, cpu), > > + vmstat_update); > > + > > + cpu_stat_off = kmalloc(cpumask_size(), GFP_KERNEL); > > Now you're open coding alloc_cpumask_var() ?
Subject: on demand vmstat: Do not open code alloc_cpumask_var
Signed-off-by: Christoph Lameter <cl@linux.com>
Index: linux/mm/vmstat.c =================================================================== --- linux.orig/mm/vmstat.c 2014-05-29 14:43:26.439163942 -0500 +++ linux/mm/vmstat.c 2014-05-30 08:58:42.909697898 -0500 @@ -1238,7 +1238,7 @@ #ifdef CONFIG_SMP static DEFINE_PER_CPU(struct delayed_work, vmstat_work); int sysctl_stat_interval __read_mostly = HZ; -struct cpumask *cpu_stat_off; +cpumask_var_t cpu_stat_off;
static void vmstat_update(struct work_struct *w) { @@ -1332,7 +1332,8 @@ INIT_DEFERRABLE_WORK(per_cpu_ptr(&vmstat_work, cpu), vmstat_update);
- cpu_stat_off = kmalloc(cpumask_size(), GFP_KERNEL); + if (!alloc_cpumask_var(&cpu_stat_off, GFP_KERNEL)) + BUG(); cpumask_copy(cpu_stat_off, cpu_online_mask);
schedule_delayed_work(&shepherd,
| |