All of lore.kernel.org
 help / color / mirror / Atom feed
* FAILED: patch "[PATCH] powerpc/pseries: Fix unitialized timer reset on migration" failed to apply to 4.4-stable tree
@ 2018-10-02 12:18 gregkh
  2018-10-02 14:18 ` Michael Bringmann
  0 siblings, 1 reply; 7+ messages in thread
From: gregkh @ 2018-10-02 12:18 UTC (permalink / raw)
  To: mwb, mpe; +Cc: stable


The patch below does not apply to the 4.4-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable@vger.kernel.org>.

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

>From 8604895a34d92f5e186ceb931b0d1b384030ea3d Mon Sep 17 00:00:00 2001
From: Michael Bringmann <mwb@linux.vnet.ibm.com>
Date: Thu, 20 Sep 2018 11:45:13 -0500
Subject: [PATCH] powerpc/pseries: Fix unitialized timer reset on migration

After migration of a powerpc LPAR, the kernel executes code to
update the system state to reflect new platform characteristics.

Such changes include modifications to device tree properties provided
to the system by PHYP. Property notifications received by the
post_mobility_fixup() code are passed along to the kernel in general
through a call to of_update_property() which in turn passes such
events back to all modules through entries like the '.notifier_call'
function within the NUMA module.

When the NUMA module updates its state, it resets its event timer. If
this occurs after a previous call to stop_topology_update() or on a
system without VPHN enabled, the code runs into an unitialized timer
structure and crashes. This patch adds a safety check along this path
toward the problem code.

An example crash log is as follows.

  ibmvscsi 30000081: Re-enabling adapter!
  ------------[ cut here ]------------
  kernel BUG at kernel/time/timer.c:958!
  Oops: Exception in kernel mode, sig: 5 [#1]
  LE SMP NR_CPUS=2048 NUMA pSeries
  Modules linked in: nfsv3 nfs_acl nfs tcp_diag udp_diag inet_diag lockd unix_diag af_packet_diag netlink_diag grace fscache sunrpc xts vmx_crypto pseries_rng sg binfmt_misc ip_tables xfs libcrc32c sd_mod ibmvscsi ibmveth scsi_transport_srp dm_mirror dm_region_hash dm_log dm_mod
  CPU: 11 PID: 3067 Comm: drmgr Not tainted 4.17.0+ #179
  ...
  NIP mod_timer+0x4c/0x400
  LR  reset_topology_timer+0x40/0x60
  Call Trace:
    0xc0000003f9407830 (unreliable)
    reset_topology_timer+0x40/0x60
    dt_update_callback+0x100/0x120
    notifier_call_chain+0x90/0x100
    __blocking_notifier_call_chain+0x60/0x90
    of_property_notify+0x90/0xd0
    of_update_property+0x104/0x150
    update_dt_property+0xdc/0x1f0
    pseries_devicetree_update+0x2d0/0x510
    post_mobility_fixup+0x7c/0xf0
    migration_store+0xa4/0xc0
    kobj_attr_store+0x30/0x60
    sysfs_kf_write+0x64/0xa0
    kernfs_fop_write+0x16c/0x240
    __vfs_write+0x40/0x200
    vfs_write+0xc8/0x240
    ksys_write+0x5c/0x100
    system_call+0x58/0x6c

Fixes: 5d88aa85c00b ("powerpc/pseries: Update CPU maps when device tree is updated")
Cc: stable@vger.kernel.org # v3.10+
Signed-off-by: Michael Bringmann <mwb@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>

diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c
index 35ac5422903a..b5a71baedbc2 100644
--- a/arch/powerpc/mm/numa.c
+++ b/arch/powerpc/mm/numa.c
@@ -1452,7 +1452,8 @@ static struct timer_list topology_timer;
 
 static void reset_topology_timer(void)
 {
-	mod_timer(&topology_timer, jiffies + topology_timer_secs * HZ);
+	if (vphn_enabled)
+		mod_timer(&topology_timer, jiffies + topology_timer_secs * HZ);
 }
 
 #ifdef CONFIG_SMP

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: FAILED: patch "[PATCH] powerpc/pseries: Fix unitialized timer reset on migration" failed to apply to 4.4-stable tree
  2018-10-02 12:18 FAILED: patch "[PATCH] powerpc/pseries: Fix unitialized timer reset on migration" failed to apply to 4.4-stable tree gregkh
@ 2018-10-02 14:18 ` Michael Bringmann
  2018-10-02 16:27   ` Greg KH
  0 siblings, 1 reply; 7+ messages in thread
From: Michael Bringmann @ 2018-10-02 14:18 UTC (permalink / raw)
  To: gregkh, mpe; +Cc: stable

To backport the patc

    commit 8604895a34d92f5e186ceb931b0d1b384030ea3d

to the 4.4-stable tree, please try the following backport:

diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c
--- a/arch/powerpc/mm/numa.c	2018-10-02 09:03:06.232491410 -0500
+++ b/arch/powerpc/mm/numa.c	2018-10-02 09:04:17.152494472 -0500
@@ -1606,7 +1606,8 @@
 {
 	topology_timer.data = 0;
 	topology_timer.expires = jiffies + topology_timer_secs * HZ;
-	mod_timer(&topology_timer, topology_timer.expires);
+	if (vphn_enabled)
+		mod_timer(&topology_timer, topology_timer.expires);
 }
 
 #ifdef CONFIG_SMP



On 10/02/2018 07:18 AM, gregkh@linuxfoundation.org wrote:
> 
> The patch below does not apply to the 4.4-stable tree.
> If someone wants it applied there, or to any other stable or longterm
> tree, then please email the backport, including the original git commit
> id to <stable@vger.kernel.org>.
> 
> thanks,
> 
> greg k-h
> 
> ------------------ original commit in Linus's tree ------------------
> 
>>>From 8604895a34d92f5e186ceb931b0d1b384030ea3d Mon Sep 17 00:00:00 2001
> From: Michael Bringmann <mwb@linux.vnet.ibm.com>
> Date: Thu, 20 Sep 2018 11:45:13 -0500
> Subject: [PATCH] powerpc/pseries: Fix unitialized timer reset on migration
> 
> After migration of a powerpc LPAR, the kernel executes code to
> update the system state to reflect new platform characteristics.
> 
> Such changes include modifications to device tree properties provided
> to the system by PHYP. Property notifications received by the
> post_mobility_fixup() code are passed along to the kernel in general
> through a call to of_update_property() which in turn passes such
> events back to all modules through entries like the '.notifier_call'
> function within the NUMA module.
> 
> When the NUMA module updates its state, it resets its event timer. If
> this occurs after a previous call to stop_topology_update() or on a
> system without VPHN enabled, the code runs into an unitialized timer
> structure and crashes. This patch adds a safety check along this path
> toward the problem code.
> 
> An example crash log is as follows.
> 
>   ibmvscsi 30000081: Re-enabling adapter!
>   ------------[ cut here ]------------
>   kernel BUG at kernel/time/timer.c:958!
>   Oops: Exception in kernel mode, sig: 5 [#1]
>   LE SMP NR_CPUS=2048 NUMA pSeries
>   Modules linked in: nfsv3 nfs_acl nfs tcp_diag udp_diag inet_diag lockd unix_diag af_packet_diag netlink_diag grace fscache sunrpc xts vmx_crypto pseries_rng sg binfmt_misc ip_tables xfs libcrc32c sd_mod ibmvscsi ibmveth scsi_transport_srp dm_mirror dm_region_hash dm_log dm_mod
>   CPU: 11 PID: 3067 Comm: drmgr Not tainted 4.17.0+ #179
>   ...
>   NIP mod_timer+0x4c/0x400
>   LR  reset_topology_timer+0x40/0x60
>   Call Trace:
>     0xc0000003f9407830 (unreliable)
>     reset_topology_timer+0x40/0x60
>     dt_update_callback+0x100/0x120
>     notifier_call_chain+0x90/0x100
>     __blocking_notifier_call_chain+0x60/0x90
>     of_property_notify+0x90/0xd0
>     of_update_property+0x104/0x150
>     update_dt_property+0xdc/0x1f0
>     pseries_devicetree_update+0x2d0/0x510
>     post_mobility_fixup+0x7c/0xf0
>     migration_store+0xa4/0xc0
>     kobj_attr_store+0x30/0x60
>     sysfs_kf_write+0x64/0xa0
>     kernfs_fop_write+0x16c/0x240
>     __vfs_write+0x40/0x200
>     vfs_write+0xc8/0x240
>     ksys_write+0x5c/0x100
>     system_call+0x58/0x6c
> 
> Fixes: 5d88aa85c00b ("powerpc/pseries: Update CPU maps when device tree is updated")
> Cc: stable@vger.kernel.org # v3.10+
> Signed-off-by: Michael Bringmann <mwb@linux.vnet.ibm.com>
> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
> 
> diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c
> index 35ac5422903a..b5a71baedbc2 100644
> --- a/arch/powerpc/mm/numa.c
> +++ b/arch/powerpc/mm/numa.c
> @@ -1452,7 +1452,8 @@ static struct timer_list topology_timer;
> 
>  static void reset_topology_timer(void)
>  {
> -	mod_timer(&topology_timer, jiffies + topology_timer_secs * HZ);
> +	if (vphn_enabled)
> +		mod_timer(&topology_timer, jiffies + topology_timer_secs * HZ);
>  }
> 
>  #ifdef CONFIG_SMP
> 
> 

-- 
Michael W. Bringmann
Linux Technology Center
IBM Corporation
Tie-Line  363-5196
External: (512) 286-5196
Cell:       (512) 466-0650
mwb@linux.vnet.ibm.com

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: FAILED: patch "[PATCH] powerpc/pseries: Fix unitialized timer reset on migration" failed to apply to 4.4-stable tree
  2018-10-02 14:18 ` Michael Bringmann
