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 0/5] Refactor do_wp_page, no functional change
Date: Mon, 1 Dec 2014 14:04:40 +0200 [thread overview]
Message-ID: <1417435485-24629-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 first 4 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.
The last patch moves the MMU notifier call. Originally, it was
conditionally called from the unlock step. The patch moves it to the
only call site which sets the conditions to call the notifier. This
results in a minor functional change - the notifier for the end of the
invalidation is called after we release the page cache of the old
page, and not before. Given that the notifier is for the end of the
invalidation period, this is supposed to be OK for all users of the
MMU notifiers, who should not be touching the relevant page anyway.
The patches have been tested using trinity on a KVM machine with 4
vCPU, with all possible kernel debugging options enabled. So far, we
have not seen any regressions. We have also tested the patches with
internal tests we have that stress the MMU notifiers, again without
seeing any issues.
Shachar Raindel (5):
mm: Refactor do_wp_page, extract the reuse case
mm: Refactor do_wp_page - extract 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: Move the MMU-notifier code from wp_page_unlock to wp_page_copy
mm/memory.c | 418 +++++++++++++++++++++++++++++++++++-------------------------
1 file changed, 247 insertions(+), 171 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>
next reply other threads:[~2014-12-01 12:05 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-01 12:04 Shachar Raindel [this message]
2014-12-01 12:04 ` [PATCH 1/5] mm: Refactor do_wp_page, extract the reuse case Shachar Raindel
2014-12-01 12:30 ` Kirill A. Shutemov
2014-12-01 12:34 ` Shachar Raindel
2014-12-01 12:50 ` Kirill A. Shutemov
2014-12-01 12:04 ` [PATCH 2/5] mm: Refactor do_wp_page - extract the unlock flow Shachar Raindel
2014-12-01 12:43 ` Kirill A. Shutemov
2014-12-01 12:04 ` [PATCH 3/5] mm: refactor do_wp_page, extract the page copy flow Shachar Raindel
2014-12-01 12:57 ` Kirill A. Shutemov
2014-12-01 12:04 ` [PATCH 4/5] mm: Refactor do_wp_page handling of shared vma into a function Shachar Raindel
2014-12-01 13:03 ` Kirill A. Shutemov
2014-12-01 12:04 ` [PATCH 5/5] mm: Move the MMU-notifier code from wp_page_unlock to wp_page_copy Shachar Raindel
2014-12-01 16:47 ` [PATCH 0/5] Refactor do_wp_page, no functional change Linus Torvalds
2014-12-01 16:53 ` Andi Kleen
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=1417435485-24629-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