From: Thomas Gleixner <tglx@linutronix.de>
To: Frederic Weisbecker <frederic@kernel.org>
Cc: Mel Gorman <mgorman@techsingularity.net>,
Vlastimil Babka <vbabka@suse.cz>,
Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
linux-mm@kvack.org
Subject: Re: [PATCH 0/2] mm/swap: Add locking for pagevec
Date: Tue, 16 Oct 2018 19:13:48 +0200 (CEST) [thread overview]
Message-ID: <alpine.DEB.2.21.1810161911480.1725@nanos.tec.linutronix.de> (raw)
In-Reply-To: <20181016162622.GA12144@lerouge>
On Tue, 16 Oct 2018, Frederic Weisbecker wrote:
> On Mon, Oct 15, 2018 at 10:50:48AM +0100, Mel Gorman wrote:
> > On Fri, Oct 12, 2018 at 09:21:41AM +0200, Vlastimil Babka wrote:
> > > On 9/14/18 4:59 PM, Sebastian Andrzej Siewior wrote:
> > > I think this evaluation is missing the other side of the story, and
> > > that's the cost of using a spinlock (even uncontended) instead of
> > > disabling preemption. The expectation for LRU pagevec is that the local
> > > operations will be much more common than draining of other CPU's, so
> > > it's optimized for the former.
> > >
> >
> > Agreed, the drain operation should be extremely rare except under heavy
> > memory pressure, particularly if mixed with THP allocations. The overall
> > intent seems to be improving lockdep coverage but I don't think we
> > should take a hit in the common case just to get that coverage. Bear in
> > mind that the main point of the pagevec (whether it's true or not) is to
> > avoid the much heavier LRU lock.
>
> So indeed, if the only purpose of this patch were to make lockdep wiser,
> a pair of spin_lock_acquire() / spin_unlock_release() would be enough to
> teach it and would avoid the overhead.
>
> Now another significant incentive behind this change is to improve CPU isolation.
> Workloads relying on owning the entire CPU without being disturbed are interested
> in this as it allows to offload some noise. It's no big deal for those who can
> tolerate rare events but often CPU isolation is combined with deterministic latency
> requirements.
>
> So, I'm not saying this per-CPU spinlock is necessarily the right answer, I
> don't know that code enough to have an opinion, but I still wish we can find
> a solution.
One way to solve this and I had played with it already is to make the smp
function call based variant and the lock based variant switchable at boot
time with a static key. That way CPU isolation can select it and take the
penalty while normal workloads are not affected.
Thanks,
tglx
next prev parent reply other threads:[~2018-10-16 17:13 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-14 14:59 Sebastian Andrzej Siewior
2018-09-14 14:59 ` [PATCH 1/2] mm/swap: Add pagevec locking Sebastian Andrzej Siewior
2018-09-30 3:16 ` [LKP] [mm/swap] d884021f52: will-it-scale.per_process_ops -2.4% regression kernel test robot
2018-09-30 8:17 ` Sebastian Andrzej Siewior
2018-09-14 14:59 ` [PATCH 2/2] mm/swap: Access struct pagevec remotely Sebastian Andrzej Siewior
2018-11-09 23:06 ` Andrew Morton
2018-10-12 7:21 ` [PATCH 0/2] mm/swap: Add locking for pagevec Vlastimil Babka
2018-10-15 9:50 ` Mel Gorman
2018-10-16 16:26 ` Frederic Weisbecker
2018-10-16 17:13 ` Thomas Gleixner [this message]
2018-10-16 19:54 ` Frederic Weisbecker
2018-10-16 20:44 ` Thomas Gleixner
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=alpine.DEB.2.21.1810161911480.1725@nanos.tec.linutronix.de \
--to=tglx@linutronix.de \
--cc=bigeasy@linutronix.de \
--cc=frederic@kernel.org \
--cc=linux-mm@kvack.org \
--cc=mgorman@techsingularity.net \
--cc=vbabka@suse.cz \
/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