]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
ipmi_si: Only schedule continuously in the thread in maintenance mode
authorCorey Minyard <cminyard@mvista.com>
Fri, 2 Aug 2019 12:31:36 +0000 (07:31 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 7 Oct 2019 16:53:10 +0000 (18:53 +0200)
commit7522f96fa4cbdc88a4ca762c025396e581a1087b
treeb16d49e827d7e617339929f3784d02326fd51c54
parent59a8932a1fb63abb00a9e2cb6781d031d45b7c99
ipmi_si: Only schedule continuously in the thread in maintenance mode

[ Upstream commit 340ff31ab00bca5c15915e70ad9ada3030c98cf8 ]

ipmi_thread() uses back-to-back schedule() to poll for command
completion which, on some machines, can push up CPU consumption and
heavily tax the scheduler locks leading to noticeable overall
performance degradation.

This was originally added so firmware updates through IPMI would
complete in a timely manner.  But we can't kill the scheduler
locks for that one use case.

Instead, only run schedule() continuously in maintenance mode,
where firmware updates should run.

Signed-off-by: Corey Minyard <cminyard@mvista.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/char/ipmi/ipmi_si_intf.c