Greetings.
On an administered server, I noticed that there's a constant load
around 0.70 when running kernels 3.10 and 3.12, even if
the system is doing nothing, and in single user mode.
Culprit seems to be the process 'khubd'.
No such effect when running kernels 3.4 or 3.14.
I reverse bisected linux-stable and found that the following commit
fixes it for me, for both kernel 3.10 and 3.12:
[08d1dec6f4054e3613f32051d9b149d4203ce0d2] usb:hub set hub->change_bits when over-current happens
Could that commit be backported to the stable 3.10 and 3.12 series?
(Disclaimer: I'm not a programmer, but I'd be happy to help with any testing involved)
Regards
Ingmar
--------------------------------------------------------------------------
$ git diff ac5166bcdb43889a5bd837f5076b78049e1f8bca 08d1dec6f4054e3613f32051d9b149d4203ce0d2
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index c1422a0..babba88 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -1147,7 +1147,8 @@ static void hub_activate(struct usb_hub *hub, enum hub_activation_type type)
/* Tell khubd to disconnect the device or
* check for a new connection
*/
- if (udev || (portstatus & USB_PORT_STAT_CONNECTION))
+ if (udev || (portstatus & USB_PORT_STAT_CONNECTION) ||
+ (portstatus & USB_PORT_STAT_OVERCURRENT))
set_bit(port1, hub->change_bits);
} else if (portstatus & USB_PORT_STAT_ENABLE) {