@ 2018-10-02 16:27   ` Greg KH
  2018-10-02 18:30     ` Michael Bringmann
  0 siblings, 1 reply; 7+ messages in thread
From: Greg KH @ 2018-10-02 16:27 UTC (permalink / raw)
  To: Michael Bringmann; +Cc: mpe, stable

On Tue, Oct 02, 2018 at 09:18:26AM -0500, Michael Bringmann wrote:
> To backport the patc
> 
>     commit 8604895a34d92f5e186ceb931b0d1b384030ea3d
> 
> to the 4.4-stable tree, please try the following backport:

What about 4.14-stable and 4.9-stable?

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: FAILED: patch "[PATCH] powerpc/pseries: Fix unitialized timer reset on migration" failed to apply to 4.4-stable tree
  2018-10-02 16:27   ` Greg KH
@ 2018-10-02 18:30     ` Michael Bringmann
  2018-10-02 18:37       ` Greg KH
  0 siblings, 1 reply; 7+ messages in thread
From: Michael Bringmann @ 2018-10-02 18:30 UTC (permalink / raw)
  To: Greg KH; +Cc: mpe, stable

For 4.9-stable & 4.14-stable, we would adapt commit 8604895a34d92f5e186ceb931b0d1b384030ea3d
to the following:

diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c
--- a/arch/powerpc/mm/numa.c    2018-10-02 13:18:42.615084257 -0500
+++ b/arch/powerpc/mm/numa.c    2018-10-02 13:19:51.488209551 -0500
@@ -1469,7 +1469,8 @@
 {
        topology_timer.data = 0;
        topology_timer.expires = jiffies + 60 * HZ;
-       mod_timer(&topology_timer, topology_timer.expires);
+       if (vphn_enabled)
+               mod_timer(&topology_timer, topology_timer.expires);
 }
 
 #ifdef CONFIG_SMP




On 10/02/2018 11:27 AM, Greg KH wrote:
> On Tue, Oct 02, 2018 at 09:18:26AM -0500, Michael Bringmann wrote:
>> To backport the patc
>>
>>     commit 8604895a34d92f5e186ceb931b0d1b384030ea3d
>>
>> to the 4.4-stable tree, please try the following backport:
> 
> What about 4.14-stable and 4.9-stable?
> 
> thanks,
> 
> greg k-h
> 
> 

-- 
Michael W. Bringmann
Linux Technology Center
IBM Corporation
Tie-Line  363-5196
External: (512) 286-5196
Cell:       (512) 466-0650
mwb@linux.vnet.ibm.com

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: FAILED: patch "[PATCH] powerpc/pseries: Fix unitialized timer reset on migration" failed to apply to 4.4-stable tree
  2018-10-02 18:30     ` Michael Bringmann
