Roland Mainz wrote:
> Rafael Vanoni wrote:
>> Roland Mainz wrote:
>>> Jonathan Chew wrote:
>>>> Rafael Vanoni wrote:
> [snip]
>>> BTW: How does the topology code handle DR ?
>> Take a look at
>> http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/common/os/lgrp.c#522.
>> That's the platform independent portion of the code called when there's
>> a DR event.
> 
> Mhhh... how heavywheight is |lgrp_latency_change()| ? 

lgrp_latency_change() -> 
http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/common/os/lgrp.c#498

> A crude hack may
> be to use something similar to the |LGRP_CONFIG_LAT_CHANGE|-codepath
> when a link becomes saturated (e.g. bump the latency incrementally for
> anything beyond a certain link usage (maybe 90% as initial threshhold ?
> And what should lower the latency value if the link usage drops below
> the threshhold) ... I doubt the hack will work as expected but the
> experiment may give some hints what may need to be done for a real
> implementation...

I don't want to speculate on how simple or complex adding support to 
link usage is because that involves supporting hardware performance 
counters - and that's very platform dependent.

But increasing latency values wouldn't be enough because the scheduler 
and the VM systems use the lgroup topology to decide how to dispatch 
threads and allocate resources. The topology is created after the 
latency values have been discovered, so that's early boot time - and 
again, modified when a DR event takes place.

Changing the entire topology whenever a link saturates is obviously not 
the way to go, so we'd need to raise a flag somewhere indicating that 
situation. However, that fix would require changing the decision making 
process, places like lgrp_mem_choose(), and I'm not sure how far that 
could take us.

I'm not 100% sure this usage readings should be stored within the lgroup 
topology to be honest. I know there's some work around hardware 
telemetry, and that may very well be the right place for it.

> BTW: Does Solaris/x86 support something like marking certain pages as
> non-cacheable (for example in some cases it may be nice to turn caching
> off if the traffic caused by cache coherency (or even the plain usage of
> cache lines for data which are only read or written once) causes more
> trouble than just turning the cache off for such data) ?

Yes, see
http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/common/vm/page.h#485

-- 
Rafael Vanoni
[EMAIL PROTECTED]
http://blogs.sun.com/rv
_______________________________________________
perf-discuss mailing list
perf-discuss@opensolaris.org

Reply via email to