I am running Arch Linux and have an issue with my mouse (Logitech MX518 Gaming mouse). I would like to lower its polling rate. Right now, it is polling every single ms, which causes higher CPU usage in most applications, and is a bit of overkill for my use case. I've established the polling rate is 1ms, by analyzing the output of cat /sys/kernel/debug/usb/devices:
T: Bus=02 Lev=04 Prnt=09 Port=02 Cnt=02 Dev#= 11 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=046d ProdID=c08e Rev=40.00
S: Manufacturer=Logitech
S: Product=MX518 Gaming Mouse
S: SerialNumber=0C6338513038
C:* #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr=300mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=01 Prot=02 Driver=usbhid
E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=1ms
I:* If#= 1 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
E: Ad=82(I) Atr=03(Int.) MxPS= 20 Ivl=1ms
In particular, Ivl=1ms shows it is polling every ms, also verified using evhz, a tool that can report the polling rate of a mouse. I have modified the kernel parameters to set a fixed mouse polling rate, by adding usbhid.mousepoll=8. Indeed, after rebooting, it seems the driver parameter is correctly set:
$ systool -m usbhid -A mousepoll
Module = "usbhid"
mousepoll = "8"
Before, mousepoll was set to 0, which means 'automatic', and 8 should mean poll every 8ms, which is the same as the poll rate of my old mouse. However, the mouse is still polling every ms; evhz shows a pollling frequency of 1000Hz, and the output of cat /sys/kernel/debug/usb/devices is the same as before. In other words setting the kernel parameter did not have any effect.
Is there something I am missing here? How can I lower the polling rate of my mouse?