On Tue, Apr 23, 2013 at 01:16:16AM +0000, Mike Verstegen wrote:
I'm troubleshooting an interesting problem where the i915_hotplug_work_func is eating up a lot of time in a couple of kworker threads. The interesting part of the problem is that this only happens with one particular model of monitor which I haven't gotten to the bottom of yet. But that's not the problem I'm trying to resolve.
This should be fixed in latest drm-next. Can you please test that?
One band-aid for this trouble is to disable the polling in the irq_event # echo "N" > /sys/module/drm_kms_helper/parameters/poll
That quiets down the kworker threads. Good
To make this survive across boots, I added the following to /etc/modprobe/local.conf options drm_kms_helper poll=N
On reboot, the poll is still enabled [root@localhost ~]# cat /sys/module/drm_kms_helper/parameters/poll Y
Looking at the drm_crtc_helper.c I see void drm_kms_helper_poll_init(struct drm_device *dev) { INIT_DELAYED_WORK(&dev->mode_config.output_poll_work, output_poll_execute); dev->mode_config.poll_enabled = true;
drm_kms_helper_poll_enable(dev);
}
If I'm reading that correctly, poll_enable is set to true on initialization unconditionally.
Questions:
- Am I using "options drm_kms_helper poll=N" correctly
- Is there a better way to have this option set to false on initialization?
You probably need to rebuild your initrd with your distro tools since drm_kms_helper is loaded really early. -Daniel