]> git.baikalelectronics.ru Git - kernel.git/commit
powerpc/pseries/mobility: use cond_resched when updating device tree
authorNathan Lynch <nathanl@linux.ibm.com>
Fri, 2 Aug 2019 19:29:26 +0000 (14:29 -0500)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 20 Aug 2019 11:22:28 +0000 (21:22 +1000)
commit0b66776be236651b6569447bd9e81571357b5880
tree78cfdb54c0543c12ecd9825a0bbcc75e22dfd5bf
parentd5375186a5a226a5c81df8bee7a7631a6f53151c
powerpc/pseries/mobility: use cond_resched when updating device tree

After a partition migration, pseries_devicetree_update() processes
changes to the device tree communicated from the platform to
Linux. This is a relatively heavyweight operation, with multiple
device tree searches, memory allocations, and conversations with
partition firmware.

There's a few levels of nested loops which are bounded only by
decisions made by the platform, outside of Linux's control, and indeed
we have seen RCU stalls on large systems while executing this call
graph. Use cond_resched() in these loops so that the cpu is yielded
when needed.

Signed-off-by: Nathan Lynch <nathanl@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20190802192926.19277-4-nathanl@linux.ibm.com
arch/powerpc/platforms/pseries/mobility.c