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

Regards,

Zoli
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to