Revision d7a702f0b1033cf402fef65bd6395072738f0844 authored by Matt Fleming on 06 August 2015, 12:12:43 UTC, committed by Ingo Molnar on 12 August 2015, 09:37:23 UTC
Tony reports that booting his 144-cpu machine with maxcpus=10 triggers the following WARN_ON(): [ 21.045727] WARNING: CPU: 8 PID: 647 at arch/x86/kernel/cpu/perf_event_intel_cqm.c:1267 intel_cqm_cpu_prepare+0x75/0x90() [ 21.045744] CPU: 8 PID: 647 Comm: systemd-udevd Not tainted 4.2.0-rc4 #1 [ 21.045745] Hardware name: Intel Corporation BRICKLAND/BRICKLAND, BIOS BRHSXSD1.86B.0066.R00.1506021730 06/02/2015 [ 21.045747] 0000000000000000 0000000082771b09 ffff880856333ba8 ffffffff81669b67 [ 21.045748] 0000000000000000 0000000000000000 ffff880856333be8 ffffffff8107b02a [ 21.045750] ffff88085b789800 ffff88085f68a020 ffffffff819e2470 000000000000000a [ 21.045750] Call Trace: [ 21.045757] [<ffffffff81669b67>] dump_stack+0x45/0x57 [ 21.045759] [<ffffffff8107b02a>] warn_slowpath_common+0x8a/0xc0 [ 21.045761] [<ffffffff8107b15a>] warn_slowpath_null+0x1a/0x20 [ 21.045762] [<ffffffff81036725>] intel_cqm_cpu_prepare+0x75/0x90 [ 21.045764] [<ffffffff81036872>] intel_cqm_cpu_notifier+0x42/0x160 [ 21.045767] [<ffffffff8109a33d>] notifier_call_chain+0x4d/0x80 [ 21.045769] [<ffffffff8109a44e>] __raw_notifier_call_chain+0xe/0x10 [ 21.045770] [<ffffffff8107b538>] _cpu_up+0xe8/0x190 [ 21.045771] [<ffffffff8107b65a>] cpu_up+0x7a/0xa0 [ 21.045774] [<ffffffff8165e920>] cpu_subsys_online+0x40/0x90 [ 21.045777] [<ffffffff81433b37>] device_online+0x67/0x90 [ 21.045778] [<ffffffff81433bea>] online_store+0x8a/0xa0 [ 21.045782] [<ffffffff81430e78>] dev_attr_store+0x18/0x30 [ 21.045785] [<ffffffff8126b6ba>] sysfs_kf_write+0x3a/0x50 [ 21.045786] [<ffffffff8126ad40>] kernfs_fop_write+0x120/0x170 [ 21.045789] [<ffffffff811f0b77>] __vfs_write+0x37/0x100 [ 21.045791] [<ffffffff811f38b8>] ? __sb_start_write+0x58/0x110 [ 21.045795] [<ffffffff81296d2d>] ? security_file_permission+0x3d/0xc0 [ 21.045796] [<ffffffff811f1279>] vfs_write+0xa9/0x190 [ 21.045797] [<ffffffff811f2075>] SyS_write+0x55/0xc0 [ 21.045800] [<ffffffff81067300>] ? do_page_fault+0x30/0x80 [ 21.045804] [<ffffffff816709ae>] entry_SYSCALL_64_fastpath+0x12/0x71 [ 21.045805] ---[ end trace fe228b836d8af405 ]--- The root cause is that CPU_UP_PREPARE is completely the wrong notifier action from which to access cpu_data(), because smp_store_cpu_info() won't have been executed by the target CPU at that point, which in turn means that ->x86_cache_max_rmid and ->x86_cache_occ_scale haven't been filled out. Instead let's invoke our handler from CPU_STARTING and rename it appropriately. Reported-by: Tony Luck <tony.luck@intel.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Cc: Ashok Raj <ashok.raj@intel.com> Cc: Kanaka Juvva <kanaka.d.juvva@intel.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Vikas Shivappa <vikas.shivappa@intel.com> Link: http://lkml.kernel.org/r/1438863163-14083-1-git-send-email-matt@codeblueprint.co.uk Signed-off-by: Ingo Molnar <mingo@kernel.org>
1 parent dbc72b7
File | Mode | Size |
---|---|---|
partitions | ||
Kconfig | -rw-r--r-- | 3.7 KB |
Kconfig.iosched | -rw-r--r-- | 1.6 KB |
Makefile | -rw-r--r-- | 923 bytes |
bio-integrity.c | -rw-r--r-- | 14.0 KB |
bio.c | -rw-r--r-- | 50.5 KB |
blk-cgroup.c | -rw-r--r-- | 31.8 KB |
blk-core.c | -rw-r--r-- | 90.7 KB |
blk-exec.c | -rw-r--r-- | 3.2 KB |
blk-flush.c | -rw-r--r-- | 14.8 KB |
blk-integrity.c | -rw-r--r-- | 12.5 KB |
blk-ioc.c | -rw-r--r-- | 10.2 KB |
blk-iopoll.c | -rw-r--r-- | 5.8 KB |
blk-lib.c | -rw-r--r-- | 8.0 KB |
blk-map.c | -rw-r--r-- | 5.2 KB |
blk-merge.c | -rw-r--r-- | 14.6 KB |
blk-mq-cpu.c | -rw-r--r-- | 1.6 KB |
blk-mq-cpumap.c | -rw-r--r-- | 2.5 KB |
blk-mq-sysfs.c | -rw-r--r-- | 10.6 KB |
blk-mq-tag.c | -rw-r--r-- | 16.4 KB |
blk-mq-tag.h | -rw-r--r-- | 2.2 KB |
blk-mq.c | -rw-r--r-- | 53.7 KB |
blk-mq.h | -rw-r--r-- | 3.3 KB |
blk-settings.c | -rw-r--r-- | 27.2 KB |
blk-softirq.c | -rw-r--r-- | 4.4 KB |
blk-sysfs.c | -rw-r--r-- | 15.5 KB |
blk-tag.c | -rw-r--r-- | 10.0 KB |
blk-throttle.c | -rw-r--r-- | 45.8 KB |
blk-timeout.c | -rw-r--r-- | 5.7 KB |
blk.h | -rw-r--r-- | 8.6 KB |
bounce.c | -rw-r--r-- | 6.4 KB |
bsg-lib.c | -rw-r--r-- | 6.0 KB |
bsg.c | -rw-r--r-- | 22.9 KB |
cfq-iosched.c | -rw-r--r-- | 122.1 KB |
cmdline-parser.c | -rw-r--r-- | 4.9 KB |
compat_ioctl.c | -rw-r--r-- | 20.8 KB |
deadline-iosched.c | -rw-r--r-- | 11.3 KB |
elevator.c | -rw-r--r-- | 23.8 KB |
genhd.c | -rw-r--r-- | 44.3 KB |
ioctl.c | -rw-r--r-- | 11.5 KB |
ioprio.c | -rw-r--r-- | 5.0 KB |
noop-iosched.c | -rw-r--r-- | 2.7 KB |
partition-generic.c | -rw-r--r-- | 14.0 KB |
scsi_ioctl.c | -rw-r--r-- | 19.4 KB |
t10-pi.c | -rw-r--r-- | 5.1 KB |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...