From: Luiz Capitulino <lcapitulino@redhat.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Marcelo Tosatti <mtosatti@redhat.com>,
Thomas Gleixner <tglx@linutronix.de>,
Vikas Shivappa <vikas.shivappa@intel.com>,
Tejun Heo <tj@kernel.org>, Yu Fenghua <fenghua.yu@intel.com>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH RFC] ioctl based CAT interface
Date: Mon, 16 Nov 2015 11:48:55 -0500 [thread overview]
Message-ID: <20151116114855.4f5f79b7@redhat.com> (raw)
In-Reply-To: <20151116162657.GX17308@twins.programming.kicks-ass.net>
On Mon, 16 Nov 2015 17:26:57 +0100
Peter Zijlstra <peterz@infradead.org> wrote:
> On Mon, Nov 16, 2015 at 11:18:42AM -0500, Luiz Capitulino wrote:
> > Peter, I'm giving a serious try on the cgroups patches and would be
> > glad to be enlightened if I'm missing something. But I don't see how
> > what you're proposing would solve the problem.
> >
> > My understanding of CAT is that if I want to reserve 80% of the cache
> > in socket-1 to $thread-A I also have to:
> >
> > 1. Create another mask reserving 20% of the cache in socket-1
> > 2. Assign that mask to all other threads that may run in socket-1
> >
> > If I'm right about this, then when a task with 20% reservation migrates
> > to socket-2 it will only access 20% of the cache there even though there
> > should be no restrictions in socket-2's cache.
>
> Uh what? Task-A was bound to socket-1, it will never get to socket-2.
Sure, but you're going to allow other threads besides Task-A to execute
in socket-1 too, right? In this case, my understanding of CAT is that
those threads will require a mask to restrict them to only 20% of the
cache.
> Clearly I'm not getting these examples you're throwing around.
It's the "Isolated Bitmask" example from the Intel Manual p. 616
(You'll find the excerpt below, but Figure 17-27 is easier to understand).
My understanding of this example is that in order to isolate a portion
of the cache to Task-A I also have to create a second mask which excludes
bits reserved to Task-A. This second mask is assigned to all other tasks
that will share the L3 cache with Task-A.
"""
Figure 17-27 also shows three examples of sets of Cache Capacity Bitmasks. For simplicity these are represented
as 8-bit vectors, though this may vary depending on the implementation and how the mask is mapped to the avail-
able cache capacity. The first example shows the default case where all 4 Classes of Service (the total number of
COS are implementation-dependent) have full access to the cache. The second case shows an overlapped case,
which would allow some lower-priority threads share cache space with the highest priority threads. The third case
shows various non-overlapped partitioning schemes. As a matter of software policy for extensibility COS0 should
typically be considered and configured as the highest priority COS, followed by COS1, and so on, though there is
no hardware restriction enforcing this mapping. When the system boots all threads are initialized to COS0, which
has full access to the cache by default.
"""
> Also, I explicitly do not want tasks that can migrate between sockets to
> have different performance profiles across those sockets.
I think we can solve this problem with the ioctl interface, if that's
what you mean.
next prev parent reply other threads:[~2015-11-16 16:48 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-13 16:39 [PATCH RFC] ioctl based CAT interface Marcelo Tosatti
2015-11-13 16:51 ` Peter Zijlstra
2015-11-13 17:27 ` Marcelo Tosatti
2015-11-13 17:43 ` Marcelo Tosatti
2015-11-16 8:59 ` Peter Zijlstra
2015-11-16 13:03 ` Marcelo Tosatti
2015-11-16 14:42 ` Thomas Gleixner
2015-11-16 19:52 ` Marcelo Tosatti
2015-11-16 15:01 ` Peter Zijlstra
2015-11-16 19:54 ` Marcelo Tosatti
2015-11-16 21:22 ` Marcelo Tosatti
2015-11-13 19:04 ` Luiz Capitulino
2015-11-13 20:22 ` Marcelo Tosatti
2015-11-16 9:03 ` Peter Zijlstra
2015-11-13 17:33 ` Marcelo Tosatti
2015-11-16 9:07 ` Peter Zijlstra
2015-11-16 14:37 ` Marcelo Tosatti
2015-11-16 15:37 ` Peter Zijlstra
2015-11-16 16:18 ` Luiz Capitulino
2015-11-16 16:26 ` Peter Zijlstra
2015-11-16 16:48 ` Luiz Capitulino [this message]
2015-11-16 16:39 ` Marcelo Tosatti
2015-11-17 1:01 ` Marcelo Tosatti
2015-11-13 18:01 ` Marcelo Tosatti
2015-11-16 9:09 ` Peter Zijlstra
2015-11-13 19:08 ` Luiz Capitulino
2015-12-03 21:58 ` Pavel Machek
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=20151116114855.4f5f79b7@redhat.com \
--to=lcapitulino@redhat.com \
--cc=fenghua.yu@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mtosatti@redhat.com \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--cc=tj@kernel.org \
--cc=vikas.shivappa@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox