Messages in this thread | | | From | Paul Durrant <> | Subject | RE: [PATCH net-next v3 8/9] xen-netback: Timeout packets in RX path | Date | Mon, 13 Jan 2014 09:53:00 +0000 |
| |
> -----Original Message----- > From: Zoltan Kiss > Sent: 13 January 2014 00:20 > To: Paul Durrant; Ian Campbell; Wei Liu; xen-devel@lists.xenproject.org; > netdev@vger.kernel.org; linux-kernel@vger.kernel.org; Jonathan Davies > Subject: Re: [PATCH net-next v3 8/9] xen-netback: Timeout packets in RX > path > > On 09/01/14 09:20, Paul Durrant wrote: > >> We are adding the skb to vif->rx_queue even when > >> xenvif_rx_ring_slots_available(vif, min_slots_needed) said there is no > >> space for that. Or am I missing something? Paul? > >> > > That's correct. Part of the flow control improvement was to get rid of > needless packet drops. For your purposes, you basically need to avoid using > the queuing discipline and take packets into netback's vif->rx_queue > regardless of the state of the shared ring so that you can drop them if they > get beyond a certain age. So, perhaps you should never stop the netif > queue, place an upper limit on vif->rx_queue (either packet or byte count) > and drop when that is exceeded (i.e. mimicking pfifo or bfifo internally). > > > How about this: > - when the timer fires first we wake up the thread an tell it to drop > all the packets in rx_queue > - start_xmit then can drain the qdisc queue into the device queue > - additionally, the RX thread should stop that timer when it was able to > do some work >
Yes, you could do it that way.
Paul
| |