Re: Information for setting up SMT related parameters on linux2.6.16 on POWER5

From: Will Schmidt
Date: Mon May 08 2006 - 16:03:25 EST


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@xxxxxxxx
>
> ______________________________________________________________________
> From: linuxppc-dev-bounces+mmeswani=utep.edu@xxxxxxxxxx on behalf of
> Geoff Levand
> Sent: Fri 5/5/2006 6:00 PM
> To: Paul Mackerras
> Cc: Arnd Bergmann; Levand,Geoffrey; linux-kernel@xxxxxxxxxxxxxxx;
> linuxppc-dev@xxxxxxxxxx; Arnd Bergmann; cbe-oss-dev@xxxxxxxxxx
> Subject: Re: [PATCH 04/13] cell: remove broken __setup_cpu_be function
>
<Snippage...>

> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@xxxxxxxxxx
> https://ozlabs.org/mailman/listinfo/linuxppc-dev

-
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/