Thread (28 messages) 28 messages, 5 authors, 2015-11-03

RE: [PATCH net-next] net: increase LL_MAX_HEADER if HYPERV_NET is enabled

From: Haiyang Zhang <haiyangz@microsoft.com>
Date: 2015-11-03 21:15:18

-----Original Message-----
From: David Miller [mailto:davem@davemloft.net]
Sent: Tuesday, November 3, 2015 2:50 PM
To: Haiyang Zhang <haiyangz@microsoft.com>
Cc: eric.dumazet@gmail.com; KY Srinivasan <kys@microsoft.com>;
edumazet@google.com; netdev@vger.kernel.org
Subject: Re: [PATCH net-next] net: increase LL_MAX_HEADER if HYPERV_NET
is enabled

From: Haiyang Zhang <haiyangz@microsoft.com>
Date: Tue, 3 Nov 2015 18:49:05 +0000
quoted
quoted
-----Original Message-----
From: David Miller [mailto:davem@davemloft.net]
Sent: Tuesday, November 3, 2015 1:20 PM
To: Haiyang Zhang <haiyangz@microsoft.com>
Cc: eric.dumazet@gmail.com; KY Srinivasan <kys@microsoft.com>;
edumazet@google.com; netdev@vger.kernel.org
Subject: Re: [PATCH net-next] net: increase LL_MAX_HEADER if
HYPERV_NET is enabled

From: Haiyang Zhang <haiyangz@microsoft.com>
Date: Tue, 3 Nov 2015 17:34:47 +0000
quoted
But we still keep this busy return in our code, just for "weird corner
cases".
quoted
quoted
The queue_stopped condition must be precise.
The only case we return NETDEV_TX_BUSY is when the outgoing ring
buffer is full, which almost never happens because we stop the xmit queue
if ring is <10% available.

I don't think you understand.

You must perform the queue stop operation such that it is impossible for
your
->ndo_start_xmit() method to be invoked in a way such that you cannot
->transmit
the SKB given to you immediately.
We already did the queue stop operation in the netvsc_send_pkt() in file netvsc.c:
		if (ring_avail < RING_AVAIL_PERCENT_LOWATER) {
			netif_tx_stop_queue(netdev_get_tx_queue(ndev, q_idx));
This flow control mechanism stops the tx queue when the outgoing buffer on vmbus 
is <10% available. So we can always transmit immediately when start_xmit is called.

The case of returning NETDEV_TX_BUSY is not expected to happen normally.

Thanks,
- Haiyang
It's quite tiring to keep trying to explain this over and over repeatedly.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help