2017-06-21 16:28:23

by Denys Vlasenko

[permalink] [raw]
Subject: [PATCH] net/sctp/ulpevent.c: Deinline sctp_ulpevent_set_owner, save 1616 bytes

This function compiles to 147 bytes of machine code. 13 callsites.

I'm no expert on SCTP events, but quick reading of SCTP docs tells me that
SCTP events are not happening on every packet.
They are ASSOC_CHANGE, PEER_ADDR_CHANGE, REMOTE_ERROR and such.
Does not look performance critical.

Signed-off-by: Denys Vlasenko <[email protected]>
CC: Vlad Yasevich <[email protected]>
CC: Neil Horman <[email protected]>
CC: David Miller <[email protected]>
CC: [email protected]
CC: [email protected]
CC: [email protected]
---
net/sctp/ulpevent.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/sctp/ulpevent.c b/net/sctp/ulpevent.c
index ec2b3e0..049aa5a 100644
--- a/net/sctp/ulpevent.c
+++ b/net/sctp/ulpevent.c
@@ -88,7 +88,7 @@ int sctp_ulpevent_is_notification(const struct sctp_ulpevent *event)
/* Hold the association in case the msg_name needs read out of
* the association.
*/
-static inline void sctp_ulpevent_set_owner(struct sctp_ulpevent *event,
+static void sctp_ulpevent_set_owner(struct sctp_ulpevent *event,
const struct sctp_association *asoc)
{
struct sctp_chunk *chunk = event->chunk;
--
1.8.3.1


2017-06-21 16:57:47

by Marcelo Ricardo Leitner

[permalink] [raw]
Subject: Re: [PATCH] net/sctp/ulpevent.c: Deinline sctp_ulpevent_set_owner, save 1616 bytes

On Wed, Jun 21, 2017 at 06:28:09PM +0200, Denys Vlasenko wrote:
> This function compiles to 147 bytes of machine code. 13 callsites.
>
> I'm no expert on SCTP events, but quick reading of SCTP docs tells me that
> SCTP events are not happening on every packet.
> They are ASSOC_CHANGE, PEER_ADDR_CHANGE, REMOTE_ERROR and such.
> Does not look performance critical.
>
> Signed-off-by: Denys Vlasenko <[email protected]>
> CC: Vlad Yasevich <[email protected]>
> CC: Neil Horman <[email protected]>
> CC: David Miller <[email protected]>
> CC: [email protected]
> CC: [email protected]
> CC: [email protected]
> ---
> net/sctp/ulpevent.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/net/sctp/ulpevent.c b/net/sctp/ulpevent.c
> index ec2b3e0..049aa5a 100644
> --- a/net/sctp/ulpevent.c
> +++ b/net/sctp/ulpevent.c
> @@ -88,7 +88,7 @@ int sctp_ulpevent_is_notification(const struct sctp_ulpevent *event)
> /* Hold the association in case the msg_name needs read out of
> * the association.
> */
> -static inline void sctp_ulpevent_set_owner(struct sctp_ulpevent *event,
> +static void sctp_ulpevent_set_owner(struct sctp_ulpevent *event,
> const struct sctp_association *asoc)

Please fix the alignment here --------^
the const should start after the '(' column, as it was before the patch.
Thanks

> {
> struct sctp_chunk *chunk = event->chunk;
> --
> 1.8.3.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-sctp" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>

2017-06-21 19:19:16

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH] net/sctp/ulpevent.c: Deinline sctp_ulpevent_set_owner, save 1616 bytes

On Wed, 2017-06-21 at 18:28 +0200, Denys Vlasenko wrote:
> This function compiles to 147 bytes of machine code. 13 callsites.
>
> I'm no expert on SCTP events, but quick reading of SCTP docs tells me that
> SCTP events are not happening on every packet.
> They are ASSOC_CHANGE, PEER_ADDR_CHANGE, REMOTE_ERROR and such.
> Does not look performance critical.

Thanks.

But:

> diff --git a/net/sctp/ulpevent.c b/net/sctp/ulpevent.c
[]
> @@ -88,7 +88,7 @@ int sctp_ulpevent_is_notification(const struct sctp_ulpevent *event)
> /* Hold the association in case the msg_name needs read out of
> * the association.
> */
> -static inline void sctp_ulpevent_set_owner(struct sctp_ulpevent *event,
> +static void sctp_ulpevent_set_owner(struct sctp_ulpevent *event,
> const struct sctp_association *asoc)
> {
> struct sctp_chunk *chunk = event->chunk;

This now misaligns the next line after the inline removal.

Can you please run your patches through checkpatch?

$ ./scripts/checkpatch.pl -
CHECK: Alignment should match open parenthesis
#86: FILE: net/sctp/ulpevent.c:92:
+static void sctp_ulpevent_set_owner(struct sctp_ulpevent *event,
? ???const struct sctp_association *asoc)

2017-06-21 19:25:44

by David Miller

[permalink] [raw]
Subject: Re: [PATCH] net/sctp/ulpevent.c: Deinline sctp_ulpevent_set_owner, save 1616 bytes

From: Joe Perches <[email protected]>
Date: Wed, 21 Jun 2017 12:19:10 -0700

> On Wed, 2017-06-21 at 18:28 +0200, Denys Vlasenko wrote:
>> This function compiles to 147 bytes of machine code. 13 callsites.
>>
>> I'm no expert on SCTP events, but quick reading of SCTP docs tells me that
>> SCTP events are not happening on every packet.
>> They are ASSOC_CHANGE, PEER_ADDR_CHANGE, REMOTE_ERROR and such.
>> Does not look performance critical.
>
> Thanks.
>
> But:
>
>> diff --git a/net/sctp/ulpevent.c b/net/sctp/ulpevent.c
> []
>> @@ -88,7 +88,7 @@ int sctp_ulpevent_is_notification(const struct sctp_ulpevent *event)
>> /* Hold the association in case the msg_name needs read out of
>> * the association.
>> */
>> -static inline void sctp_ulpevent_set_owner(struct sctp_ulpevent *event,
>> +static void sctp_ulpevent_set_owner(struct sctp_ulpevent *event,
>> const struct sctp_association *asoc)
>> {
>> struct sctp_chunk *chunk = event->chunk;
>
> This now misaligns the next line after the inline removal.

Agreed, the argument indenation must be fixed.