Re: [PATCH RFT v2] x86: move cacheinfo sysfs to generic cacheinfo infrastructure

Borislav Petkov
2015-02-24T17:57:04Z

On Mon, Feb 23, 2015 at 06:14:25PM +0000, Sudeep Holla wrote:
> - Rebased on v4.0-rc1
> - Fixed lockdep warning reported by Borislav

You probably have fixed the lockdep splat but not the NULL pointer
dereference which was there in the first mail I sent you. I'd suggest
you find an AMD box with an L3 and do some testing yourself before
sending out another version.

Also, when testing, do a snapshot of the sysfs cache hierarchy by doing:

grep . -EriIn /sys/devices/system/cpu/cpu?/cache/*

before your changes and after and check for differences.

We can't allow ourselves any differences because this is an API.

HTH.

[ 2.981740] BUG: unable to handle kernel NULL pointer dereference at 00000000000000f8
[ 2.989918] IP: [<ffffffff810141c0>] _populate_cache_leaves+0x440/0x460
[ 2.996724] PGD 0
[ 2.998928] Oops: 0002 [#1] PREEMPT SMP
[ 3.003147] Modules linked in:
[ 3.006395] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.0.0-rc1+ #1
[ 3.012801] Hardware name: MICRO-STAR INTERNATIONAL CO.,LTD MS-7599/870-C45 (MS-7599), BIOS V1.15 03/04/2011
[ 3.022871] task: ffff880132138000 ti: ffff880132180000 task.ti: ffff880132180000
[ 3.030598] RIP: 0010:[<ffffffff810141c0>] [<ffffffff810141c0>] _populate_cache_leaves+0x440/0x460
[ 3.039942] RSP: 0000:ffff880132183c88 EFLAGS: 00010086
[ 3.045395] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 00000000ffffffff
[ 3.052671] RDX: 0000000000000000 RSI: 0000000000000006 RDI: 0000000000000000
[ 3.059945] RBP: ffff880132183d28 R08: ffff880136c0a0c0 R09: 0000000000000001
[ 3.067221] R10: 0000000000000000 R11: 000000000000001c R12: 0000000000000000
[ 3.074495] R13: 000000000000a0c0 R14: ffffffff81ac4f98 R15: 0000000000000001
[ 3.081770] FS: 0000000000000000(0000) GS:ffff880136c00000(0000) knlGS:0000000000000000
[ 3.090108] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[ 3.095996] CR2: 00000000000000f8 CR3: 0000000001a0b000 CR4: 00000000000006f0
[ 3.103270] Stack:
[ 3.105426] ffff880132183de4 000000000000a000 000000000000a000 ffff880136c0fbc0
[ 3.113272] 0000000000000090 ffff8801322c16b0 0000000000000006 ffff8801322c1720
[ 3.121120] 000000000000a0c0 0000000300000000 0bc0003f14000163 00000000000007ff
[ 3.128959] Call Trace:
[ 3.131548] [<ffffffff81013d80>] ? cpuid4_cache_lookup_regs+0x3e0/0x3e0
[ 3.138390] [<ffffffff810fd666>] generic_exec_single+0x136/0x1a0
[ 3.144625] [<ffffffff81013d80>] ? cpuid4_cache_lookup_regs+0x3e0/0x3e0
[ 3.151466] [<ffffffff810fd733>] smp_call_function_single+0x63/0xd0
[ 3.157960] [<ffffffff811ab560>] ? __kmalloc+0x160/0x200
[ 3.163500] [<ffffffff81014b72>] populate_cache_leaves+0x22/0x30
[ 3.169734] [<ffffffff813c8feb>] detect_cache_attributes+0x7b/0x1a0
[ 3.176230] [<ffffffff810002e0>] ? do_one_initcall+0x90/0x1f0
[ 3.182204] [<ffffffff81b17076>] ? container_dev_init+0x2f/0x2f
[ 3.188352] [<ffffffff81b170b8>] cacheinfo_sysfs_init+0x42/0x93
[ 3.194498] [<ffffffff81b17076>] ? container_dev_init+0x2f/0x2f
[ 3.200649] [<ffffffff810002f0>] do_one_initcall+0xa0/0x1f0
[ 3.206448] [<ffffffff8109ab00>] ? parse_args+0x150/0x420
[ 3.212076] [<ffffffff81ae5fae>] kernel_init_freeable+0x115/0x19d
[ 3.218397] [<ffffffff8157683f>] ? ret_from_fork+0xf/0xb0
[ 3.224025] [<ffffffff81568b40>] ? rest_init+0xd0/0xd0
[ 3.229393] [<ffffffff81568b4e>] kernel_init+0xe/0xf0
[ 3.234674] [<ffffffff815768ac>] ret_from_fork+0x7c/0xb0
[ 3.240214] [<ffffffff81568b40>] ? rest_init+0xd0/0xd0
[ 3.245579] Code: 3c dd 40 4c ac 81 ff c2 48 63 d2 be 06 00 00 00 e8 a6 7c 2b 00 3b 05 24 1f ab 00 89 c2 7d a4 89 c0
[ 3.268135] RIP [<ffffffff810141c0>] _populate_cache_leaves+0x440/0x460
[ 3.275024] RSP <ffff880132183c88>
[ 3.278652] CR2: 00000000000000f8
[ 3.282112] ---[ end trace 17992ce30d6a630e ]---
[ 3.286872] Kernel panic - not syncing: Fatal exception
[ 3.292302] Kernel Offset: disabled
[ 3.295934] ---[ end Kernel panic - not syncing: Fatal exception

--
Regards/Gruss,
Boris.

ECO tip #101: Trim your mails when you reply.
--