Re: [announce] Intel announces the PowerTOP utility for Linux
Ondrej Zary wrote: On Tuesday 15 May 2007 02:13:15 Robert Hancock wrote: Looks like the radeon driver has the same problem as the i915 driver mentioned on the known problems page - I get 60 wakeups/sec from it on my Compaq X1000 laptop (Radeon 9000 graphics) while in X, which essentially prevents entry into C3. And Rage 128 too. I have a Radeon 7500 in my laptop. The attached hack to disable the VBLANK interrupt works for me. I don't know if it breaks 3D, I've only tried 2D. Michal diff --git a/drivers/char/drm/radeon_irq.c b/drivers/char/drm/radeon_irq.c index 3ff0baa..a990bb6 100644 --- a/drivers/char/drm/radeon_irq.c +++ b/drivers/char/drm/radeon_irq.c @@ -227,9 +227,8 @@ void radeon_driver_irq_postinstall(drm_device_t * dev) atomic_set(_priv->swi_emitted, 0); DRM_INIT_WAITQUEUE(_priv->swi_queue); - /* Turn on SW and VBL ints */ - RADEON_WRITE(RADEON_GEN_INT_CNTL, -RADEON_CRTC_VBLANK_MASK | RADEON_SW_INT_ENABLE); + /* Turn on the SW interrupt */ + RADEON_WRITE(RADEON_GEN_INT_CNTL, RADEON_SW_INT_ENABLE); } void radeon_driver_irq_uninstall(drm_device_t * dev)
Re: [announce] Intel announces the PowerTOP utility for Linux
Ondrej Zary wrote: On Tuesday 15 May 2007 02:13:15 Robert Hancock wrote: Looks like the radeon driver has the same problem as the i915 driver mentioned on the known problems page - I get 60 wakeups/sec from it on my Compaq X1000 laptop (Radeon 9000 graphics) while in X, which essentially prevents entry into C3. And Rage 128 too. I have a Radeon 7500 in my laptop. The attached hack to disable the VBLANK interrupt works for me. I don't know if it breaks 3D, I've only tried 2D. Michal diff --git a/drivers/char/drm/radeon_irq.c b/drivers/char/drm/radeon_irq.c index 3ff0baa..a990bb6 100644 --- a/drivers/char/drm/radeon_irq.c +++ b/drivers/char/drm/radeon_irq.c @@ -227,9 +227,8 @@ void radeon_driver_irq_postinstall(drm_device_t * dev) atomic_set(dev_priv-swi_emitted, 0); DRM_INIT_WAITQUEUE(dev_priv-swi_queue); - /* Turn on SW and VBL ints */ - RADEON_WRITE(RADEON_GEN_INT_CNTL, -RADEON_CRTC_VBLANK_MASK | RADEON_SW_INT_ENABLE); + /* Turn on the SW interrupt */ + RADEON_WRITE(RADEON_GEN_INT_CNTL, RADEON_SW_INT_ENABLE); } void radeon_driver_irq_uninstall(drm_device_t * dev)
Re: Question: schedule()
Mockern wrote: Hi, What does schedule() function do? I want to make my kthread preemptive. It makes a scheduling decision, i.e. it assigns the CPU time to a suitable runnable task. If called with the current task's state set to TASK_(UN)INTERRUPTIBLE, it puts the task to sleep. Kernel threads are preemptible if the kernel is configured with CONFIG_PREEMPT. What exactly are you trying to do? If you're new to Linux kernel programming, I suggest you read Robert Love's book "Linux Kernel Development". "Linux Device Drivers" by J.Corbet, A.Rubini and G.Kroah-Hartman will be very helpful too and it is available online: http://lwn.net/Kernel/LDD3/ Michal - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: Question: schedule()
Mockern wrote: Hi, What does schedule() function do? I want to make my kthread preemptive. It makes a scheduling decision, i.e. it assigns the CPU time to a suitable runnable task. If called with the current task's state set to TASK_(UN)INTERRUPTIBLE, it puts the task to sleep. Kernel threads are preemptible if the kernel is configured with CONFIG_PREEMPT. What exactly are you trying to do? If you're new to Linux kernel programming, I suggest you read Robert Love's book Linux Kernel Development. Linux Device Drivers by J.Corbet, A.Rubini and G.Kroah-Hartman will be very helpful too and it is available online: http://lwn.net/Kernel/LDD3/ Michal - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/