]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.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)
committerKleber Sacilotto de Souza <kleber.souza@canonical.com>
Wed, 16 Oct 2019 09:55:40 +0000 (11:55 +0200)
commit8ab74aea1324d488cfa72729733b009d389d5b95
treedd147669e9ae061e8d9b4220157953a177eb782d
parent43bb1fc0c65dfe06f6f4f844bc9e520f0e4cc1fd
ipmi_si: Only schedule continuously in the thread in maintenance mode

BugLink: https://bugs.launchpad.net/bugs/1848274
[ 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>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
drivers/char/ipmi/ipmi_si_intf.c