@ 2018-10-02 18:37       ` Greg KH
  2018-10-02 19:36         ` Michael Bringmann
  0 siblings, 1 reply; 7+ messages in thread
From: Greg KH @ 2018-10-02 18:37 UTC (permalink / raw)
  To: Michael Bringmann; +Cc: mpe, stable

On Tue, Oct 02, 2018 at 01:30:28PM -0500, Michael Bringmann wrote:
> For 4.9-stable & 4.14-stable, we would adapt commit 8604895a34d92f5e186ceb931b0d1b384030ea3d
> to the following:
> 
> diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c
> --- a/arch/powerpc/mm/numa.c    2018-10-02 13:18:42.615084257 -0500
> +++ b/arch/powerpc/mm/numa.c    2018-10-02 13:19:51.488209551 -0500
> @@ -1469,7 +1469,8 @@
>  {
>         topology_timer.data = 0;
>         topology_timer.expires = jiffies + 60 * HZ;
> -       mod_timer(&topology_timer, topology_timer.expires);
> +       if (vphn_enabled)
> +               mod_timer(&topology_timer, topology_timer.expires);
>  }
>  
>  #ifdef CONFIG_SMP
> 
> 

Can you send these all in a format that I can actually apply them in?

This way does not work, sorry.

greg k-h

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: FAILED: patch "[PATCH] powerpc/pseries: Fix unitialized timer reset on migration" failed to apply to 4.4-stable tree
  2018-10-02 18:37       ` Greg KH
@ 2018-10-02 19:36         ` Michael Bringmann
  2018-10-02 19:42           ` Greg KH
  0 siblings, 1 reply; 7+ messages in thread
From: Michael Bringmann @ 2018-10-02 19:36 UTC (permalink / raw)
  To: Greg KH; +Cc: mpe, stable

[-- Attachment #1: Type: text/plain, Size: 1086 bytes --]

Providing backports as attachments.

On 10/02/2018 01:37 PM, Greg KH wrote:
> On Tue, Oct 02, 2018 at 01:30:28PM -0500, Michael Bringmann wrote:
>> For 4.9-stable & 4.14-stable, we would adapt commit 8604895a34d92f5e186ceb931b0d1b384030ea3d
>> to the following:
>>
>> diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c
>> --- a/arch/powerpc/mm/numa.c    2018-10-02 13:18:42.615084257 -0500
>> +++ b/arch/powerpc/mm/numa.c    2018-10-02 13:19:51.488209551 -0500
>> @@ -1469,7 +1469,8 @@
>>  {
>>         topology_timer.data = 0;
>>         topology_timer.expires = jiffies + 60 * HZ;
>> -       mod_timer(&topology_timer, topology_timer.expires);
>> +       if (vphn_enabled)
>> +               mod_timer(&topology_timer, topology_timer.expires);
>>  }
>>  
>>  #ifdef CONFIG_SMP
>>
>>
> 
> Can you send these all in a format that I can actually apply them in?
> 
> This way does not work, sorry.
> 
> greg k-h
> 
> 

-- 
Michael W. Bringmann
Linux Technology Center
IBM Corporation
Tie-Line  363-5196
External: (512) 286-5196
Cell:       (512) 466-0650
mwb@linux.vnet.ibm.com

[-- Attachment #2: 0001-powerpc-pseries-Fix-unitialized-timer-reset-on-migra.v4.4.patch --]
[-- Type: text/x-patch, Size: 373 bytes --]

--- numa.c.orig	2018-10-02 09:03:06.232491410 -0500
+++ numa.c	2018-10-02 09:04:17.152494472 -0500
@@ -1606,7 +1606,8 @@
 {
 	topology_timer.data = 0;
 	topology_timer.expires = jiffies + topology_timer_secs * HZ;
-	mod_timer(&topology_timer, topology_timer.expires);
+    if (vphn_enabled)
+	    mod_timer(&topology_timer, topology_timer.expires);
 }
 
 #ifdef CONFIG_SMP

[-- Attachment #3: 0001-powerpc-pseries-Fix-unitialized-timer-reset-on-migra.v4.9.patch --]
[-- Type: text/x-patch, Size: 3047 bytes --]

>From 8604895a34d92f5e186ceb931b0d1b384030ea3d Mon Sep 17 00:00:00 2001
From: Michael Bringmann <mwb@linux.vnet.ibm.com>
Date: Thu, 20 Sep 2018 11:45:13 -0500
Subject: [PATCH] powerpc/pseries: Fix unitialized timer reset on migration

After migration of a powerpc LPAR, the kernel executes code to
update the system state to reflect new platform characteristics.

Such changes include modifications to device tree properties provided
to the system by PHYP. Property notifications received by the
post_mobility_fixup() code are passed along to the kernel in general
through a call to of_update_property() which in turn passes such
events back to all modules through entries like the '.notifier_call'
function within the NUMA module.

When the NUMA module updates its state, it resets its event timer. If
this occurs after a previous call to stop_topology_update() or on a
system without VPHN enabled, the code runs into an unitialized timer
structure and crashes. This patch adds a safety check along this path
toward the problem code.

An example crash log is as follows.

  ibmvscsi 30000081: Re-enabling adapter!
  ------------[ cut here ]------------
  kernel BUG at kernel/time/timer.c:958!
  Oops: Exception in kernel mode, sig: 5 [#1]
  LE SMP NR_CPUS=2048 NUMA pSeries
  Modules linked in: nfsv3 nfs_acl nfs tcp_diag udp_diag inet_diag lockd unix_diag af_packet_diag netlink_diag grace fscache sunrpc xts vmx_crypto pseries_rng sg binfmt_misc ip_tables xfs libcrc32c sd_mod ibmvscsi ibmveth scsi_transport_srp dm_mirror dm_region_hash dm_log dm_mod
  CPU: 11 PID: 3067 Comm: drmgr Not tainted 4.17.0+ #179
  ...
  NIP mod_timer+0x4c/0x400
  LR  reset_topology_timer+0x40/0x60
  Call Trace:
    0xc0000003f9407830 (unreliable)
    reset_topology_timer+0x40/0x60
    dt_update_callback+0x100/0x120
    notifier_call_chain+0x90/0x100
    __blocking_notifier_call_chain+0x60/0x90
    of_property_notify+0x90/0xd0
    of_update_property+0x104/0x150
    update_dt_property+0xdc/0x1f0
    pseries_devicetree_update+0x2d0/0x510
    post_mobility_fixup+0x7c/0xf0
    migration_store+0xa4/0xc0
    kobj_attr_store+0x30/0x60
    sysfs_kf_write+0x64/0xa0
    kernfs_fop_write+0x16c/0x240
    __vfs_write+0x40/0x200
    vfs_write+0xc8/0x240
    ksys_write+0x5c/0x100
    system_call+0x58/0x6c

Fixes: 5d88aa85c00b ("powerpc/pseries: Update CPU maps when device tree is updated")
Cc: stable@vger.kernel.org # v3.10+
Signed-off-by: Michael Bringmann <mwb@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
---
 arch/powerpc/mm/numa.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c
--- a/arch/powerpc/mm/numa.c	2018-10-02 13:18:42.615084257 -0500
+++ b/arch/powerpc/mm/numa.c	2018-10-02 13:19:51.488209551 -0500
@@ -1469,7 +1469,8 @@
 {
 	topology_timer.data = 0;
 	topology_timer.expires = jiffies + 60 * HZ;
-	mod_timer(&topology_timer, topology_timer.expires);
+	if (vphn_enabled)
+		mod_timer(&topology_timer, topology_timer.expires);
 }
 
 #ifdef CONFIG_SMP

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: FAILED: patch "[PATCH] powerpc/pseries: Fix unitialized timer reset on migration" failed to apply to 4.4-stable tree
  2018-10-02 19:36         ` Michael Bringmann
