All of lore.kernel.org
 help / color / mirror / Atom feed
From: Luiz Capitulino <lcapitulino@redhat.com>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: Chris Metcalf <cmetcalf@mellanox.com>,
	Gilad Ben Yossef <giladb@mellanox.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Ingo Molnar <mingo@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Rik van Riel <riel@redhat.com>, Tejun Heo <tj@kernel.org>,
	Frederic Weisbecker <fweisbec@gmail.com>,
	"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>,
	Christoph Lameter <cl@linux.com>,
	Viresh Kumar <viresh.kumar@linaro.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will.deacon@arm.com>,
	Andy Lutomirski <luto@amacapital.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Francis Giraldeau <francis.giraldeau@gmail.com>,
	Andi Kleen <andi@firstfloor.org>, Arnd Bergmann <arnd@arndb.de>,
	linux-kernel@vger.kernel.org
Subject: Re: task isolation discussion at Linux Plumbers
Date: Fri, 11 Nov 2016 15:54:56 -0500	[thread overview]
Message-ID: <20161111155456.0b8b8589@redhat.com> (raw)
In-Reply-To: <alpine.DEB.2.20.1611071753040.3709@nanos>

On Mon, 7 Nov 2016 17:55:47 +0100 (CET)
Thomas Gleixner <tglx@linutronix.de> wrote:

> On Sat, 5 Nov 2016, Chris Metcalf wrote:
> > == Remote statistics ==
> > 
> > We discussed the possibility of remote statistics gathering, i.e. load
> > average etc.  The idea would be that we could have housekeeping
> > core(s) periodically iterate over the nohz cores to load their rq
> > remotely and do update_current etc.  Presumably it should be possible
> > for a single housekeeping core to handle doing this for all the
> > nohz_full cores, as we only need to do it quite infrequently.
> > 
> > Thomas suggested that this might be the last remaining thing that
> > needed to be done to allow disabling the current behavior of falling
> > back to a 1 Hz clock in nohz_full.
> > 
> > I believe Thomas said he had a patch to do this already.  
> 
> No, Riek was working on that.

Rik series made it possible to have remote tick sampling. That is,
calling account_process_tick(cpu) from a housekeeping CPU, so that
tick accounting is done for a remote "cpu". The series was intended
to improve overhead on nohz_full CPUs.

However, to get rid of the 1Hz tick, we need to do the same thing
for scheduler_tick(). I'm not sure if this has been attempted yet,
and if it's at all possible.

> > == Remote LRU cache drain ==
> > 
> > One of the issues with task isolation currently is that the LRU cache
> > drain must be done prior to entering userspace, but it requires
> > interrupts enabled and thus can't be done atomically.  My previous
> > patch series have handled this by checking with interrupts disabled,
> > but then looping around with interrupts enabled to try to drain the
> > LRU pagevecs.  Experimentally this works, but it's not provable that
> > it terminates, which is worrisome.  Andy suggested adding a percpu
> > flag to disable creation of deferred work like LRU cache pages.
> > 
> > Thomas suggested using an RT "local lock" to guard the LRU cache
> > flush; he is planning on bringing the concept to mainline in any case.
> > However, after some discussion we converged on simply using a spinlock
> > to guard the appropriate resources.  As a result, the
> > lru_add_drain_all() code that currently queues work on each remote cpu
> > to drain it, can instead simply acquire the lock and drain it remotely.
> > This means that a task isolation task no longer needs to worry about
> > being interrupted by SMP function call IPIs, so we don't have to deal
> > with this in the task isolation framework any more.
> > 
> > I don't recall anyone else volunteering to tackle this, so I will plan
> > to look at it.  The patch to do that should be orthogonal to the
> > revised task isolation patch series.  
> 
> I offered to clean up the patch from RT. I'll do that in the next days.

Yes, the RT kernel got a patch that fixes this. I wonder if the same
idea could work for vm_stat (that is, gathering those stats from
housekeeping CPUs vs. having to queue deferrable work to do it).

  parent reply	other threads:[~2016-11-11 20:55 UTC|newest]

