All of lore.kernel.org
 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 4/9] net: Move rth handling from ip_route_input_slow 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 4/9] net: Move rth handling from ip_route_input_slow to helper David Ahern

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.