All of lore.kernel.org
 help / color / mirror / Atom feed
* sunvnet: Question on tx control in original code
@ 2016-12-01  1:25 Shannon Nelson
  2016-12-01  2:41 ` Sowmini Varadhan
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Shannon Nelson @ 2016-12-01  1:25 UTC (permalink / raw)
  To: sparclinux

I've recently been studying up on the sparc LDom environment and 
sunvnet, the virtual network device.  In looking through the code I ran 
across an odd bit of tx control that I don't quite understand.

Near the bottom of  sunvnet_common.c:sunvnet_start_xmit_common(), about 
line 1423, just after the ldc_start_done: label is a curious 'if' block

         if (unlikely(vnet_tx_dring_avail(dr) < 1)) {
                 netif_tx_stop_queue(txq);
                 if (vnet_tx_dring_avail(dr) > VNET_TX_WAKEUP_THRESH(dr))
                         netif_tx_wake_queue(txq);
         }

In order to get into the if-block there needs to be a 0 or negative 
return from vnet_tx_dring_avail(), yet then we're checking it again, 
with no discernible delay, for a positive value.  I don't see how we 
could get to the netif_tx_wake_queue() call - shouldn't there be some 
delay, or perhaps something that might bump the underlying channel 
before checking for more available space?

Perhaps I've missed something?

Thanks,
sln

-- 
=========================
Shannon Nelson           shannon.nelson@oracle.com
Parents can't afford to be squeamish

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-12-02 17:46 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-12-01  1:25 sunvnet: Question on tx control in original code Shannon Nelson
2016-12-01  2:41 ` Sowmini Varadhan
2016-12-02 17:31 ` David Miller
2016-12-02 17:46 ` Shannon Nelson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.