Re: [PATCH 5/9] x86/intel_rdt: Add new cgroup and Class of service management

From: Vikas Shivappa
Date: Tue Aug 04 2015 - 14:50:22 EST



Hello Tejun,

On Sun, 2 Aug 2015, Tejun Heo wrote:

Hello, Vikas.

On Fri, Jul 31, 2015 at 09:24:58AM -0700, Vikas Shivappa wrote:
Yes today we dont have an alternative interface - but we can always build
one. We simply dont have it because till now Linux kernel just tolerated the
degradation that could have occured by cache contention and this is the
first interface we are building.

But we're doing it the wrong way around. You can do most of what
cgroup interface can do with systemcall-like interface with some
inconvenience. The other way doesn't really work. As I wrote in the
other reply, cgroups is a horrible programmable interface and we don't
want individual applications to interact with it directly and CAT's
use cases most definitely include each application programming its own
cache mask.

I will make this more clear in the documentation - We intend this cgroup interface to be used by a root or superuser - more like a system administrator being able to control the allocation of the threads , the one who has the knowledge of the usage and being able to decide.

There is already a lot of such usage among different enterprise users at Intel/google/cisco etc who have been testing the patches posted to lkml and academically there is plenty of usage as well.

As a quick ref : below is a quick summary of usage

Cache Allocation Technology provides a way for the Software (OS/VMM) to
restrict cache allocation to a defined 'subset' of cache which may be
overlapping with other 'subsets'.
This feature is used when allocating a
line in cache ie when pulling new data into the cache.
- The tasks are grouped into CLOS (class of service). or grouped into a administrator created cgroup.
- Then OS uses MSR writes to indicate the
CLOSid of the thread when scheduling in (this is done by kernel) and to indicate the cache capacity associated with the CLOSid (the root user indicates the capacity for each task).
Currently cache allocation is supported for L3 cache.

More information can be found in the Intel SDM June 2015, Volume 3,
section 17.16.

Thanks,
Vikas

Let's build something which is simple and can be used
easily first. If this turns out to be widely useful and an overall
management capability over it is wanted, we can consider cgroups then.

Thanks.

--
tejun

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/