Red Hat Bugzilla – Bug 117346
XFree86 claims that KDKBDREP ioctl() is not working.
Last modified: 2007-11-30 17:10:37 EST
I am seeing
(EE) lnx_kbd.c: Unable to set the keyboard repeat rate using the
KDKBDREP ioctl(). This may be caused by a buggy kernel.
in my X logs. The error message itself was added as a part of a bug
115769 fix, but AFAIU bug 115769 comment #41 the message is indeed an
indication of a kernel bug.
I am currently running XFree86-4.3.0-62 and kernel-2.6.3-1.116
(recompiled with kernel-2.6.3-i686.config as .config with no changes
except for enabling CONFIG_SOFTWARE_SUSPEND).
This problem could occur for two reasons. One is if the kernel
you happen to be using, does not support the KDKBDREP ioctl at all,
in which case the kernel should be updated to a current kernel
which supports this ioctl. Our current kernels do support this
ioctl however, so that shouldn't be the problem.
The other problem, is if the ioctl fails for some reason. That
could either be a kernel bug, or it could possibly be the ioctl
being called with invalid data or somesuch.
Just for an additional datapoint, if you use the official Red Hat
kernel build, does this problem occur, or does it only occur if you
recompile the kernel yourself?
Thanks in advance.
> Just for an additional datapoint, if you use the official Red Hat
> kernel build, does this problem occur
I rebooted to 2.6.3-1.118 official kernel and I still see
(EE) lnx_kbd.c: Unable to set the keyboard repeat rate using the KDKBDREP
ioctl(). This may be caused by a buggy kernel.
in my X log.
Our kernels have this ioctl, so I'm not sure why you should see this
message under our kernels. In the future, I'll add some additional
debugging data to see exactly why the ioctl fails.
Reassigning to myself for now, since there's not any proof of kernel
bug present. It could be a legitimate reason the ioctl fails, so
before we can consider it a kernel bug we need more data.
I am _not_ seeing this with xorg-x11-0.0.6.6-0.0.2004_03_11.9
The patch to add the warnings/etc. to the log file are currently
disabled in xorg-x11. ;o)
I'll re-enable them in the future though when I'm investigating this
area of code again, and add the ioctl failure errno's to the log,
so we can tell why the ioctl fails. It could be due to kernel bug,
or it could be due to X calling the ioctl incorrectly perhaps.
Since this area of code has had some problems, I'd really like to
ensure the current code is 100% correct, since I doubt the original
authors ever even tested it before putting it in XFree86, since
it _never_ worked until we fixed it. ;o)
When I play with it again, I'll update this report also, as a headsup.
Thanks for the update also.
I've updated the messages to be X_WARNING instead of X_ERROR, and
also reduced the alarmist nature of the messages.