[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160714171645.GA19191@intel.com>
Date: Thu, 14 Jul 2016 10:16:45 -0700
From: "Luck, Tony" <tony.luck@...el.com>
To: Thomas Gleixner <tglx@...utronix.de>
Cc: Fenghua Yu <fenghua.yu@...el.com>, Ingo Molnar <mingo@...e.hu>,
"H. Peter Anvin" <h.peter.anvin@...el.com>,
Tejun Heo <tj@...nel.org>, Borislav Petkov <bp@...e.de>,
Stephane Eranian <eranian@...gle.com>,
Peter Zijlstra <peterz@...radead.org>,
Marcelo Tosatti <mtosatti@...hat.com>,
David Carrillo-Cisneros <davidcc@...gle.com>,
Ravi V Shankar <ravi.v.shankar@...el.com>,
Vikas Shivappa <vikas.shivappa@...ux.intel.com>,
Sai Prakhya <sai.praneeth.prakhya@...el.com>,
linux-kernel <linux-kernel@...r.kernel.org>, x86 <x86@...nel.org>
Subject: Re: [PATCH 13/32] Documentation, x86: Documentation for Intel
resource allocation user interface
On Thu, Jul 14, 2016 at 08:53:17AM +0200, Thomas Gleixner wrote:
> > Happy to take suggestions for something in between those
> > extremes :-)
>
> I'd suggest "resctrl" and the abbreviation dictionaries tell me that the most
> common ones for resource are: R, RESORC, RES
OK. "resctrl" it is.
> As a side effect that avoids the whole 'find all tasks' on mount machinery
> simply because the CPU defaults do not change at all.
That's a very good side effect.
It just means that the "tasks" file in the root of the hierachy will
need different read/write functions from those in sub-directories.
read: scan all tasks, print pid for ones with task->rdtgroup == NULL
write: remove task from the rdtgroup list that it was on; set task->rdtgroup = NULL;
> It covers almost everything except the case I outlined before:
>
> Isolated CPU Important Task runs on isolated CPU
> 5% exclusive cache 10% exclusive cache
>
> That's impossible with your scheme, but it's something which matters. You want
> to make sure that the system services on that isolated CPU stay cache hot
> without hurting the cache locality of your isolated task.
So the core part of __intel_rdt_sched_in() will look like:
/*
* Precedence rules:
* Processes assigned to an rdtgroup use that group
* wherever they run. If they don't have an rdtgroup
* we see if the current cpu has one and use it.
* If no specific rdtgroup was provided, we use the
* root_rdtgroup
*/
rdtgrp = current->rdtgroup;
if (!rdtgrp) {
rdtgrp = per_cpu(cpu_rdtgroup, cpu);
if (!rdtgrp)
rdtgrp = root_rdtgroup;
}
> > Otherwise we can revise the documentation to explain all this better.
>
> That needs to be done in any case. The existing one does not really qualify as
> proper documentation. It's closer to a fairy tale :)
Yes. We will re-write.
-Tony
Powered by blists - more mailing lists