lkml.org 
[lkml]   [2003]   [Dec]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Problem with dev_kfree_skb_any() in 2.6.0
On Mon, 29 Dec 2003 23:09:14 -0500
Jeff Garzik <jgarzik@pobox.com> wrote:

> Not really... pretty much _all_ TX queue packet freeing occurs inside
> an irq handler and inside the driver spinlock. Further, we don't want
> to reinvent some sort of "queue skb for freeing" code in every driver.

There is one important detail not mentioned.

If we let the TX free occur in cpu IRQ disabled context, the
BH to actually do the work will occur as some indeterminate
time in the future after the top level IRQ spinlock release
occurs.

Unlike local_bh_enable(), local_irq_enable() does not run
softirq work. Similarly when comparing IRQ handler return
(which also runs softirq work if pending).

This is the most important reason why the suggested change is wrong.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:59    [W:0.038 / U:0.068 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site