On Fri, Jan 22, 2021 at 06:14:44PM -0800, Jakub Kicinski wrote: > (I would put it in net-next tho, given the above this at most a space > optimization.)
It isn't just about space but also time. The reason why I targeted net and not net-next was that NETWORK_PHY_TIMESTAMPING activates a function call to skb_clone_tx_timestamp() for every transmitted frame. static inline void skb_tx_timestamp(struct sk_buff *skb) { skb_clone_tx_timestamp(skb); if (skb_shinfo(skb)->tx_flags & SKBTX_SW_TSTAMP) skb_tstamp_tx(skb, NULL); } In the abscence of a PHY time stamping device, the check for its presence inside of skb_clone_tx_timestamp() will of course fail, but this still incurs the cost of the call on every transmitted skb. Similarly netif_receive_skb() futilely calls skb_defer_rx_timestamp() on every received skb. I would argue that most users don't want this option activated by accident. (And yes, we could avoid the functions call by moving the check outside of the global functions and inline to the call sites. I'll be sure to have that in the shiny new improved scheme under discussion.) Thanks, Richard