From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753291AbaAINUw (ORCPT ); Thu, 9 Jan 2014 08:20:52 -0500 Received: from mailout3.samsung.com ([203.254.224.33]:24890 "EHLO mailout3.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751321AbaAINUm (ORCPT ); Thu, 9 Jan 2014 08:20:42 -0500 X-AuditID: cbfee61b-b7f456d000006dfd-dc-52cea228ae9c From: Bartlomiej Zolnierkiewicz To: Jiang Liu Cc: " Rafael J. Wysocki" , " H. Peter Anvin" , Len Brown , Len Brown , linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/2] Revert "intel_idle: mark states tables with __initdata tag" Date: Thu, 09 Jan 2014 14:20:22 +0100 Message-id: <1987543.MckBKZrloE@amdc1032> User-Agent: KMail/4.8.4 (Linux/3.2.0-54-generic-pae; KDE/4.8.5; i686; ; ) In-reply-to: <1389252628-1033-1-git-send-email-jiang.liu@linux.intel.com> References: <1389252628-1033-1-git-send-email-jiang.liu@linux.intel.com> MIME-version: 1.0 Content-transfer-encoding: 7Bit Content-type: text/plain; charset=ISO-8859-1 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrCLMWRmVeSWpSXmKPExsVy+t9jQV2NReeCDKa22Fjc/HGZxWLW9v1A YspeJoudD9+yWVzeNYfN4nPvEUaLxyvesjuweyze85LJY9OqTjaPeScDPT5vkgtgieKySUnN ySxLLdK3S+DK+P9nCnPBfoOK/s3mDYztGl2MnBwSAiYSfR27WCBsMYkL99azdTFycQgJTGeU uNyzmBnCaWGSOHbxLBtIFZuAlcTE9lWMILaIgKZEw85TTCA2s8AtRonP+8K6GDk4hAXCJB5c 5QQJswioSlx7f4wdxOYFKp/a+wjMFhXwlNixfSXYSE4ge2//c7AjhAQ8JI5Nv8oCUS8o8WPy PRaI8fIS+/ZPZYWwdST2t05jm8AoMAtJ2SwkZbOQlC1gZF7FKJpakFxQnJSea6RXnJhbXJqX rpecn7uJERzWz6R3MK5qsDjEKMDBqMTDu6L4bJAQa2JZcWXuIUYJDmYlEd6pjeeChHhTEiur Uovy44tKc1KLDzFKc7AoifMebLUOFBJITyxJzU5NLUgtgskycXBKNTCyNV4wOL3/7Eeeu39r HOwexolynJzG1JV3UF3o/N/kwrqK03xR4dui43f/NV59bwfzzTcMCnubu+vunK56t2q/AKuS /Mlpgbd+9YaZBBy07XZVPZXr7isqwWoXUZ7GfWb/fRYtl6bkzPYgVsOJ1bW7/y4oN/4+Ze+d vpX/tG9am36Y1MEl8VCJpTgj0VCLuag4EQBB2tUQZwIAAA== Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, On Thursday, January 09, 2014 03:30:26 PM Jiang Liu wrote: > This reverts commit 9d046ccb98085f1d437585f84748c783a04ba240. > > Commit 9d046ccb98085 marks all state tables with __initdata, but > the state table may be accessed when doing CPU online, which then > causing system crash as below: Uh, sorry for that - it most likely got missed since I tested it together with intel_idle_cpu_init() removal patches (they are in Rafael's PM tree now). Anyway, better than reverting it altogether would be to fix it by backporting the following patch: http://lkml.org/lkml/2013/12/20/372 Could you please try to solve the issue this way? PS Please add commit author to cc: when posting reverts. Thanks. Best regards, -- Bartlomiej Zolnierkiewicz Samsung R&D Institute Poland Samsung Electronics > [ 204.188841] BUG: unable to handle kernel paging request at ffffffff8227cce8 > [ 204.196844] IP: [] intel_idle_cpu_init+0x40/0x130 > [ 204.203996] PGD 1e11067 PUD 1e12063 PMD 455859063 PTE 800000000227c062 > [ 204.211638] Oops: 0000 [#1] SMP DEBUG_PAGEALLOC > [ 204.216975] Modules linked in: x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel kvm crct10dif_pclmul crc32_pclmul ghash_clmulni_intel aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd gpio_ich microcode joydev sb_edac edac_core ipmi_si lpc_ich ipmi_msghandler lp tpm_tis parport wmi mac_hid acpi_pad hid_generic ixgbe isci usbhid dca hid libsas ptp ahci libahci scsi_transport_sas megaraid_sas pps_core mdio > [ 204.262815] CPU: 11 PID: 1489 Comm: bash Not tainted 3.13.0-rc7+ #48 > [ 204.269993] Hardware name: Intel Corporation BRICKLAND/BRICKLAND, BIOS BRIVTIN1.86B.0047.L09.1312061514 12/06/2013 > [ 204.281646] task: ffff8804303a24a0 ti: ffff880440fac000 task.ti: ffff880440fac000 > [ 204.290311] RIP: 0010:[] [] intel_idle_cpu_init+0x40/0x130 > [ 204.300184] RSP: 0018:ffff880440fadd28 EFLAGS: 00010286 > [ 204.306192] RAX: ffffffff8227cca0 RBX: ffffe8fff1a03400 RCX: 0000000000000007 > [ 204.314244] RDX: ffff88045f400000 RSI: 0000000000000009 RDI: 0000000000001120 > [ 204.322296] RBP: ffff880440fadd38 R08: 0000000000000000 R09: 0000000000000001 > [ 204.330411] R10: 0000000000000001 R11: 0000000000000000 R12: 000000000000001e > [ 204.338482] R13: 00000000ffffffdb R14: 0000000000000001 R15: 0000000000000000 > [ 204.346743] FS: 00007f64f7b0c740(0000) GS:ffff88045ce00000(0000) knlGS:0000000000000000 > [ 204.355919] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > [ 204.362449] CR2: ffffffff8227cce8 CR3: 0000000444ab0000 CR4: 00000000001407e0 > [ 204.370520] Stack: > [ 204.372853] 000000000000001e ffffffff81f10240 ffff880440fadd50 ffffffff814aa307 > [ 204.381519] ffffffff81ea80e0 ffff880440fadda0 ffffffff8185a230 0000000000000000 > [ 204.390196] 000000000000001e 0000000000000002 0000000000000002 0000000000000000 > [ 204.398856] Call Trace: > [ 204.401683] [] cpu_hotplug_notify+0x57/0x70 > [ 204.408638] [] notifier_call_chain+0x100/0x150 > [ 204.415553] [] __raw_notifier_call_chain+0xe/0x10 > [ 204.422772] [] cpu_notify+0x23/0x50 > [ 204.428616] [] _cpu_up+0x132/0x1a0 > [ 204.434361] [] cpu_up+0x7d/0xa0 > [ 204.439819] [] cpu_subsys_online+0x3c/0x90 > [ 204.446345] [] device_online+0x45/0xa0 > [ 204.452471] [] online_store+0x4e/0x80 > [ 204.458511] [] dev_attr_store+0x18/0x30 > [ 204.464744] [] sysfs_write_file+0x151/0x1c0 > [ 204.471681] [] vfs_write+0xe1/0x160 > [ 204.477524] [] SyS_write+0x4c/0x90 > [ 204.483270] [] system_call_fastpath+0x1a/0x1f > [ 204.490081] Code: 41 54 41 89 fc 8b 3d 48 25 85 01 53 48 8b 1d 30 25 85 01 48 03 1c c5 40 90 fb 81 48 8b 05 19 25 85 01 c7 43 0c 01 00 00 00 66 90 <48> 83 78 48 00 74 4f 41 83 c0 01 41 39 f0 7e 10 48 c7 c7 38 79 > [ 204.515723] RIP [] intel_idle_cpu_init+0x40/0x130 > [ 204.522996] RSP > [ 204.526976] CR2: ffffffff8227cce8 > [ 204.530766] ---[ end trace 336f56cc3d1cfc8c ]--- > > Signed-off-by: Jiang Liu > Cc: # 3.12+ > --- > drivers/idle/intel_idle.c | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c > index f80b700..6f456f0 100644 > --- a/drivers/idle/intel_idle.c > +++ b/drivers/idle/intel_idle.c > @@ -123,7 +123,7 @@ static struct cpuidle_state *cpuidle_state_table; > * which is also the index into the MWAIT hint array. > * Thus C0 is a dummy. > */ > -static struct cpuidle_state nehalem_cstates[] __initdata = { > +static struct cpuidle_state nehalem_cstates[] = { > { > .name = "C1-NHM", > .desc = "MWAIT 0x00", > @@ -156,7 +156,7 @@ static struct cpuidle_state nehalem_cstates[] __initdata = { > .enter = NULL } > }; > > -static struct cpuidle_state snb_cstates[] __initdata = { > +static struct cpuidle_state snb_cstates[] = { > { > .name = "C1-SNB", > .desc = "MWAIT 0x00", > @@ -196,7 +196,7 @@ static struct cpuidle_state snb_cstates[] __initdata = { > .enter = NULL } > }; > > -static struct cpuidle_state ivb_cstates[] __initdata = { > +static struct cpuidle_state ivb_cstates[] = { > { > .name = "C1-IVB", > .desc = "MWAIT 0x00", > @@ -236,7 +236,7 @@ static struct cpuidle_state ivb_cstates[] __initdata = { > .enter = NULL } > }; > > -static struct cpuidle_state hsw_cstates[] __initdata = { > +static struct cpuidle_state hsw_cstates[] = { > { > .name = "C1-HSW", > .desc = "MWAIT 0x00", > @@ -297,7 +297,7 @@ static struct cpuidle_state hsw_cstates[] __initdata = { > .enter = NULL } > }; > > -static struct cpuidle_state atom_cstates[] __initdata = { > +static struct cpuidle_state atom_cstates[] = { > { > .name = "C1E-ATM", > .desc = "MWAIT 0x00",