Thread overview: 125+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-16 21:19 [PATCH v15 00/13] support "task_isolation" mode Chris Metcalf
2016-08-16 21:19 ` [PATCH v15 01/13] vmstat: add quiet_vmstat_sync function Chris Metcalf
2016-08-16 21:19 ` [PATCH v15 02/13] vmstat: add vmstat_idle function Chris Metcalf
2016-08-16 21:19   ` Chris Metcalf
2016-08-16 21:19 ` [PATCH v15 03/13] lru_add_drain_all: factor out lru_add_drain_needed Chris Metcalf
2016-08-16 21:19   ` Chris Metcalf
2016-08-16 21:19 ` [PATCH v15 04/13] task_isolation: add initial support Chris Metcalf
2016-08-16 21:19   ` Chris Metcalf
2016-08-29 16:33   ` Peter Zijlstra
2016-08-29 16:33     ` Peter Zijlstra
2016-08-29 16:40     ` Chris Metcalf
2016-08-29 16:40       ` Chris Metcalf
2016-08-29 16:48       ` Peter Zijlstra
2016-08-29 16:48         ` Peter Zijlstra
2016-08-29 16:53         ` Chris Metcalf
2016-08-29 16:53           ` Chris Metcalf
2016-08-30  7:59           ` Peter Zijlstra
2016-08-30  7:59             ` Peter Zijlstra
2016-08-30  7:58       ` Peter Zijlstra
2016-08-30  7:58         ` Peter Zijlstra
     [not found]         ` <20160830075854.GZ10153-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org>
2016-08-30 15:32           ` Chris Metcalf
2016-08-30 15:32             ` Chris Metcalf
2016-08-30 15:32             ` Chris Metcalf
2016-08-30 16:30             ` Andy Lutomirski
2016-08-30 16:30               ` Andy Lutomirski
2016-08-30 16:30               ` Andy Lutomirski
2016-08-30 17:02               ` Chris Metcalf
2016-08-30 17:02                 ` Chris Metcalf
2016-08-30 18:43                 ` Andy Lutomirski
2016-08-30 18:43                   ` Andy Lutomirski
2016-08-30 19:37                   ` Chris Metcalf
2016-08-30 19:37                     ` Chris Metcalf
2016-08-30 19:50                     ` Andy Lutomirski
2016-08-30 19:50                       ` Andy Lutomirski
2016-08-30 19:50                       ` Andy Lutomirski
2016-09-02 14:04                       ` Chris Metcalf
2016-09-02 14:04                         ` Chris Metcalf
     [not found]                         ` <3f84f736-ed7f-adff-d5f0-4f7db664208f-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2016-09-02 17:28                           ` Andy Lutomirski
2016-09-02 17:28                             ` Andy Lutomirski
2016-09-02 17:28                             ` Andy Lutomirski
2016-09-09 17:40                             ` Chris Metcalf
2016-09-09 17:40                               ` Chris Metcalf
2016-09-12 17:41                               ` Andy Lutomirski
2016-09-12 17:41                                 ` Andy Lutomirski
2016-09-12 19:25                                 ` Chris Metcalf
2016-09-12 19:25                                   ` Chris Metcalf
2016-09-27 14:22                             ` Frederic Weisbecker
2016-09-27 14:22                               ` Frederic Weisbecker
2016-09-27 14:39                               ` Peter Zijlstra
2016-09-27 14:39                                 ` Peter Zijlstra
2016-09-27 14:51                                 ` Frederic Weisbecker
2016-09-27 14:51                                   ` Frederic Weisbecker
2016-09-27 14:48                               ` Paul E. McKenney
2016-09-27 14:48                                 ` Paul E. McKenney
2016-09-30 16:59                   ` Chris Metcalf
2016-09-30 16:59                     ` Chris Metcalf
2016-09-01 10:06             ` Peter Zijlstra
2016-09-01 10:06               ` Peter Zijlstra
2016-09-02 14:03               ` Chris Metcalf
2016-09-02 14:03                 ` Chris Metcalf
2016-09-02 16:40                 ` Peter Zijlstra
2016-09-02 16:40                   ` Peter Zijlstra
2017-02-02 16:13   ` Eugene Syromiatnikov
2017-02-02 18:12     ` Chris Metcalf
2016-08-16 21:19 ` [PATCH v15 05/13] task_isolation: track asynchronous interrupts Chris Metcalf
2016-08-16 21:19 ` [PATCH v15 06/13] arch/x86: enable task isolation functionality Chris Metcalf
2016-08-30 21:46   ` Andy Lutomirski
2016-08-16 21:19 ` [PATCH v15 07/13] arm64: factor work_pending state machine to C Chris Metcalf
2016-08-16 21:19   ` Chris Metcalf
2016-08-17  8:05   ` Will Deacon
2016-08-17  8:05     ` Will Deacon
2016-08-16 21:19 ` [PATCH v15 08/13] arch/arm64: enable task isolation functionality Chris Metcalf
2016-08-16 21:19   ` Chris Metcalf
2016-08-26 16:25   ` Catalin Marinas
2016-08-26 16:25     ` Catalin Marinas
2016-08-16 21:19 ` [PATCH v15 09/13] arch/tile: " Chris Metcalf
2016-08-16 21:19 ` [PATCH v15 10/13] arm, tile: turn off timer tick for oneshot_stopped state Chris Metcalf
2016-08-16 21:19 ` [PATCH v15 11/13] task_isolation: support CONFIG_TASK_ISOLATION_ALL Chris Metcalf
2016-08-16 21:19 ` [PATCH v15 12/13] task_isolation: add user-settable notification signal Chris Metcalf
2016-08-16 21:19 ` [PATCH v15 13/13] task_isolation self test Chris Metcalf
     [not found] ` <1471382376-5443-1-git-send-email-cmetcalf-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2016-08-17 19:37   ` [PATCH] Fix /proc/stat freezes (was [PATCH v15] "task_isolation" mode) Christoph Lameter
2016-08-17 19:37     ` Christoph Lameter
2016-08-20  1:42     ` Chris Metcalf
2016-08-20  1:42       ` Chris Metcalf
2016-09-28 13:16     ` Frederic Weisbecker
2016-08-29 16:27 ` Ping: [PATCH v15 00/13] support "task_isolation" mode Chris Metcalf
2016-08-29 16:27   ` Chris Metcalf
2016-09-07 21:11   ` Francis Giraldeau
     [not found]     ` <057a958c-4491-b449-ae59-7d331afc872d-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-09-07 21:39       ` Francis Giraldeau
