Thread (41 messages) 41 messages, 10 authors, 2006-05-20

Re: Information for setting up SMT related parameters on linux 2.6.16 on POWER5

From: Will Schmidt <hidden>
Date: 2006-05-08 20:03:53
Also in: lkml

On Mon, 2006-05-08 at 12:09 -0600, Meswani, Mitesh wrote:
 
Hello 
Hi
 
I am looking to use the SMT related parameters like Snooze delay, HMT
thread priorities, SMT ON/Off and wanted to know how to invoke and set
them. I am running Open Suse 10 with 2.6.16.rc4-3-ppc64 kernel on
eServer p590 2-way POWER5 partition. 
 
I noticed the parameters in /sys/devices/system/cpu/cpu#   with the
following :
 
mmcr0  online       pmc2  pmc5  smt_snooze_delay
mmcr1  physical_id  pmc3  pmc6  topology
crash_notes  mmcra  pmc1         pmc4  purr
Some of this is unique to Logical Partitions and cpu's on POWER5 pSeries
hardware..    I think you've already found the useful entry "online",
and the rest would be just trivial information.

On the kernel boot commandline, you can add parms such as
"smt-snooze-delay=xxxx" to set the snooze_delay value, and
"smt-enabled=off" to turn off the secondary threads. 

As you've already found, you can echo values into the sys entries to
cause the cpus to go online or offline.  0=offline, 1=online.   You can
also adjust the value for snooze-delay.  This one defaults to '0'.  This
controls the amount of time the processor thread spins before declaring
that it's got no useful work to do and cedes itself. 

"mmcr*" and "pmc*" are performance counter registers and values.  These
are used by oprofile.

"purr" is a Processor Utilization Resource Register, indicating the
number of ticks that the processor has been in use.  

I believe "crash_notes" has to do with lkcd or crashdump.   

No idea on the "topology" entry.  possibly related to NUMA. 
setting the value in online to 0 seems to turn off the logical
processor, but I am not sure what the others are for and the meaning
of their hex values? 
It seems that there is include/asm-ppc64/processor.h  with macros like
HMT_very_low()  ,  wonder if these can be set on command line
 since I am running unmodified app binaries. 
the HMT_* macros are telling firmware that "this processor thread should
run at this priority".  Typically used when we're waiting on a spinlock.
I.e. When we are waiting on a spinlock, we hit the HMT_low macro to drop
our threads priority, allowing the other thread to use those extra
cycles finish it's stuff quicker, and maybe even release the lock we're
waiting for.          HMT_* is all within the kernel though, no exposure
to userspace apps.  
 
Thanks, 
Mitesh
 
 
Hope that is helpful..  
-Will

Mitesh R. Meswani 
Ph.D. Candidate 
Research Associate, PLS2 Group
Room 106 F, Department of Computer Science
The University of Texas at El Paso, 
El Paso, Texas 79968
Tel: 915 747 8012 (O)
Email: mmeswani@utep.edu

______________________________________________________________________
From: linuxppc-dev-bounces+mmeswani=utep.edu@ozlabs.org on behalf of
Geoff Levand
Sent: Fri 5/5/2006 6:00 PM
To: Paul Mackerras
Cc: Arnd Bergmann; Levand,Geoffrey; linux-kernel@vger.kernel.org;
linuxppc-dev@ozlabs.org; Arnd Bergmann; cbe-oss-dev@ozlabs.org
Subject: Re: [PATCH 04/13] cell: remove broken __setup_cpu_be function
<Snippage...>
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help