@ 2018-10-02 19:42           ` Greg KH
  0 siblings, 0 replies; 7+ messages in thread
From: Greg KH @ 2018-10-02 19:42 UTC (permalink / raw)
  To: Michael Bringmann; +Cc: mpe, stable

On Tue, Oct 02, 2018 at 02:36:01PM -0500, Michael Bringmann wrote:
> --- numa.c.orig	2018-10-02 09:03:06.232491410 -0500
> +++ numa.c	2018-10-02 09:04:17.152494472 -0500
> @@ -1606,7 +1606,8 @@
>  {
>  	topology_timer.data = 0;
>  	topology_timer.expires = jiffies + topology_timer_secs * HZ;
> -	mod_timer(&topology_timer, topology_timer.expires);
> +    if (vphn_enabled)
> +	    mod_timer(&topology_timer, topology_timer.expires);
>  }
>  
>  #ifdef CONFIG_SMP


That's not a patch I can apply :(

Please send one-email-per-patch, in the correct format.  And not as an
attachment.  Come on, you know better than this...

greg k-h

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2018-10-03  2:27 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-02 12:18 FAILED: patch "[PATCH] powerpc/pseries: Fix unitialized timer reset on migration" failed to apply to 4.4-stable tree gregkh
2018-10-02 14:18 ` Michael Bringmann
2018-10-02 16:27   ` Greg KH
2018-10-02 18:30     ` Michael Bringmann
2018-10-02 18:37       ` Greg KH
2018-10-02 19:36         ` Michael Bringmann
2018-10-02 19:42           ` Greg KH

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.