netdev
[Top] [All Lists]

Re: [PATCH 2.4] Use double-linked list for dev->qdisc_list

To: Tomasz Paszkowski <tomasz.paszkowski@xxxxxxxx>
Subject: Re: [PATCH 2.4] Use double-linked list for dev->qdisc_list
From: Patrick McHardy <kaber@xxxxxxxxx>
Date: Wed, 04 Aug 2004 15:30:45 +0200
Cc: davem@xxxxxxxxxx, netdev@xxxxxxxxxxx
In-reply-to: <20040804125926.GA15324@xxxxxxxxxxxxxxxx>
References: <20040804125926.GA15324@xxxxxxxxxxxxxxxx>
Sender: netdev-bounce@xxxxxxxxxxx
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040413 Debian/1.6-5
Tomasz Paszkowski wrote:

This patch changes dev->qdisc_list to a double-linked list. This solves
the performance problems when destroying qdiscs with large number of inner
qdiscs.

This is backported version of Patrick McHardy patch (03-qdisc_list-list_h.diff)
or 2.6 kernels.
Looks good, except for the last hunk, the BUG_TRAP is valid in 2.4 because
it doesn't use RCU. Change it to BUG_TRAP(list_empty(&dev->qdisc_list)).

------------------------------------------------------------------------

#endif
-       BUG_TRAP(dev->qdisc_list == NULL);
        BUG_TRAP(!timer_pending(&dev->watchdog_timer));
-       dev->qdisc_list = NULL;
        spin_unlock_bh(&dev->queue_lock);
        write_unlock(&qdisc_tree_lock);
}


<Prev in Thread] Current Thread [Next in Thread>