linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/24] Refactor sys_swapon
@ 2011-02-12 18:48 Cesar Eduardo Barros
  2011-02-12 18:49 ` [PATCH 01/24] sys_swapon: use vzalloc instead of vmalloc/memset Cesar Eduardo Barros
                   ` (24 more replies)
  0 siblings, 25 replies; 61+ messages in thread
From: Cesar Eduardo Barros @ 2011-02-12 18:48 UTC (permalink / raw)
  To: linux-mm

This patch series refactors the sys_swapon function.

sys_swapon is currently a very large function, with 313 lines (more than 
12 25-line screens), which can make it a bit hard to read. This patch 
series reduces this size by half, by extracting large chunks of related 
code to new helper functions.

One of these chunks of code was nearly identical to the part of 
sys_swapoff which is used in case of a failure return from 
try_to_unuse(), so this patch series also makes both share the same code.

As a side effect of all this refactoring, the compiled code gets a bit 
smaller:

    text	   data	    bss	    dec	    hex	filename
   14012	    944	    276	  15232	   3b80	mm/swapfile.o.before
   13941	    944	    276	  15161	   3b39	mm/swapfile.o.after

Lightly tested on a x86_64 VM.

  mm/swapfile.c |  360 +++++++++++++++++++++++++++----------------------
  1 files changed, 197 insertions(+), 163 deletions(-)

Cesar Eduardo Barros (24):
       sys_swapon: use vzalloc instead of vmalloc/memset
       sys_swapon: remove changelog from function comment
       sys_swapon: do not depend on "type" after allocation
       sys_swapon: separate swap_info allocation
       sys_swapon: simplify error return from swap_info allocation
       sys_swapon: simplify error flow in alloc_swap_info
       sys_swapon: remove initial value of name variable
       sys_swapon: move setting of error nearer use
       sys_swapon: remove did_down variable
       sys_swapon: remove bdev variable
       sys_swapon: do only cleanup in the cleanup blocks
       sys_swapon: use a single error label
       sys_swapon: separate bdev claim and inode lock
       sys_swapon: simplify error flow in claim_swapfile
       sys_swapon: move setting of swapfilepages near use
       sys_swapon: separate parsing of swapfile header
       sys_swapon: simplify error flow in read_swap_header
       sys_swapon: call swap_cgroup_swapon earlier
       sys_swapon: separate parsing of bad blocks and extents
       sys_swapon: simplify error flow in setup_swap_map_and_extents
       sys_swapon: remove nr_good_pages variable
       sys_swapon: move printk outside lock
       sys_swapoff: change order to match sys_swapon
       sys_swapon: separate final enabling of the swapfile

