On Fri, 2020-06-26 at 12:58 -0700, Jakub Kicinski wrote: > On Thu, 25 Jun 2020 19:07:33 -0700 Jeff Kirsher wrote: > > @@ -1315,7 +1489,18 @@ iecm_tx_splitq_clean(struct iecm_queue *tx_q, u16 > > end, int napi_budget, > > */ > > static inline void iecm_tx_hw_tstamp(struct sk_buff *skb, u8 *desc_ts) > > Pretty sure you don't need the inline here. It's static function with > one caller. > > > { > > - /* stub */ > > + struct skb_shared_hwtstamps hwtstamps; > > + u64 tstamp; > > + > > + /* Only report timestamp to stack if requested */ > > + if (!likely(skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP)) > > + return;
Is this supposed to be unlikely? > > + tstamp = (desc_ts[0] | (desc_ts[1] << 8) | (desc_ts[2] & 0x3F) << 16); btw: there are inconsistent parentheses for the ORs vs shifts here. I think this might read better as tstamp = desc_ts[0] | (desc_ts[1] << 8) | ((desc_ts[2] & 0x3F) << 16); This is a u64 result, but the ORs are int 23 bits of timestamp isn't very many at 100Gb. > > + hwtstamps.hwtstamp = > > + ns_to_ktime(tstamp << IECM_TW_TIME_STAMP_GRAN_512_DIV_S); > > + > > + skb_tstamp_tx(skb, &hwtstamps); > > } > > Why is there time stamp reading support if you have no ts_info > configuration on ethtool side at all and no PHC support?