2016-09-07 21:39         ` Francis Giraldeau
2016-09-08 16:21       ` Francis Giraldeau
2016-09-08 16:21         ` Francis Giraldeau
2016-09-12 16:01     ` Chris Metcalf
2016-09-12 16:01       ` Chris Metcalf
2016-09-12 16:14       ` Peter Zijlstra
2016-09-12 21:15         ` Rafael J. Wysocki
2016-09-13  0:05           ` Rafael J. Wysocki
2016-09-13 16:00             ` Francis Giraldeau
2016-09-13  0:20       ` Francis Giraldeau
     [not found]         ` <3e93004f-e1c5-f606-33fb-7cb44b99eb0a-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-09-13 16:12           ` Chris Metcalf
2016-09-13 16:12             ` Chris Metcalf
2016-09-27 14:49           ` Frederic Weisbecker
2016-09-27 14:49             ` Frederic Weisbecker
2016-09-27 14:35   ` Frederic Weisbecker
2016-09-30 17:07     ` Chris Metcalf
2016-09-30 17:07       ` Chris Metcalf
2016-11-05  4:04 ` task isolation discussion at Linux Plumbers Chris Metcalf
2016-11-05 16:05   ` Christoph Lameter
2016-11-07 16:55   ` Thomas Gleixner
2016-11-07 18:36     ` Thomas Gleixner
2016-11-07 19:12       ` Rik van Riel
2016-11-07 19:16         ` Will Deacon
2016-11-07 19:18           ` Rik van Riel
2016-11-11 20:54     ` Luiz Capitulino [this message]
2016-11-09  1:40   ` Paul E. McKenney
2016-11-09 11:14     ` Andy Lutomirski
2016-11-09 17:38       ` Paul E. McKenney
2016-11-09 18:57         ` Will Deacon
2016-11-09 19:11           ` Paul E. McKenney
2016-11-10  1:44         ` Andy Lutomirski
2016-11-10  4:52           ` Paul E. McKenney
2016-11-10  5:10             ` Paul E. McKenney
2016-11-11 17:00             ` Andy Lutomirski
2016-11-09 11:07   ` Frederic Weisbecker
2016-12-19 14:37   ` Paul E. McKenney

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=20161111155456.0b8b8589@redhat.com \
    --to=lcapitulino@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=andi@firstfloor.org \
    --cc=arnd@arndb.de \
    --cc=catalin.marinas@arm.com \
    --cc=cl@linux.com \
    --cc=cmetcalf@mellanox.com \
    --cc=daniel.lezcano@linaro.org \
    --cc=francis.giraldeau@gmail.com \
    --cc=fweisbec@gmail.com \
    --cc=giladb@mellanox.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@amacapital.net \
    --cc=mingo@kernel.org \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=peterz@infradead.org \
    --cc=riel@redhat.com \
    --cc=rostedt@goodmis.org \
    --cc=tglx@linutronix.de \
    --cc=tj@kernel.org \
    --cc=viresh.kumar@linaro.org \
    --cc=will.deacon@arm.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.