Re: [PATCH RFC] ioctl based CAT interface

Marcelo Tosatti
2015-11-13T18:01:42Z

On Fri, Nov 13, 2015 at 05:51:00PM +0100, Peter Zijlstra wrote:
> On Fri, Nov 13, 2015 at 02:39:33PM -0200, Marcelo Tosatti wrote:
> > + * * one tcrid entry can be in different locations
> > + * in different sockets.
>
> NAK on that without cpuset integration.
>
> I do not want freely migratable tasks having radically different
> performance profiles depending on which CPU they land.

OK, probably not cgroups interface (which can't be done unless
someone solves the issue of one task on multiple cgroups, or
explains why it is not an issue).

So you come with a cpuset configuration:

A cpuset defines a list of CPUs and memory nodes. The CPUs of
a system include all the logical processing units on which a process
can execute, including, if present, multiple processor cores within a
package and Hyper-Threads within a processor core. Memory nodes include
all distinct banks of main memory; small and SMP systems typi‐ cally
have just one memory node that contains all the system's main memory,
while NUMA (non-uniform memory access) systems have multiple memory
nodes.

----

Then for each task in the cpuset, you can configure via priorities
the percentage of time each task is allowed to run on the CPUs of the
cpuset.

You want something to automatically remove CPUs from cpusets
if a given amount of L3 cache is reserved?

Can do that in userspace, no problem.