Hi,
On 03/06/2018 06:53 PM, Eric Dumazet wrote:
> On Tue, 2018-03-06 at 17:12 -0800, Jesus Sanchez-Palencia wrote:
>> Extend SO_TXTIME APIs with new per-packet parameters: a clockid_t and
>> a drop_if_late flag. With this commit the API becomes:
>>
>>
>
> * diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
> * index d8340e6e8814..951969ceaf65 100644
> * --- a/include/linux/skbuff.h
> * +++ b/include/linux/skbuff.h
> * @@ -788,6 +788,9 @@ struct sk_buff {
> * __u8 tc_redirected:1;
> * __u8 tc_from_ingress:1;
> * #endif
> * + __u8 tc_drop_if_late:1;
> * +
> * + clockid_t txtime_clockid;
> *
> * #ifdef CONFIG_NET_SCHED
> * __u16 tc_index; /* traffic
> control index */
>
>
> This is adding 32+1 bits to sk_buff, and possibly holes in this very
> very hot (and already too fat) structure.
I should have mentioned on the commit msg, but the tc_drop_if_late is actually
filling a 1 bit hole that was already there.
>
> Do we really need 32 bits for a clockid_t ?
There is a 2 bytes hole just after tc_index, so a u16 clockid would fit
perfectly without increasing the skbuffs size / cachelines any further.
>From Richard's reply, it seems safe to just change the definition here if we
make it explicit on the SCM_CLOCKID documentation the caveat about the max
possible fd count for dynamic clocks.
How does that sound?
Thanks,
Jesus