]> git.baikalelectronics.ru Git - kernel.git/commit
net/mlx4_core: Relieve cpu load average on the port sending flow
authorJack Morgenstein <jackm@dev.mellanox.co.il>
Wed, 22 Jul 2015 13:53:48 +0000 (16:53 +0300)
committerDavid S. Miller <davem@davemloft.net>
Sun, 26 Jul 2015 23:29:25 +0000 (16:29 -0700)
commit8d86b5b912c9df49cc3f3651af63aa24b1dcb316
tree793f828113af4855d38aae0346187b9a00c09e8f
parent5ce3882f6a08a9c2ac786cf76b52965aacc22951
net/mlx4_core: Relieve cpu load average on the port sending flow

When a port is not attached, the FW requires a longer than usual time to
execute the SENSE_PORT command. In the command flow, the
wait_for_completion_timeout call used in mlx4_cmd_wait puts the kernel
thread into the uninterruptible state during this time. This, in turn,
due to the computation method, causes the CPU load average to increase.

Fix this by using wait_for_completion_interruptible_timeout() for the
SENSE_PORT command, which puts the thread in the interruptible state.
In this state, the thread does not contribute to the CPU load average.

Treat the interrupted case as if the SENSE_PORT command returned
port_type = NONE.

Fix suggested by Gideon Naim <gideonn@mellanox.com> and
Bart Van Assche <bart.vanassche@sandisk.com>.

Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlx4/cmd.c