Re: Tasklet usage in the DRM

2007-06-29 Thread Daniel Walker
On Fri, 2007-06-29 at 09:09 +0200, Michel Dänzer wrote:
> I just read an article on LWN's kernel page about plans to remove
> tasklets, and I thought I'd explain what the DRM is using tasklets for.
> Maybe there's other ways to satisfy the requirements equally well or
> even better.
> 
> 
> The i915 driver uses a tasklet to make sure a GL buffer swap blit or
> flip takes effect (or at least starts in the case of a blit) during the
> vertical blank period, to avoid tearing. I chose a tasklet for this
> purpose because:
> 
>   * The traditional method of the vertical blank interrupt waking up
> the user process, which would then emit the buffer swap
> commands, didn't even come close to avoiding tearing. So I
> suspect a workqueue wouldn't cut it either.
>   * The processing of scheduled buffer swaps could potentially take
> a long time, so doing it in hardirq context could cause high IRQ
> latency.
>   * It requires holding the DRM lock, so the 'each tasklet can only
> run once at a time' restriction is fine.
> 
> 
> I'm looking forward to any suggestions what to do with this in case
> tasklets disappear, and I'll gladly provide further clarification on the
> requirements.

If it hasn't been done someone with this hardware could test Steven's
patches to see if they do satisfy the requirements..

I think the most recent version was posted in this message,
http://lkml.org/lkml/2007/6/27/289

Subject was "[RFC PATCH 0/8] Convert all tasklets to workqueues V3" if
people are subscribed to LKML ..

(Added Steven to the CC list)

Daniel

-
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/


Tasklet usage in the DRM

2007-06-29 Thread Michel Dänzer

I just read an article on LWN's kernel page about plans to remove
tasklets, and I thought I'd explain what the DRM is using tasklets for.
Maybe there's other ways to satisfy the requirements equally well or
even better.


The i915 driver uses a tasklet to make sure a GL buffer swap blit or
flip takes effect (or at least starts in the case of a blit) during the
vertical blank period, to avoid tearing. I chose a tasklet for this
purpose because:

  * The traditional method of the vertical blank interrupt waking up
the user process, which would then emit the buffer swap
commands, didn't even come close to avoiding tearing. So I
suspect a workqueue wouldn't cut it either.
  * The processing of scheduled buffer swaps could potentially take
a long time, so doing it in hardirq context could cause high IRQ
latency.
  * It requires holding the DRM lock, so the 'each tasklet can only
run once at a time' restriction is fine.


I'm looking forward to any suggestions what to do with this in case
tasklets disappear, and I'll gladly provide further clarification on the
requirements.


-- 
Earthling Michel Dänzer   |  http://tungstengraphics.com
Libre software enthusiast |  Debian, X and DRI developer

-
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/


Tasklet usage in the DRM

2007-06-29 Thread Michel Dänzer

I just read an article on LWN's kernel page about plans to remove
tasklets, and I thought I'd explain what the DRM is using tasklets for.
Maybe there's other ways to satisfy the requirements equally well or
even better.


The i915 driver uses a tasklet to make sure a GL buffer swap blit or
flip takes effect (or at least starts in the case of a blit) during the
vertical blank period, to avoid tearing. I chose a tasklet for this
purpose because:

  * The traditional method of the vertical blank interrupt waking up
the user process, which would then emit the buffer swap
commands, didn't even come close to avoiding tearing. So I
suspect a workqueue wouldn't cut it either.
  * The processing of scheduled buffer swaps could potentially take
a long time, so doing it in hardirq context could cause high IRQ
latency.
  * It requires holding the DRM lock, so the 'each tasklet can only
run once at a time' restriction is fine.


I'm looking forward to any suggestions what to do with this in case
tasklets disappear, and I'll gladly provide further clarification on the
requirements.


-- 
Earthling Michel Dänzer   |  http://tungstengraphics.com
Libre software enthusiast |  Debian, X and DRI developer

-
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: Tasklet usage in the DRM

2007-06-29 Thread Daniel Walker
On Fri, 2007-06-29 at 09:09 +0200, Michel Dänzer wrote:
 I just read an article on LWN's kernel page about plans to remove
 tasklets, and I thought I'd explain what the DRM is using tasklets for.
 Maybe there's other ways to satisfy the requirements equally well or
 even better.
 
 
 The i915 driver uses a tasklet to make sure a GL buffer swap blit or
 flip takes effect (or at least starts in the case of a blit) during the
 vertical blank period, to avoid tearing. I chose a tasklet for this
 purpose because:
 
   * The traditional method of the vertical blank interrupt waking up
 the user process, which would then emit the buffer swap
 commands, didn't even come close to avoiding tearing. So I
 suspect a workqueue wouldn't cut it either.
   * The processing of scheduled buffer swaps could potentially take
 a long time, so doing it in hardirq context could cause high IRQ
 latency.
   * It requires holding the DRM lock, so the 'each tasklet can only
 run once at a time' restriction is fine.
 
 
 I'm looking forward to any suggestions what to do with this in case
 tasklets disappear, and I'll gladly provide further clarification on the
 requirements.

If it hasn't been done someone with this hardware could test Steven's
patches to see if they do satisfy the requirements..

I think the most recent version was posted in this message,
http://lkml.org/lkml/2007/6/27/289

Subject was [RFC PATCH 0/8] Convert all tasklets to workqueues V3 if
people are subscribed to LKML ..

(Added Steven to the CC list)

Daniel

-
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/