All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jakub Kicinski <kuba@kernel.org>
To: Jay Vosburgh <jay.vosburgh@canonical.com>
Cc: "David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Paolo Abeni <pabeni@redhat.com>,
	netdev@vger.kernel.org, Jonathan Toppins <jtoppins@redhat.com>,
	Veaceslav Falico <vfalico@gmail.com>,
	Andy Gospodarek <andy@greyhouse.net>
Subject: Re: [PATCH net] veth: Add updating of trans_start
Date: Fri, 17 Jun 2022 17:55:50 -0700	[thread overview]
Message-ID: <20220617175550.6a3602ab@kernel.org> (raw)
In-Reply-To: <28607.1655512063@famine>

On Fri, 17 Jun 2022 17:27:43 -0700 Jay Vosburgh wrote:
> Jakub Kicinski <kuba@kernel.org> wrote:
> >On Fri, 17 Jun 2022 09:42:55 -0700 Jay Vosburgh wrote:  
> >> 	In this case, it's to permit the bonding ARP / ND monitor to
> >> function if that software device (veth in this case) is added to a bond
> >> using the ARP / ND monitor (which relies on trans_start, and has done so
> >> since at least 2.6.0).  I'll agree it's a niche case; this was broken
> >> for veth for quite some time, but veth + netns is handy for software
> >> only test cases, so it seems worth doing.  
> >
> >I presume it needs it to check if the device has transmitted anything
> >in the last unit of time, can we look at the device stats for LLTX for
> >example?  
> 
> 	Yes, that's the use case.  
> 
> 	Hmm.  Polling the device stats would likely work for software
> devices, although the unit of time varies (some checks are fixed at one
> unit, but others can be N units depending on the missed_max option
> setting).
> 
> 	Polling hardware devices might not work; as I recall, some
> devices only update the statistics on timespans on the order of seconds,
> e.g., bnx2 and tg3 appear to update once per second.  But those do
> update trans_start.

Right, unfortunately.

> 	The question then becomes how to distinguish a software LLTX
> device from a hardware LLTX device.

If my way of thinking about trans_start is correct then we can test 
for presence of ndo_tx_timeout. Anything that has the tx_timeout NDO
must be maintaining trans_start.

> >> 	I didn't exhaustively check all LLTX drivers, but, e.g., tun
> >> does update trans_start:
> >> 
> >> drivers/net/tun.c:
> >> 
> >>        /* NETIF_F_LLTX requires to do our own update of trans_start */
> >>         queue = netdev_get_tx_queue(dev, txq);
> >>         txq_trans_cond_update(queue);  
> >
> >Well, it is _an_ example, but the only one I can find. And the
> >justification is the same as yours now -- make bonding work a31d27fb.
> >Because of that I don't think we can use tun as a proof that trans 
> >start should be updated on LLTX devices as a general, stack-wide rule.
> >There's a lot more LLTX devices than veth and tun.  
> 
> 	I'm not suggesting that all (software) LLTX software devices be
> updated.

The ones which are not updated would remain broken then, no?
Waiting for someone to try to bond them and discover it doesn't work.

  reply	other threads:[~2022-06-18  0:56 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-16 19:26 [PATCH net] veth: Add updating of trans_start Jay Vosburgh
2022-06-17 10:40 ` patchwork-bot+netdevbpf
2022-06-17 15:45 ` Jakub Kicinski
2022-06-17 16:42   ` Jay Vosburgh
2022-06-17 19:44     ` Jakub Kicinski
2022-06-18  0:27       ` Jay Vosburgh
2022-06-18  0:55         ` Jakub Kicinski [this message]
2022-06-21 19:52           ` Jakub Kicinski
2022-06-22  1:42             ` Jay Vosburgh
2022-06-22  4:38               ` Jakub Kicinski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220617175550.6a3602ab@kernel.org \
    --to=kuba@kernel.org \
    --cc=andy@greyhouse.net \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=jay.vosburgh@canonical.com \
    --cc=jtoppins@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=vfalico@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.