Patch "powerpc/book3s64/hash: Add cond_resched to avoid soft lockup warning" has been added to the 4.9-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    powerpc/book3s64/hash: Add cond_resched to avoid soft lockup warning

to the 4.9-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     powerpc-book3s64-hash-add-cond_resched-to-avoid-soft.patch
and it can be found in the queue-4.9 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit a8564a0e6cc504f6214786451056deb8c2c30eb1
Author: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxx>
Date:   Tue Oct 1 14:16:56 2019 +0530

    powerpc/book3s64/hash: Add cond_resched to avoid soft lockup warning
    
    [ Upstream commit 16f6b67cf03cb43db7104acb2ca877bdc2606c92 ]
    
    With large memory (8TB and more) hotplug, we can get soft lockup
    warnings as below. These were caused by a long loop without any
    explicit cond_resched which is a problem for !PREEMPT kernels.
    
    Avoid this using cond_resched() while inserting hash page table
    entries. We already do similar cond_resched() in __add_pages(), see
    commit f64ac5e6e306 ("mm, memory_hotplug: add scheduling point to
    __add_pages").
    
      rcu:     3-....: (24002 ticks this GP) idle=13e/1/0x4000000000000002 softirq=722/722 fqs=12001
       (t=24003 jiffies g=4285 q=2002)
      NMI backtrace for cpu 3
      CPU: 3 PID: 3870 Comm: ndctl Not tainted 5.3.0-197.18-default+ #2
      Call Trace:
        dump_stack+0xb0/0xf4 (unreliable)
        nmi_cpu_backtrace+0x124/0x130
        nmi_trigger_cpumask_backtrace+0x1ac/0x1f0
        arch_trigger_cpumask_backtrace+0x28/0x3c
        rcu_dump_cpu_stacks+0xf8/0x154
        rcu_sched_clock_irq+0x878/0xb40
        update_process_times+0x48/0x90
        tick_sched_handle.isra.16+0x4c/0x80
        tick_sched_timer+0x68/0xe0
        __hrtimer_run_queues+0x180/0x430
        hrtimer_interrupt+0x110/0x300
        timer_interrupt+0x108/0x2f0
        decrementer_common+0x114/0x120
      --- interrupt: 901 at arch_add_memory+0xc0/0x130
          LR = arch_add_memory+0x74/0x130
        memremap_pages+0x494/0x650
        devm_memremap_pages+0x3c/0xa0
        pmem_attach_disk+0x188/0x750
        nvdimm_bus_probe+0xac/0x2c0
        really_probe+0x148/0x570
        driver_probe_device+0x19c/0x1d0
        device_driver_attach+0xcc/0x100
        bind_store+0x134/0x1c0
        drv_attr_store+0x44/0x60
        sysfs_kf_write+0x64/0x90
        kernfs_fop_write+0x1a0/0x270
        __vfs_write+0x3c/0x70
        vfs_write+0xd0/0x260
        ksys_write+0xdc/0x130
        system_call+0x5c/0x68
    
    Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxx>
    Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20191001084656.31277-1-aneesh.kumar@xxxxxxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c
index de1d8cdd2991..2dc1fc445f35 100644
--- a/arch/powerpc/mm/hash_utils_64.c
+++ b/arch/powerpc/mm/hash_utils_64.c
@@ -300,6 +300,7 @@ int htab_bolt_mapping(unsigned long vstart, unsigned long vend,
 		if (ret < 0)
 			break;
 
+		cond_resched();
 #ifdef CONFIG_DEBUG_PAGEALLOC
 		if (debug_pagealloc_enabled() &&
 			(paddr >> PAGE_SHIFT) < linear_map_hash_count)



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux