Re: [RFC PATCH 7/8] [SCTP]: uninline sctp_add_cmd_sf

From: Vlad Yasevich
Date: Thu Feb 21 2008 - 10:27:50 EST


Ilpo Järvinen wrote:
On Wed, 20 Feb 2008, Vlad Yasevich wrote:

Ilpo Järvinen wrote:
I added inline to sctp_add_cmd and appropriate comment there to
avoid adding another call into the call chain. This works at least
with "gcc (GCC) 4.1.2 20070626 (Red Hat 4.1.2-13)". Alternatively,
__sctp_add_cmd could be introduced to .h.

My only concern was performance regressions, but it looks like it
doesn't effect anything from the few quick runs I've made.

There was one call made anyway, it's a bit hard to see how it would hurt to push that BUG() deeper down (in fact, this is one of the easiest case in this respect, many other cases elsewhere that need uninlining don't currently make any calls with inlines).

Since we are putting sctp_add_cmd_sf() on the call stack, we might
as well get rid of sctp_add_cmd() and reduce it a bit more.

IMHO it is definately better solution for archiving the size reduction,
I just didn't know before that the only sctp_add_cmd call could be converted.

That one was a really silly one. The chance of not calling BUG() in
that one case was so small, that it didn't really make any sense from
the code robustness side.


[...snip...]
diff --git a/net/sctp/command.c b/net/sctp/command.c
index bb97733..3a06513 100644
--- a/net/sctp/command.c
+++ b/net/sctp/command.c
@@ -51,19 +51,16 @@ int sctp_init_cmd_seq(sctp_cmd_seq_t *seq)
/* Add a command to a sctp_cmd_seq_t.
* Return 0 if the command sequence is full.
+ *
+ * Inline here is not a mistake, this way sctp_add_cmd_sf doesn't need extra
+ * calls, size penalty is of insignificant magnitude here

This won't be a necessary note anymore. :-)

[...snip...]


Yeah. If you are going to resubmit, feel free to put my Signed-off-by line.

-vlad
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/