Rafael Vanoni wrote:
> I've read a good deal of code involving lpl's but I'd like to clear a
> couple of ideas around it. If anyone could comment on these, I'd
> appreciate it.
> 
> (a) lpl's are used to determine the load average of lgroups, which is
> used by the dispatcher to load balance threads around
> 
> (b) each lgrp has a lpl, which in turn may have leaf lpl's for each cpu
> in that lgrp
> 
> (c) lpl topology is created by lgrp code
> 
> (d) only leaf lpl's have CPUs
> 
> (e) lpl's are the intersection of lgroups and CPU partitions
> 
> I'm trying to understand where lpl's fir in the lgrp/cpus picture and 
> what are their goal besides keep load averages (if any).

lpls came about because of the orthogonal partitioning potential created by
the use of processors sets on machines w/ lgroups.  When creating a
new thread in a processor set that crosses lgroups, a selection must be made
using load averages that doesn't take into account CPUs on which the new
thread cannot run - e.g., those outside the current processor set.  As a 
result,
we devised lpls to maintain load averages for each lgroup or fraction 
thereof
that was present in each processor set.

The code is a little fussy, but we haven't come up w/ a better way of 
doing this yet.

- Bart



-- 
Bart Smaalders                  Solaris Kernel Performance
[EMAIL PROTECTED]               http://blogs.sun.com/barts
"You will contribute more with mercurial than with thunderbird."
_______________________________________________
perf-discuss mailing list
perf-discuss@opensolaris.org

Reply via email to