linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Shachar Raindel <raindel@mellanox.com>
To: linux-mm@kvack.org
Cc: kirill.shutemov@linux.intel.com, mgorman@suse.de,
	riel@redhat.com, ak@linux.intel.com, matthew.r.wilcox@intel.com,
	dave.hansen@linux.intel.com, n-horiguchi@ah.jp.nec.com,
	akpm@linux-foundation.org, torvalds@linux-foundation.org,
	haggaie@mellanox.com, aarcange@redhat.com, pfeiner@google.com,
	hannes@cmpxchg.org, sagig@mellanox.com, walken@google.com,
	raindel@mellanox.com
Subject: [PATCH V4 0/4] Refactor do_wp_page, no functional change
Date: Sun, 22 Feb 2015 14:47:17 +0200	[thread overview]
Message-ID: <1424609241-20106-1-git-send-email-raindel@mellanox.com> (raw)

Currently do_wp_page contains 265 code lines. It also contains 9 goto
statements, of which 5 are targeting labels which are not cleanup
related. This makes the function extremely difficult to
understand. The following patches are an attempt at breaking the
function to its basic components, and making it easier to understand.

The patches are straight forward function extractions from
do_wp_page. As we extract functions, we remove unneeded parameters and
simplify the code as much as possible. However, the functionality is
supposed to remain completely unchanged. The patches also attempt to
document the functionality of each extracted function. In patch 2, we
split the unlock logic to the contain logic relevant to specific needs
of each use case, instead of having huge number of conditional
decisions in a single unlock flow.


Change log:

v0 -> v1:
- Minor renaming of argument in patch 1
- Instead of having a complex unlock function, unlock the needed parts
  in the relevant call sites. Simplify code accordingly.
- Avoid calling wp_page_copy with the ptl held.
- Rename wp_page_shared_vma to wp_page_shared, flip the logic of a
  check there to goto the end of the function if no function, instead
  of having a large conditional block.

v1 -> v2:
- Cosmetical white space changes in patch 4

v2 -> v3:
- Rebase to v3.19-rc3
- Add missing Acked-by and CC notations to the commit messages.

v3 -> v4:
- Rebase to next-20150219

Shachar Raindel (4):
  mm: Refactor do_wp_page, extract the reuse case
  mm: Refactor do_wp_page - rewrite the unlock flow
  mm: refactor do_wp_page, extract the page copy flow
  mm: Refactor do_wp_page handling of shared vma into a function

 mm/memory.c | 369 +++++++++++++++++++++++++++++++++++-------------------------
 1 file changed, 215 insertions(+), 154 deletions(-)

-- 
1.7.11.2

--
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/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

             reply	other threads:[~2015-02-22 12:47 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-22 12:47 Shachar Raindel [this message]
2015-02-22 12:47 ` [PATCH V4 1/4] mm: Refactor do_wp_page, extract the reuse case Shachar Raindel
2015-02-22 13:09   ` Johannes Weiner
2015-02-22 12:47 ` [PATCH V4 2/4] mm: Refactor do_wp_page - rewrite the unlock flow Shachar Raindel
2015-02-22 13:19   ` Johannes Weiner
2015-02-22 12:47 ` [PATCH V4 3/4] mm: refactor do_wp_page, extract the page copy flow Shachar Raindel
2015-02-22 13:24   ` Johannes Weiner
2015-02-22 12:47 ` [PATCH V4 4/4] mm: Refactor do_wp_page handling of shared vma into a function Shachar Raindel
2015-02-22 13:28   ` Johannes Weiner

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=1424609241-20106-1-git-send-email-raindel@mellanox.com \
    --to=raindel@mellanox.com \
    --cc=aarcange@redhat.com \
    --cc=ak@linux.intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=dave.hansen@linux.intel.com \
    --cc=haggaie@mellanox.com \
    --cc=hannes@cmpxchg.org \
    --cc=kirill.shutemov@linux.intel.com \
    --cc=linux-mm@kvack.org \
    --cc=matthew.r.wilcox@intel.com \
    --cc=mgorman@suse.de \
    --cc=n-horiguchi@ah.jp.nec.com \
    --cc=pfeiner@google.com \
    --cc=riel@redhat.com \
    --cc=sagig@mellanox.com \
    --cc=torvalds@linux-foundation.org \
    --cc=walken@google.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