Subject: Re: [PATCH net-next 1/2] rtnetlink: add new RTM_GETSTATS message to dump link stats

From: Nicolas Dichtel <[email-masked]>
Date: Tue, 15 Mar 2016 09:20:41 +0100

Le 15/03/2016 07:30, roopa a écrit :
> On 3/14/16, 8:00 AM, Nicolas Dichtel wrote:
>> Le 13/03/2016 02:56, Roopa Prabhu a écrit :
[snip]
>>> diff --git a/include/uapi/linux/rtnetlink.h b/include/uapi/linux/rtnetlink.h
>>> index ca764b5..2bbb300 100644
>>> --- a/include/uapi/linux/rtnetlink.h
>>> +++ b/include/uapi/linux/rtnetlink.h
>>> @@ -139,6 +139,13 @@ enum {
>>>        RTM_GETNSID = 90,
>>>    #define RTM_GETNSID RTM_GETNSID
>>>
>>> +    RTM_NEWSTATS = 92,
>>> +#define RTM_NEWSTATS RTM_NEWSTATS
>>> +    RTM_DELSTATS = 93,
>>> +#define RTM_DELSTATS RTM_DELSTATS
>> RTM_DELSTATS is never used.
>
> yeah, i had to define it just because rtnetlink_rcv_msg seems to expect all three to be
> there when it tries to check if it is a get msg. But, i could sure not declare this
> but make rtnetlink_rcv_msg happy by keeping the GET msg at the right offset.
Not sure to understand what is the problem.
Look at RTM_NEWNETCONF/RTM_GETNETCONF, there is no DEL command.

>>
>>> +    RTM_GETSTATS = 94,
>>> +#define RTM_GETSTATS RTM_GETSTATS
>>> +
>>>        __RTM_MAX,
>>>    #define RTM_MAX        (((__RTM_MAX + 3) & ~3) - 1)
>>>    };
>>> diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
>>> index d2d9e5e..d1e3d17 100644
>>> --- a/net/core/rtnetlink.c
>>> +++ b/net/core/rtnetlink.c
>> [snip]
>>> +static noinline size_t if_nlmsg_stats_size(const struct net_device *dev,
>>> +                       u32 filter_mask)
>> Why are you using the 'noinline' attribute?
>
> I actually picked it up from if_nlmsg_size ...
If there is no better reason, I suggest to remove it ;-)
It was introduced by Eric (commit 9e34a5b51684 ("net/core: EXPORT_SYMBOL
cleanups").
Eric, do you remember why you add this 'noinline' attribute?