From: Marcelo Tosatti <mtosatti@redhat.com>
To: Christoph Lameter <cl@linux.com>
Cc: Luiz Capitulino <lcapitulino@redhat.com>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
Rik van Riel <riel@redhat.com>,
Linux RT Users <linux-rt-users@vger.kernel.org>,
cmetcalf@mellanox.com
Subject: Re: [patch 2/2] MM: allow per-cpu vmstat_threshold and vmstat_worker configuration
Date: Sat, 20 May 2017 05:26:46 -0300 [thread overview]
Message-ID: <20170520082646.GA16139@amt.cnet> (raw)
In-Reply-To: <alpine.DEB.2.20.1705191205580.19631@east.gentwo.org>
On Fri, May 19, 2017 at 12:13:26PM -0500, Christoph Lameter wrote:
> On Fri, 19 May 2017, Marcelo Tosatti wrote:
>
> > Use-case: realtime application on an isolated core which for some reason
> > updates vmstatistics.
>
> Ok that is already only happening every 2 seconds by default and that
> interval is configurable via the vmstat_interval proc setting.
>
> > > Just a measurement of vmstat_worker. Pointless.
> >
> > Shouldnt the focus be on general scenarios rather than particular
> > usecases, so that the solution covers a wider range of usecases?
>
> Yes indeed and as far as I can tell the wider usecases are covered. Not
> sure that there is anything required here.
>
> > The situation as i see is as follows:
> >
> > Your point of view is: an "isolated CPU" with a set of applications
> > cannot update vm statistics, otherwise they pay the vmstat_update cost:
> >
> > kworker/5:1-245 [005] ....1.. 673.454295: workqueue_execute_start: work struct ffffa0cf6e493e20: function vmstat_update
> > kworker/5:1-245 [005] ....1.. 673.454305: workqueue_execute_end: work struct ffffa0cf6e493e20
> >
> > Thats 10us for example.
>
> Well with a decent cpu that is 3 usec and it occurs infrequently on the
> order of once per multiple seconds.
>
> > So if want to customize a realtime setup whose code updates vmstatistic,
> > you are dead. You have to avoid any systemcall which possibly updates
> > vmstatistics (now and in the future kernel versions).
>
> You are already dead because you allow IPIs and other kernel processing
> which creates far more overhead. Still fail to see the point.
>
> > The point is that these vmstat updates are rare. From
> > http://www.7-cpu.com/cpu/Haswell.html:
> >
> > RAM Latency = 36 cycles + 57 ns (3.4 GHz i7-4770)
> > RAM Latency = 62 cycles + 100 ns (3.6 GHz E5-2699 dual)
> >
> > Lets round to 100ns = 0.1us.
>
> That depends on the kernel functionality used.
>
> > You need 100 vmstat updates (all misses to RAM, the worst possible case)
> > to have equivalent amount of time of the batching version.
>
> The batching version occurs every couple of seconds if at all.
>
> > But thats not the point. The point is the 10us interruption
> > to execution of the realtime app (which can either mean
> > your current deadline requirements are not met, or that
> > another application with lowest latency requirement can't
> > be used).
>
> Ok then you need to get rid of the IPIs and the other stuff that you have
> going on with the OS first I think.
I'll measure the cost of all IPIs in the system to confirm
vmstat_update's costs is larger than the cost of any IPI.
> > So why are you against integrating this simple, isolated patch which
> > does not affect how current logic works?
>
> Frankly the argument does not make sense. Vmstat updates occur very
> infrequently (probably even less than you IPIs and the other OS stuff that
> also causes additional latencies that you seem to be willing to tolerate).
>
> And you can configure the interval of vmstat updates freely.... Set
> the vmstat_interval to 60 seconds instead of 2 for a try? Is that rare
> enough?
Not rare enough. Never is rare enough.
--
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 prev parent reply other threads:[~2017-05-20 8:27 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-04-25 13:57 [patch 0/2] per-CPU vmstat thresholds and vmstat worker disablement Marcelo Tosatti
2017-04-25 13:57 ` [patch 1/2] MM: remove unused quiet_vmstat function Marcelo Tosatti
2017-04-25 13:57 ` [patch 2/2] MM: allow per-cpu vmstat_threshold and vmstat_worker configuration Marcelo Tosatti
2017-04-25 19:29 ` Rik van Riel
2017-04-25 19:36 ` Marcelo Tosatti
2017-05-02 14:28 ` Luiz Capitulino
2017-05-02 16:52 ` Marcelo Tosatti
2017-05-02 17:15 ` Luiz Capitulino
2017-05-02 17:21 ` Marcelo Tosatti
2017-05-11 15:37 ` Christoph Lameter
2017-05-12 12:27 ` Marcelo Tosatti
2017-05-12 15:11 ` Christoph Lameter
2017-05-12 15:40 ` Marcelo Tosatti
2017-05-12 16:03 ` Christoph Lameter
2017-05-12 16:07 ` Christoph Lameter
2017-05-12 16:19 ` Marcelo Tosatti
2017-05-12 16:57 ` Christoph Lameter
2017-05-15 19:15 ` Marcelo Tosatti
2017-05-16 13:37 ` Christoph Lameter
2017-05-19 14:34 ` Marcelo Tosatti
2017-05-19 17:13 ` Christoph Lameter
2017-05-19 17:49 ` Luiz Capitulino
2017-05-22 16:35 ` Christoph Lameter
2017-05-25 19:35 ` Marcelo Tosatti
2017-05-26 3:24 ` Christoph Lameter
2017-05-26 19:09 ` Marcelo Tosatti
2017-05-30 18:17 ` Christoph Lameter
2017-07-10 15:05 ` Marcelo Tosatti
2017-05-20 8:26 ` Marcelo Tosatti [this message]
2017-05-22 16:38 ` Christoph Lameter
2017-05-22 21:13 ` Marcelo Tosatti
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=20170520082646.GA16139@amt.cnet \
--to=mtosatti@redhat.com \
--cc=cl@linux.com \
--cc=cmetcalf@mellanox.com \
--cc=lcapitulino@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-rt-users@vger.kernel.org \
--cc=riel@redhat.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;
as well as URLs for NNTP newsgroup(s).