FAILED: patch "[PATCH] mm/memory_hotplug: fix unpaired mem_hotplug_begin/done" failed to apply to 4.19-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 4.19-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 <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From b4223a510e2ab1bf0f971d50af7c1431014b25ad Mon Sep 17 00:00:00 2001
From: Jia He <[email protected]>
Date: Tue, 11 Aug 2020 18:32:20 -0700
Subject: [PATCH] mm/memory_hotplug: fix unpaired mem_hotplug_begin/done
When check_memblock_offlined_cb() returns failed rc(e.g. the memblock is online at that time), mem_hotplug_begin/done is unpaired in such case.
Therefore a warning:
Call Trace: percpu_up_write+0x33/0x40 try_remove_memory+0x66/0x120 ? _cond_resched+0x19/0x30 remove_memory+0x2b/0x40 dev_dax_kmem_remove+0x36/0x72 [kmem] device_release_driver_internal+0xf0/0x1c0 device_release_driver+0x12/0x20 bus_remove_device+0xe1/0x150 device_del+0x17b/0x3e0 unregister_dev_dax+0x29/0x60 devm_action_release+0x15/0x20 release_nodes+0x19a/0x1e0 devres_release_all+0x3f/0x50 device_release_driver_internal+0x100/0x1c0 driver_detach+0x4c/0x8f bus_remove_driver+0x5c/0xd0 driver_unregister+0x31/0x50 dax_pmem_exit+0x10/0xfe0 [dax_pmem]
mm/memory_hotplug.c +2 -3
@@ -1757,7 +1757,7 @@ static int __ref try_remove_memory(int nid, u64 start, u64 size)*/ rc =walk_memory_blocks (start, size,NULL , check_memblock_offlined_cb);if (rc) - goto done; +return rc;/* remove memmap entry */ firmware_map_remove (start, start + size,"System RAM" );
@@ -1781,9 +1781,8 @@ static int __ref try_remove_memory(int nid, u64 start, u64 size)try_offline_node (nid); -done:mem_hotplug_done (); -return rc; +return 0 ; }/**
Hi Greg,
If anybody wants to backport it to stable tree, there are 2 pre-condition for this commit ("[PATCH] mm/memory_hotplug: fix unpaired mem_hotplug_begin/done")
1. eca499ab3 ("mm/hotplug: make remove_memory() interface usable") applied in v5.2, it disabled the BUG() when check_memblock_offlined_cb() failed.
2. f1037ec0c ("mm/memory_hotplug: fix remove_memory() lockdep splat") in v5.5, it introduced the unpair but depends on eca499ab3
I checked https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/mm/memory_hotplug.c?h=linux-4.19.y#n1913.
Looks like stable tree v4.19 hasn't applied eca499ab3 but applied f1037ec0c.
Hence I don't think v4.19 needs this patch.
--
Cheers,
Justin (Jia He)
Quoted 117 lines
-----Original Message-----
From: [email protected] <[email protected]>
Sent: Wednesday, August 19, 2020 8:29 PM
To: Justin He <[email protected]>; [email protected]; Kaly Xin <[email protected]>; [email protected]; [email protected]; [email protected]; Catalin Marinas <[email protected]>; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]
Cc: [email protected]
Subject: FAILED: patch "[PATCH]mm/memory_hotplug: fix unpaired mem_hotplug_begin/done" failed to apply to 4.19-stable treeThe patch below does not apply to the 4.19-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 <[email protected]>.thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From
b4223a510e2ab1bf0f971d50af7c1431014b25adMon Sep 17 00:00:00 2001
From: Jia He <[email protected]>
Date: Tue, 11 Aug 2020 18:32:20 -0700
Subject: [PATCH]mm/memory_hotplug: fix unpaired mem_hotplug_begin/doneWhen
check_memblock_offlined_cb()returns failed rc(e.g. the memblock is online at that time), mem_hotplug_begin/done is unpaired in such case.Therefore a warning:
Call Trace: percpu_up_write+0x33/0x40 try_remove_memory+0x66/0x120 ? _cond_resched+0x19/0x30 remove_memory+0x2b/0x40 dev_dax_kmem_remove+0x36/0x72 [kmem] device_release_driver_internal+0xf0/0x1c0 device_release_driver+0x12/0x20 bus_remove_device+0xe1/0x150 device_del+0x17b/0x3e0 unregister_dev_dax+0x29/0x60 devm_action_release+0x15/0x20 release_nodes+0x19a/0x1e0 devres_release_all+0x3f/0x50 device_release_driver_internal+0x100/0x1c0 driver_detach+0x4c/0x8f bus_remove_driver+0x5c/0xd0 driver_unregister+0x31/0x50 dax_pmem_exit+0x10/0xfe0 [dax_pmem]Fixes f1037ec0cc8a ("mm/memory_hotplug: fix remove_memory() lockdepsplat")
Signed-off-by Jia He <[email protected]>Signed-off-by Andrew Morton <[email protected]>Reviewed-by David Hildenbrand <[email protected]>Acked-by Michal Hocko <[email protected]>Acked-by Dan Williams <[email protected]>Cc <[email protected]>[5.6+]Cc Andy Lutomirski <[email protected]>Cc Baoquan He <[email protected]>Cc Borislav Petkov <[email protected]>Cc Catalin Marinas <[email protected]>Cc Chuhong Yuan <[email protected]>Cc Dave Hansen <[email protected]>Cc Dave Jiang <[email protected]>Cc Fenghua Yu <[email protected]>Cc "H. Peter Anvin" <[email protected]>Cc Ingo Molnar <[email protected]>Cc Jonathan Cameron <[email protected]>Cc Kaly Xin <[email protected]>Cc Logan Gunthorpe <[email protected]>Cc Masahiro Yamada <[email protected]>Cc Mike Rapoport <[email protected]>Cc Peter Zijlstra <[email protected]>Cc Rich Felker <[email protected]>Cc Thomas Gleixner <[email protected]>Cc Tony Luck <[email protected]>Cc Vishal Verma <[email protected]>Cc Will Deacon <[email protected]>Cc Yoshinori Sato <[email protected]>Signed-off-by Linus Torvalds <[email protected]>mm/memory_hotplug.c +1
-1@@ -1757,7 +1757,7 @@ static int __ref try_remove_memory(int nid, u64start, u64 size) */ rc =walk_memory_blocks (start, size,NULL , check_memblock_offlined_cb);if (rc) -goto done; +return rc;/* remove memmap entry */
firmware_map_remove(start, start + size, "System RAM");mm/memory_hotplug.c +1
-2@@ -1781,9 +1781,8 @@ static int __ref try_remove_memory(int nid, u64 start, u64 size)try_offline_node (nid); -done:mem_hotplug_done (); -return rc; +return 0 ; }
Quoted 1 line
/**
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
[email protected]
maintainerQuoted 4 lines · Justin He
Hi Greg,
If anybody wants to backport it to stable tree, there are 2 pre-condition for this commit ("[PATCH]mm/memory_hotplug: fix unpaired mem_hotplug_begin/done")
Quoted 8 lines
1.
eca499ab3("mm/hotplug: makeremove_memory()interface usable") applied in v5.2, it disabled theBUG()whencheck_memblock_offlined_cb()failed.
2.f1037ec0c("mm/memory_hotplug: fixremove_memory()lockdep splat") in v5.5, it introduced the unpair but depends oneca499ab3I checked https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/mm/memory_hotplug.c?h=linux-4.19.y#n1913.
Looks like stable tree v4.19 hasn't appliedeca499ab3but appliedf1037ec0c.
Hence I don't think v4.19 needs this patch.
Thanks, I'll just leave this out of 4.19.y for now then.
greg k-h