[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20130402.220315.1782012687105065631.davem@davemloft.net>
Date: Tue, 02 Apr 2013 22:03:15 -0400 (EDT)
From: David Miller <davem@...emloft.net>
To: alan@...nal11.us
Cc: werner@...esberger.net, netdev@...r.kernel.org,
linux-zigbee-devel@...ts.sourceforge.net,
linux-kernel@...r.kernel.org
Subject: Re: [Linux-zigbee-devel] [PATCH 1/6] mac802154: Immediately retry
sending failed packets
From: Alan Ott <alan@...nal11.us>
Date: Tue, 02 Apr 2013 21:59:37 -0400
> On 04/02/2013 09:56 PM, David Miller wrote:
>> From: Alan Ott <alan@...nal11.us>
>> Date: Tue, 02 Apr 2013 21:24:59 -0400
>>
>>> I like it for a couple of reasons.
>>> 1. Most supported devices have only single packet output buffer, so
>>> blocking in the driver is the most straight-forward way to handle it.
>>> The alternative is to make each driver have a workqueue for xmit() (to
>>> lift the blocking out from atomic context). This makes each driver simpler.
>>>
>>> 2. All of the flow control can be handled one time in the mac802154 layer.
>> We have a perfectly working flow control mechanism in the generic
>> networking queuing layer. Please use it instead of inventing things.
>
> I'm pretty sure that's what I'm doing in [1]. When I say "flow control
> can be handled," I mean managing calls to netif_stop_queue() and
> netif_wake_queue(). Is there something else I should be doing instead?
Then you shouldn't need workqueues if the generic netdev facilities
can do the flow control properly.
There are several ethernet devices that have a single transmit buffer
and function just fine, and optimally, solely using the transmit queue
stop/start/wake infrastructure.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists