From: Cesar Eduardo Barros <cesarb@cesarb.net>
To: linux-mm@kvack.org
Cc: Andrew Morton <akpm@linux-foundation.org>,
Hugh Dickins <hughd@google.com>,
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
Minchan Kim <minchan.kim@gmail.com>,
Jens Axboe <jaxboe@fusionio.com>,
linux-kernel@vger.kernel.org, Eric B Munson <emunson@mgebm.net>,
Cesar Eduardo Barros <cesarb@cesarb.net>
Subject: [PATCHv2 00/24] Refactor sys_swapon
Date: Sat, 5 Mar 2011 13:42:01 -0300 [thread overview]
Message-ID: <1299343345-3984-1-git-send-email-cesarb@cesarb.net> (raw)
[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>
next reply other threads:[~2011-03-05 16:42 UTC|newest]
Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-05 16:42 Cesar Eduardo Barros [this message]
2011-03-05 16:42 ` [PATCHv2 01/24] sys_swapon: use vzalloc instead of vmalloc/memset Cesar Eduardo Barros
2011-03-05 17:04 ` Pekka Enberg
2011-03-05 19:07 ` Jesper Juhl
2011-03-07 9:13 ` KAMEZAWA Hiroyuki
2011-03-05 16:42 ` [PATCHv2 02/24] sys_swapon: remove changelog from function comment Cesar Eduardo Barros
2011-03-05 17:05 ` Pekka Enberg
2011-03-05 19:11 ` Jesper Juhl
2011-03-07 9:17 ` KAMEZAWA Hiroyuki
2011-03-05 16:42 ` [PATCHv2 03/24] sys_swapon: do not depend on "type" after allocation Cesar Eduardo Barros
2011-03-05 17:07 ` Pekka Enberg
2011-03-07 9:24 ` KAMEZAWA Hiroyuki
2011-03-05 16:42 ` [PATCHv2 04/24] sys_swapon: separate swap_info allocation Cesar Eduardo Barros
2011-03-05 17:07 ` Pekka Enberg
2011-03-07 9:28 ` KAMEZAWA Hiroyuki
2011-03-05 16:42 ` [PATCHv2 05/24] sys_swapon: simplify error return from " Cesar Eduardo Barros
2011-03-05 17:08 ` Pekka Enberg
2011-03-07 9:29 ` KAMEZAWA Hiroyuki
2011-03-05 16:42 ` [PATCHv2 06/24] sys_swapon: simplify error flow in alloc_swap_info Cesar Eduardo Barros
2011-03-05 17:10 ` Pekka Enberg
2011-03-07 9:31 ` KAMEZAWA Hiroyuki
2011-03-05 16:42 ` [PATCHv2 07/24] sys_swapon: remove initial value of name variable Cesar Eduardo Barros
2011-03-05 17:11 ` Pekka Enberg
2011-03-07 9:33 ` KAMEZAWA Hiroyuki
2011-03-05 16:42 ` [PATCHv2 08/24] sys_swapon: move setting of error nearer use Cesar Eduardo Barros
2011-03-05 19:15 ` Jesper Juhl
2011-03-07 9:22 ` Pekka Enberg
2011-03-07 9:35 ` KAMEZAWA Hiroyuki
2011-03-05 16:42 ` [PATCHv2 09/24] sys_swapon: remove did_down variable Cesar Eduardo Barros
2011-03-07 9:43 ` KAMEZAWA Hiroyuki
2011-03-05 16:42 ` [PATCHv2 10/24] sys_swapon: remove bdev variable Cesar Eduardo Barros
2011-03-07 9:45 ` KAMEZAWA Hiroyuki
2011-03-05 16:42 ` [PATCHv2 11/24] sys_swapon: do only cleanup in the cleanup blocks Cesar Eduardo Barros
2011-03-07 9:48 ` KAMEZAWA Hiroyuki
2011-03-05 16:42 ` [PATCHv2 12/24] sys_swapon: use a single error label Cesar Eduardo Barros
2011-03-07 9:52 ` KAMEZAWA Hiroyuki
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
2011-03-05 16:42 ` [PATCHv2 14/24] sys_swapon: simplify error flow in claim_swapfile Cesar Eduardo Barros
2011-03-07 9:55 ` KAMEZAWA Hiroyuki
2011-03-05 16:42 ` [PATCHv2 15/24] sys_swapon: move setting of swapfilepages near use Cesar Eduardo Barros
2011-03-05 19:44 ` Jesper Juhl
2011-03-07 9:23 ` Pekka Enberg
2011-03-07 9:56 ` KAMEZAWA Hiroyuki
2011-03-05 16:42 ` [PATCHv2 16/24] sys_swapon: separate parsing of swapfile header Cesar Eduardo Barros
2011-03-07 9:57 ` KAMEZAWA Hiroyuki
2011-03-05 16:42 ` [PATCHv2 17/24] sys_swapon: simplify error flow in read_swap_header Cesar Eduardo Barros
2011-03-07 9:58 ` KAMEZAWA Hiroyuki
2011-03-05 16:42 ` [PATCHv2 18/24] sys_swapon: call swap_cgroup_swapon earlier Cesar Eduardo Barros
2011-03-05 17:25 ` Pekka Enberg
2011-03-07 9:59 ` KAMEZAWA Hiroyuki
2011-03-05 16:42 ` [PATCHv2 19/24] sys_swapon: separate parsing of bad blocks and extents Cesar Eduardo Barros
2011-03-05 17:25 ` Pekka Enberg
2011-03-07 10:00 ` KAMEZAWA Hiroyuki
2011-03-05 16:42 ` [PATCHv2 20/24] sys_swapon: simplify error flow in setup_swap_map_and_extents Cesar Eduardo Barros
2011-03-05 17:22 ` Pekka Enberg
2011-03-07 10:03 ` KAMEZAWA Hiroyuki
2011-03-05 16:42 ` [PATCHv2 21/24] sys_swapon: remove nr_good_pages variable Cesar Eduardo Barros
2011-03-05 17:18 ` Pekka Enberg
2011-03-07 10:04 ` KAMEZAWA Hiroyuki
2011-03-05 16:42 ` [PATCHv2 22/24] sys_swapon: move printk outside lock Cesar Eduardo Barros
2011-03-07 10:05 ` KAMEZAWA Hiroyuki
2011-03-05 16:42 ` [PATCHv2 23/24] sys_swapoff: change order to match sys_swapon Cesar Eduardo Barros
2011-03-05 17:21 ` Pekka Enberg
2011-03-07 10:06 ` KAMEZAWA Hiroyuki
2011-03-05 16:42 ` [PATCHv2 24/24] sys_swapon: separate final enabling of the swapfile Cesar Eduardo Barros
2011-03-05 17:20 ` Pekka Enberg
2011-03-07 10:23 ` KAMEZAWA Hiroyuki
-- strict thread matches above, loose matches on Subject: below --
2011-03-01 23:23 [PATCH 00/24] Refactor sys_swapon Cesar Eduardo Barros
2011-03-01 23:28 ` [PATCHv2 " Cesar Eduardo Barros
2011-03-02 21:06 ` 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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1299343345-3984-1-git-send-email-cesarb@cesarb.net \
--to=cesarb@cesarb.net \
--cc=akpm@linux-foundation.org \
--cc=emunson@mgebm.net \
--cc=hughd@google.com \
--cc=jaxboe@fusionio.com \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=minchan.kim@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).