From: Tim Chen <tim.c.chen@linux.intel.com>
To: Michal Hocko <mhocko@kernel.org>
Cc: "Huang, Ying" <ying.huang@intel.com>,
Andrew Morton <akpm@linux-foundation.org>,
dave.hansen@intel.com, ak@linux.intel.com, aaron.lu@intel.com,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
Hugh Dickins <hughd@google.com>, Shaohua Li <shli@kernel.org>,
Minchan Kim <minchan@kernel.org>, Rik van Riel <riel@redhat.com>,
Andrea Arcangeli <aarcange@redhat.com>,
"Kirill A . Shutemov" <kirill.shutemov@linux.intel.com>,
Vladimir Davydov <vdavydov.dev@gmail.com>,
Johannes Weiner <hannes@cmpxchg.org>,
Hillf Danton <hillf.zj@alibaba-inc.com>,
Christian Borntraeger <borntraeger@de.ibm.com>,
Jonathan Corbet <corbet@lwn.net>,
Tim C Chen <tim.c.chen@intel.com>
Subject: Re: [Update][PATCH v5 7/9] mm/swap: Add cache for swap slots allocation
Date: Wed, 18 Jan 2017 10:03:27 -0800 [thread overview]
Message-ID: <20170118180327.GA24225@linux.intel.com> (raw)
In-Reply-To: <20170118124555.GQ7015@dhcp22.suse.cz>
[-- Attachment #1: Type: text/plain, Size: 2459 bytes --]
On Wed, Jan 18, 2017 at 01:45:55PM +0100, Michal Hocko wrote:
> On Tue 17-01-17 13:42:35, Tim Chen wrote:
> [...]
> > Logic wise, We do allow pre-emption as per cpu ptr cache->slots is
> > protected by the mutex cache->alloc_lock. We switch the
> > inappropriately used this_cpu_ptr to raw_cpu_ptr for per cpu ptr
> > access of cache->slots.
>
> OK, that looks better. I would still appreciate something like the
> following folded in
> diff --git a/include/linux/swap_slots.h b/include/linux/swap_slots.h
> index fb907346c5c6..0afe748453a7 100644
> --- a/include/linux/swap_slots.h
> +++ b/include/linux/swap_slots.h
> @@ -11,6 +11,7 @@
>
> struct swap_slots_cache {
> bool lock_initialized;
> + /* protects slots, nr, cur */
> struct mutex alloc_lock;
> swp_entry_t *slots;
> int nr;
>
I've included here a patch for the comments.
Thanks.
Tim
--->8---
From: Tim Chen <tim.c.chen@linux.intel.com>
Date: Wed, 18 Jan 2017 09:52:28 -0800
Subject: [PATCH] mm/swap: Add comments on locks in swap_slots.h
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Ying Huang <ying.huang@intel.com>, dave.hansen@intel.com, ak@linux.intel.com, aaron.lu@intel.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Hugh Dickins <hughd@google.com>, Shaohua Li <shli@kernel.org>, Minchan Kim <minchan@kernel.org>, Rik van Riel <riel@redhat.com>, Andrea Arcangeli <aarcange@redhat.com>, Kirill A . Shutemov <kirill.shutemov@linux.intel.com>, Vladimir Davydov <vdavydov.dev@gmail.com>, Johannes Weiner <hannes@cmpxchg.org>, Michal Hocko <mhocko@kernel.org>, Hillf Danton <hillf.zj@alibaba-inc.com>, Christian Borntraeger <borntraeger@de.ibm.com>, Jonathan Corbet <corbet@lwn.net>
Explains what each lock protects in swap_slots_cache structure.
Signed-off-by: Tim Chen <tim.c.chen@linux.intel.com>
---
include/linux/swap_slots.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/linux/swap_slots.h b/include/linux/swap_slots.h
index fb90734..6ef92d1 100644
--- a/include/linux/swap_slots.h
+++ b/include/linux/swap_slots.h
@@ -11,11 +11,11 @@
struct swap_slots_cache {
bool lock_initialized;
- struct mutex alloc_lock;
+ struct mutex alloc_lock; /* protects slots, nr, cur */
swp_entry_t *slots;
int nr;
int cur;
- spinlock_t free_lock;
+ spinlock_t free_lock; /* protects slots_ret, n_ret */
swp_entry_t *slots_ret;
int n_ret;
};
--
2.5.5
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 801 bytes --]
next prev parent reply other threads:[~2017-01-18 18:03 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-11 17:55 [PATCH v5 0/9] mm/swap: Regular page swap optimizations Tim Chen
2017-01-11 17:55 ` Tim Chen
2017-01-11 17:55 ` [PATCH v5 1/9] mm/swap: Fix kernel message in swap_info_get() Tim Chen
2017-01-11 17:55 ` Tim Chen
2017-01-11 17:55 ` [PATCH v5 2/9] mm/swap: Add cluster lock Tim Chen
2017-01-11 17:55 ` Tim Chen
2017-01-11 23:00 ` Andrew Morton
2017-01-11 23:00 ` Andrew Morton
2017-01-11 23:07 ` Jonathan Corbet
2017-01-11 23:07 ` Jonathan Corbet
2017-01-11 23:15 ` Andrew Morton
2017-01-11 23:15 ` Andrew Morton
2017-01-12 1:47 ` Huang, Ying
2017-01-12 1:47 ` Huang, Ying
2017-01-12 1:58 ` Andrew Morton
2017-01-12 1:58 ` Andrew Morton
2017-01-12 2:51 ` Huang, Ying
2017-01-12 2:51 ` Huang, Ying
2017-01-14 4:37 ` [Update][PATCH " Huang, Ying
2017-01-14 4:37 ` Huang, Ying
2017-01-12 1:23 ` [PATCH " Huang, Ying
2017-01-12 1:23 ` Huang, Ying
2017-01-11 17:55 ` [PATCH v5 3/9] mm/swap: Split swap cache into 64MB trunks Tim Chen
2017-01-11 17:55 ` Tim Chen
2017-01-11 23:09 ` Andrew Morton
2017-01-11 23:09 ` Andrew Morton
2017-01-11 23:19 ` Andi Kleen
2017-01-11 23:19 ` Andi Kleen
2017-01-12 16:47 ` Tim Chen
2017-01-11 17:55 ` [PATCH v5 4/9] mm/swap: skip read ahead for unreferenced swap slots Tim Chen
2017-01-11 17:55 ` Tim Chen
2017-01-11 17:55 ` [PATCH v5 5/9] mm/swap: Allocate swap slots in batches Tim Chen
2017-01-11 17:55 ` Tim Chen
2017-01-11 17:55 ` [PATCH v5 6/9] mm/swap: Free swap slots in batch Tim Chen
2017-01-11 17:55 ` Tim Chen
2017-01-11 17:55 ` [PATCH v5 7/9] mm/swap: Add cache for swap slots allocation Tim Chen
2017-01-11 17:55 ` Tim Chen
2017-01-17 2:55 ` [Update][PATCH " Huang, Ying
2017-01-17 2:55 ` Huang, Ying
2017-01-17 10:16 ` Michal Hocko
2017-01-17 10:16 ` Michal Hocko
2017-01-17 17:24 ` Chen, Tim C
2017-01-17 17:24 ` Chen, Tim C
2017-01-17 20:03 ` Michal Hocko
2017-01-17 20:03 ` Michal Hocko
2017-01-17 20:31 ` Chen, Tim C
2017-01-17 20:31 ` Chen, Tim C
2017-01-17 21:42 ` Tim Chen
2017-01-18 12:45 ` Michal Hocko
2017-01-18 12:45 ` Michal Hocko
2017-01-18 18:03 ` Tim Chen [this message]
2017-01-18 18:15 ` Michal Hocko
2017-01-18 18:15 ` Michal Hocko
2017-01-11 17:55 ` [PATCH v5 8/9] mm/swap: Enable swap slots cache usage Tim Chen
2017-01-11 17:55 ` Tim Chen
2017-01-11 17:55 ` [PATCH v5 9/9] mm/swap: Skip readahead only when swap slot cache is enabled Tim Chen
2017-01-11 17:55 ` Tim Chen
2017-01-16 12:02 ` [PATCH v5 0/9] mm/swap: Regular page swap optimizations Michal Hocko
2017-01-16 12:02 ` Michal Hocko
2017-01-17 1:06 ` Huang, Ying
2017-01-17 1:06 ` Huang, Ying
2017-01-17 7:49 ` Michal Hocko
2017-01-17 7:49 ` Michal Hocko
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=20170118180327.GA24225@linux.intel.com \
--to=tim.c.chen@linux.intel.com \
--cc=aarcange@redhat.com \
--cc=aaron.lu@intel.com \
--cc=ak@linux.intel.com \
--cc=akpm@linux-foundation.org \
--cc=borntraeger@de.ibm.com \
--cc=corbet@lwn.net \
--cc=dave.hansen@intel.com \
--cc=hannes@cmpxchg.org \
--cc=hillf.zj@alibaba-inc.com \
--cc=hughd@google.com \
--cc=kirill.shutemov@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@kernel.org \
--cc=minchan@kernel.org \
--cc=riel@redhat.com \
--cc=shli@kernel.org \
--cc=tim.c.chen@intel.com \
--cc=vdavydov.dev@gmail.com \
--cc=ying.huang@intel.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 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.