[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20151023144928.GA455@swordfish>
Date: Fri, 23 Oct 2015 23:49:28 +0900
From: Sergey Senozhatsky <sergey.senozhatsky@...il.com>
To: Christoph Lameter <cl@...ux.com>
Cc: Sergey Senozhatsky <sergey.senozhatsky@...il.com>,
Michal Hocko <mhocko@...nel.org>, Tejun Heo <htejun@...il.com>,
Tetsuo Handa <penguin-kernel@...ove.SAKURA.ne.jp>,
linux-mm@...ck.org, linux-kernel@...r.kernel.org,
torvalds@...ux-foundation.org,
David Rientjes <rientjes@...gle.com>, oleg@...hat.com,
kwalker@...hat.com, akpm@...ux-foundation.org, hannes@...xchg.org,
vdavydov@...allels.com, skozina@...hat.com, mgorman@...e.de,
riel@...hat.com
Subject: Re: Make vmstat deferrable again (was Re: [PATCH] mm,vmscan: Use
accurate values for zone_reclaimable() checks)
On (10/23/15 09:12), Christoph Lameter wrote:
[..]
> > > + if (!cpumask_test_and_set_cpu(smp_processor_id(), cpu_stat_off))
> > > + cancel_delayed_work(this_cpu_ptr(&vmstat_work));
> >
> > shouldn't preemption be disable for smp_processor_id() here?
>
> Preemption is disabled when quiet_vmstat() is called.
>
cond_resched()
[ 29.607725] BUG: sleeping function called from invalid context at mm/vmstat.c:487
[ 29.607729] in_atomic(): 1, irqs_disabled(): 1, pid: 0, name: swapper/7
[ 29.607731] no locks held by swapper/7/0.
[ 29.607732] irq event stamp: 48932
[ 29.607733] hardirqs last enabled at (48931): [<ffffffff813b246a>] _raw_spin_unlock_irq+0x2c/0x37
[ 29.607739] hardirqs last disabled at (48932): [<ffffffff810a3fec>] tick_nohz_idle_enter+0x3c/0x5f
[ 29.607743] softirqs last enabled at (48924): [<ffffffff81041fd8>] __do_softirq+0x2bb/0x3a9
[ 29.607747] softirqs last disabled at (48893): [<ffffffff810422a7>] irq_exit+0x41/0x95
[ 29.607752] CPU: 7 PID: 0 Comm: swapper/7 Not tainted 4.3.0-rc6-next-20151022-dbg-00003-g01184ff-dirty #261
[ 29.607754] 0000000000000000 ffff88041dae7da0 ffffffff811dd4f3 ffff88041dacd100
[ 29.607756] ffff88041dae7dc8 ffffffff8105f144 ffffffff8169f800 0000000000000000
[ 29.607759] 0000000000000007 ffff88041dae7e70 ffffffff811040b1 0000000000000002
[ 29.607761] Call Trace:
[ 29.607767] [<ffffffff811dd4f3>] dump_stack+0x4b/0x63
[ 29.607770] [<ffffffff8105f144>] ___might_sleep+0x1e7/0x1ee
[ 29.607773] [<ffffffff811040b1>] refresh_cpu_vm_stats+0x8b/0xb5
[ 29.607776] [<ffffffff81104f4c>] quiet_vmstat+0x3a/0x41
[ 29.607778] [<ffffffff810a3ccf>] __tick_nohz_idle_enter+0x292/0x410
[ 29.607781] [<ffffffff810a4007>] tick_nohz_idle_enter+0x57/0x5f
[ 29.607784] [<ffffffff81076d8b>] cpu_startup_entry+0x36/0x330
[ 29.607788] [<ffffffff81028821>] start_secondary+0xf3/0xf6
by the way, tick_nohz_stop_sched_tick() receives cpu from __tick_nohz_idle_enter().
do you want to pass it to quiet_vmstat()?
if (!ts->tick_stopped) {
nohz_balance_enter_idle(cpu);
- quiet_vmstat();
+ quiet_vmstat(cpu);
calc_load_enter_idle();
-ss
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists