Thread (31 messages) 31 messages, 5 authors, 2020-07-20

Re: [PATCH v1 4/8] net: dsa: hellcreek: Add support for hardware timestamping

From: Richard Cochran <richardcochran@gmail.com>
Date: 2020-07-13 15:38:35
Also in: linux-devicetree

On Mon, Jul 13, 2020 at 05:12:17PM +0300, Vladimir Oltean wrote:
On Mon, Jul 13, 2020 at 07:01:12AM -0700, Richard Cochran wrote:
quoted
I don't think it makes sense for DSA drivers to set this bit, as it
serves no purpose in the DSA context.
For whom does this bit serve a purpose, though, and how do you tell?
It had a historical purpose.  Originally, the stack delivered either a
hardware or a software time stamp, but not both.  This restriction was
eventually lifted via the SOF_TIMESTAMPING_OPT_TX_SWHW option, but
still the original behavior is preserved as the default.

You can see how SKBTX_IN_PROGRESS is used by the skb_tstamp_tx() path
here:

void __skb_tstamp_tx(struct sk_buff *orig_skb,
		     struct skb_shared_hwtstamps *hwtstamps,
		     struct sock *sk, int tstype)
{
	...

	if (!hwtstamps && !(sk->sk_tsflags & SOF_TIMESTAMPING_OPT_TX_SWHW) &&
	    skb_shinfo(orig_skb)->tx_flags & SKBTX_IN_PROGRESS)
		return;
}

It prevents SW time stamp when the flag is set.

Note that DSA drivers deliver TX time stamps via a different path,
namely skb_complete_tx_timestamp().  Also, DSA drivers don't provide
SW time stamping at all.

Q: When should drivers set SKBTX_IN_PROGRESS?

A: When the interface they represent offers both
   SOF_TIMESTAMPING_TX_HARDWARE and SOF_TIMESTAMPING_TX_SOFTWARE.

HTH,
Richard


Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help