netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next 0/9] net: Refactor ip_route_input_slow
@ 2015-09-22 22:55 David Ahern
  2015-09-22 22:55 ` [PATCH net-next 1/9] net: Remove martian_source_keep_err goto label David Ahern
                   ` (9 more replies)
  0 siblings, 10 replies; 20+ messages in thread
From: David Ahern @ 2015-09-22 22:55 UTC (permalink / raw)
  To: netdev; +Cc: David Ahern

ip_route_input_slow is a maze of gotos (9 of them!) making it error
prone and difficult to read. This patchset refactors it, removing all
but 2 of the labels. The brd_input label for broadcast path requires
too many inputs to make a reasonble helper out of it so I left it as is.

None of these patches change functionality, only move code around
to make ip_route_input_slow more readable.

Size comparison using gcc version 4.7.2 (Debian 4.7.2-5)

With CONFIG_IP_ROUTE_VERBOSE:
    Before patches:
    $ size kbuild2/net/ipv4/route.o
       text	   data	    bss	    dec	    hex	filename
      20615	   2321	     32	  22968	   59b8	kbuild2/net/ipv4/route.o

    After patches:
    $ size kbuild/net/ipv4/route.o
       text	   data	    bss	    dec	    hex	filename
      20774	   2321	     32	  23127	   5a57	kbuild/net/ipv4/route.o

An increase of 159 bytes with CONFIG_IP_ROUTE_VERBOSE.

Without CONFIG_IP_ROUTE_VERBOSE:
    Before patches:
    $ size kbuild2/net/ipv4/route.o
       text	   data	    bss	    dec	    hex	filename
      19778	   2321	     32	  22131	   5673	kbuild2/net/ipv4/route.o

    After patches:
    $ size kbuild/net/ipv4/route.o
       text	   data	    bss	    dec	    hex	filename
      19858	   2321	     32	  22211	   56c3	kbuild/net/ipv4/route.o

An increase of 80 bytes without CONFIG_IP_ROUTE_VERBOSE.

David Ahern (9):
  net: Remove martian_source_keep_err goto label
  net: Remove e_inval label from ip_route_input_slow
  net: Remove e_nobufs label from ip_route_input_slow
  net: Move rth handling from ip_route_input_slow to helper
  net: Move martian_destination to helper
  net: Remove martian_source goto
  net: Remove martian_destination label
  net: Remove local_input label
  net: Remove no_route label

 net/ipv4/route.c | 239 ++++++++++++++++++++++++++++++++-----------------------
 1 file changed, 139 insertions(+), 100 deletions(-)

-- 
1.9.1

^ permalink raw reply	[flat|nested] 20+ messages in thread
* [PATCH net-next 0/9 v2] net: Refactor ip_route_input_slow
@ 2015-09-23 15:15 David Ahern
  2015-09-23 15:15 ` [PATCH net-next 5/9] net: Move martian_destination to helper David Ahern
  0 siblings, 1 reply; 20+ messages in thread
From: David Ahern @ 2015-09-23 15:15 UTC (permalink / raw)
  To: netdev; +Cc: David Ahern

ip_route_input_slow is a maze of gotos (9 of them!) making it error
prone and difficult to read. This patchset refactors it, removing all
but 2 of the labels. The brd_input label for broadcast path requires
too many inputs to make a reasonble helper out of it so I left it as is.

None of these patches change functionality, only move code around
to make ip_route_input_slow more readable.

Size comparison using gcc version 4.7.2 (Debian 4.7.2-5)

With CONFIG_IP_ROUTE_VERBOSE:
    Before patches:
    $ size kbuild2/net/ipv4/route.o
       text	   data	    bss	    dec	    hex	filename
      20615	   2321	     32	  22968	   59b8	kbuild2/net/ipv4/route.o

    After patches:
    $ size kbuild/net/ipv4/route.o
       text	   data	    bss	    dec	    hex	filename
      20711	   2321	     32	  23064	   5a18	kbuild/net/ipv4/route.o

An increase of 96 bytes with CONFIG_IP_ROUTE_VERBOSE.

Without CONFIG_IP_ROUTE_VERBOSE:
    Before patches:
    $ size kbuild2/net/ipv4/route.o
       text	   data	    bss	    dec	    hex	filename
      19778	   2321	     32	  22131	   5673	kbuild2/net/ipv4/route.o

    After patches:
    $ size kbuild/net/ipv4/route.o
       text	   data	    bss	    dec	    hex	filename
      19847	   2321	     32	  22200	   56b8	kbuild/net/ipv4/route.o

An increase of 69 bytes without CONFIG_IP_ROUTE_VERBOSE.

v2
- Addressed comments from Eric B and Alex Duyck

David Ahern (9):
  net: Remove martian_source_keep_err goto label
  net: Remove e_inval label from ip_route_input_slow
  net: Remove e_nobufs label from ip_route_input_slow
  net: Move rth handling from ip_route_input_slow to helper
  net: Move martian_destination to helper
  net: Remove martian_source goto
  net: Remove martian_destination label
  net: Remove local_input label
  net: Remove no_route label

 net/ipv4/route.c | 233 +++++++++++++++++++++++++++++++------------------------
 1 file changed, 133 insertions(+), 100 deletions(-)

-- 
1.9.1

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2015-09-24 10:54 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-22 22:55 [PATCH net-next 0/9] net: Refactor ip_route_input_slow David Ahern
2015-09-22 22:55 ` [PATCH net-next 1/9] net: Remove martian_source_keep_err goto label David Ahern
2015-09-23  1:04   ` Alexander Duyck
2015-09-23  1:39     ` Alexander Duyck
2015-09-22 22:55 ` [PATCH net-next 2/9] net: Remove e_inval label from ip_route_input_slow David Ahern
2015-09-22 22:55 ` [PATCH net-next 3/9] net: Remove e_nobufs " David Ahern
2015-09-23  2:15   ` Eric W. Biederman
2015-09-23  3:04     ` David Ahern
2015-09-24 10:53     ` David Laight
2015-09-22 22:55 ` [PATCH net-next 4/9] net: Move rth handling from ip_route_input_slow to helper David Ahern
2015-09-23  2:33   ` Alexander Duyck
2015-09-23  3:07     ` David Ahern
2015-09-22 22:55 ` [PATCH net-next 5/9] net: Move martian_destination " David Ahern
2015-09-22 22:55 ` [PATCH net-next 6/9] net: Remove martian_source goto David Ahern
2015-09-22 22:55 ` [PATCH net-next 7/9] net: Remove martian_destination label David Ahern
2015-09-22 22:55 ` [PATCH net-next 8/9] net: Remove local_input label David Ahern
2015-09-22 22:55 ` [PATCH net-next 9/9] net: Remove no_route label David Ahern
2015-09-23  5:51 ` [PATCH net-next 0/9] net: Refactor ip_route_input_slow Alexander Duyck
2015-09-23 14:03   ` David Ahern
  -- strict thread matches above, loose matches on Subject: below --
2015-09-23 15:15 [PATCH net-next 0/9 v2] " David Ahern
2015-09-23 15:15 ` [PATCH net-next 5/9] net: Move martian_destination to helper David Ahern

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).