-- 
Cesar Eduardo Barros
cesarb@cesarb.net
cesar.barros@gmail.com

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 61+ messages in thread
* [PATCHv2 00/24] Refactor sys_swapon
@ 2011-03-05 16:42 Cesar Eduardo Barros
  2011-03-05 16:42 ` [PATCHv2 13/24] sys_swapon: separate bdev claim and inode lock Cesar Eduardo Barros
  0 siblings, 1 reply; 61+ messages in thread
From: Cesar Eduardo Barros @ 2011-03-05 16:42 UTC (permalink / raw)
  To: linux-mm
  Cc: Andrew Morton, Hugh Dickins, KAMEZAWA Hiroyuki, Minchan Kim,
	Jens Axboe, linux-kernel, Eric B Munson, Cesar Eduardo Barros

[Resending with a Cc: list generated by get_maintainer.pl as suggested
by Eric B Munson, and with his Tested-by and Acked-by added to each
patch.]

This patch series refactors the sys_swapon function.

sys_swapon is currently a very large function, with 313 lines (more than
12 25-line screens), which can make it a bit hard to read. This patch
series reduces this size by half, by extracting large chunks of related
code to new helper functions.

One of these chunks of code was nearly identical to the part of
sys_swapoff which is used in case of a failure return from
try_to_unuse(), so this patch series also makes both share the same
code.

As a side effect of all this refactoring, the compiled code gets a bit
smaller (from v1 of this patch series):

   text       data        bss        dec        hex    filename
  14012        944        276      15232       3b80    mm/swapfile.o.before
  13941        944        276      15161       3b39    mm/swapfile.o.after

The v1 of this patch series was lightly tested on a x86_64 VM.

[Eric B Munson <emunson@mgebm.net> adds for the v2 of this patch series:
> I have tested this set on x86_64 by manually adding/removing swap
> files and partitions.  Also I used the hugeadm program (fomr
> libhugetlbfs) to add temporary swap files on disk and using ram disks.
> All of this worked well.
]

Changes from v1:
  Rebased from v2.6.38-rc4 to v2.6.38-rc7.

Cesar Eduardo Barros (24):
  sys_swapon: use vzalloc instead of vmalloc/memset
  sys_swapon: remove changelog from function comment
  sys_swapon: do not depend on "type" after allocation
  sys_swapon: separate swap_info allocation
  sys_swapon: simplify error return from swap_info allocation
  sys_swapon: simplify error flow in alloc_swap_info
  sys_swapon: remove initial value of name variable
  sys_swapon: move setting of error nearer use
  sys_swapon: remove did_down variable
  sys_swapon: remove bdev variable
  sys_swapon: do only cleanup in the cleanup blocks
  sys_swapon: use a single error label
  sys_swapon: separate bdev claim and inode lock
  sys_swapon: simplify error flow in claim_swapfile
  sys_swapon: move setting of swapfilepages near use
  sys_swapon: separate parsing of swapfile header
  sys_swapon: simplify error flow in read_swap_header
  sys_swapon: call swap_cgroup_swapon earlier
  sys_swapon: separate parsing of bad blocks and extents
  sys_swapon: simplify error flow in setup_swap_map_and_extents
  sys_swapon: remove nr_good_pages variable
  sys_swapon: move printk outside lock
  sys_swapoff: change order to match sys_swapon
  sys_swapon: separate final enabling of the swapfile

 mm/swapfile.c |  360 +++++++++++++++++++++++++++++++--------------------------
 1 files changed, 197 insertions(+), 163 deletions(-)

-- 
1.7.4

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

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

end of thread, other threads:[~2011-03-07 10:00 UTC | newest]

Thread overview: 61+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-02-12 18:48 [PATCH 00/24] Refactor sys_swapon Cesar Eduardo Barros
2011-02-12 18:49 ` [PATCH 01/24] sys_swapon: use vzalloc instead of vmalloc/memset Cesar Eduardo Barros
2011-02-12 18:49 ` [PATCH 02/24] sys_swapon: remove changelog from function comment Cesar Eduardo Barros
2011-02-12 18:49 ` [PATCH 03/24] sys_swapon: do not depend on "type" after allocation Cesar Eduardo Barros
2011-02-12 18:49 ` [PATCH 04/24] sys_swapon: separate swap_info allocation Cesar Eduardo Barros
2011-02-12 18:49 ` [PATCH 05/24] sys_swapon: simplify error return from " Cesar Eduardo Barros
2011-02-12 18:49 ` [PATCH 06/24] sys_swapon: simplify error flow in alloc_swap_info Cesar Eduardo Barros
2011-02-12 18:49 ` [PATCH 07/24] sys_swapon: remove initial value of name variable Cesar Eduardo Barros
2011-02-12 18:49 ` [PATCH 08/24] sys_swapon: move setting of error nearer use Cesar Eduardo Barros
2011-02-12 18:49 ` [PATCH 09/24] sys_swapon: remove did_down variable Cesar Eduardo Barros
2011-02-12 18:49 ` [PATCH 10/24] sys_swapon: remove bdev variable Cesar Eduardo Barros
2011-02-12 18:49 ` [PATCH 11/24] sys_swapon: do only cleanup in the cleanup blocks Cesar Eduardo Barros
2011-02-12 18:49 ` [PATCH 12/24] sys_swapon: use a single error label Cesar Eduardo Barros
2011-02-12 18:49 ` [PATCH 13/24] sys_swapon: separate bdev claim and inode lock Cesar Eduardo Barros
2011-02-12 18:49 ` [PATCH 14/24] sys_swapon: simplify error flow in claim_swapfile Cesar Eduardo Barros
2011-02-12 18:49 ` [PATCH 15/24] sys_swapon: move setting of swapfilepages near use Cesar Eduardo Barros
2011-02-12 18:49 ` [PATCH 16/24] sys_swapon: separate parsing of swapfile header Cesar Eduardo Barros
2011-02-12 18:49 ` [PATCH 17/24] sys_swapon: simplify error flow in read_swap_header Cesar Eduardo Barros
2011-02-12 18:49 ` [PATCH 18/24] sys_swapon: call swap_cgroup_swapon earlier Cesar Eduardo Barros
2011-02-12 18:49 ` [PATCH 19/24] sys_swapon: separate parsing of bad blocks and extents Cesar Eduardo Barros
2011-02-12 18:49 ` [PATCH 20/24] sys_swapon: simplify error flow in setup_swap_map_and_extents Cesar Eduardo Barros
2011-02-12 18:49 ` [PATCH 21/24] sys_swapon: remove nr_good_pages variable Cesar Eduardo Barros
2011-02-12 18:49 ` [PATCH 22/24] sys_swapon: move printk outside lock Cesar Eduardo Barros
2011-02-12 18:49 ` [PATCH 23/24] sys_swapoff: change order to match sys_swapon Cesar Eduardo Barros
2011-02-12 18:49 ` [PATCH 24/24] sys_swapon: separate final enabling of the swapfile Cesar Eduardo Barros
2011-03-01 18:20 ` [PATCH 00/24] Refactor sys_swapon Eric B Munson
2011-03-01 23:23   ` Cesar Eduardo Barros
2011-03-01 23:28     ` [PATCHv2 " Cesar Eduardo Barros
2011-03-01 23:28       ` [PATCHv2 01/24] sys_swapon: use vzalloc instead of vmalloc/memset Cesar Eduardo Barros
2011-03-01 23:28       ` [PATCHv2 02/24] sys_swapon: remove changelog from function comment Cesar Eduardo Barros
2011-03-01 23:28       ` [PATCHv2 03/24] sys_swapon: do not depend on "type" after allocation Cesar Eduardo Barros
2011-03-01 23:28       ` [PATCHv2 04/24] sys_swapon: separate swap_info allocation Cesar Eduardo Barros
2011-03-01 23:28       ` [PATCHv2 05/24] sys_swapon: simplify error return from " Cesar Eduardo Barros
2011-03-01 23:28       ` [PATCHv2 06/24] sys_swapon: simplify error flow in alloc_swap_info Cesar Eduardo Barros
2011-03-01 23:28       ` [PATCHv2 07/24] sys_swapon: remove initial value of name variable Cesar Eduardo Barros
2011-03-01 23:28       ` [PATCHv2 08/24] sys_swapon: move setting of error nearer use Cesar Eduardo Barros
2011-03-01 23:28       ` [PATCHv2 09/24] sys_swapon: remove did_down variable Cesar Eduardo Barros
2011-03-01 23:28       ` [PATCHv2 10/24] sys_swapon: remove bdev variable Cesar Eduardo Barros
2011-03-01 23:28       ` [PATCHv2 11/24] sys_swapon: do only cleanup in the cleanup blocks Cesar Eduardo Barros
2011-03-01 23:28       ` [PATCHv2 12/24] sys_swapon: use a single error label Cesar Eduardo Barros
2011-03-01 23:28       ` [PATCHv2 13/24] sys_swapon: separate bdev claim and inode lock Cesar Eduardo Barros
2011-03-02 21:40         ` Eric B Munson
2011-03-02 23:02           ` Cesar Eduardo Barros
2011-03-01 23:28       ` [PATCHv2 14/24] sys_swapon: simplify error flow in claim_swapfile Cesar Eduardo Barros
2011-03-01 23:28       ` [PATCHv2 15/24] sys_swapon: move setting of swapfilepages near use Cesar Eduardo Barros
2011-03-01 23:28       ` [PATCHv2 16/24] sys_swapon: separate parsing of swapfile header Cesar Eduardo Barros
2011-03-01 23:28       ` [PATCHv2 17/24] sys_swapon: simplify error flow in read_swap_header Cesar Eduardo Barros
2011-03-01 23:28       ` [PATCHv2 18/24] sys_swapon: call swap_cgroup_swapon earlier Cesar Eduardo Barros
2011-03-01 23:28       ` [PATCHv2 19/24] sys_swapon: separate parsing of bad blocks and extents Cesar Eduardo Barros
2011-03-01 23:28       ` [PATCHv2 20/24] sys_swapon: simplify error flow in setup_swap_map_and_extents Cesar Eduardo Barros
2011-03-01 23:28       ` [PATCHv2 21/24] sys_swapon: remove nr_good_pages variable Cesar Eduardo Barros
2011-03-01 23:28       ` [PATCHv2 22/24] sys_swapon: move printk outside lock Cesar Eduardo Barros
2011-03-01 23:28       ` [PATCHv2 23/24] sys_swapoff: change order to match sys_swapon Cesar Eduardo Barros
2011-03-01 23:28       ` [PATCHv2 24/24] sys_swapon: separate final enabling of the swapfile Cesar Eduardo Barros
2011-03-02 21:06       ` [PATCHv2 00/24] Refactor sys_swapon Eric B Munson
2011-03-02 21:43       ` Eric B Munson
2011-03-03 16:15       ` Eric B Munson
2011-03-04 22:54         ` Cesar Eduardo Barros
2011-03-04 22:58           ` Eric B Munson
  -- strict thread matches above, loose matches on Subject: below --
2011-03-05 16:42 Cesar Eduardo Barros
2011-03-05 16:42 ` [PATCHv2 13/24] sys_swapon: separate bdev claim and inode lock Cesar Eduardo Barros
2011-03-07  9:53   ` KAMEZAWA Hiroyuki

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).