Patch to learn topology of system through sysfs.
Signed-off-by: poornima nayak <[email protected]>
diff -uprN
ltp-intermediate-20091209.orig/testcases/kernel/power_management/pm_include.sh
ltp-intermediate-20091209.fixes/testcases/kernel/power_management/pm_include.sh
---
ltp-intermediate-20091209.orig/testcases/kernel/power_management/pm_include.sh
2009-12-09 13:18:25.000000000 +0530
+++
ltp-intermediate-20091209.fixes/testcases/kernel/power_management/pm_include.sh
2009-12-24 23:17:37.798995821 +0530
@@ -69,9 +69,24 @@ get_supporting_govr() {
}
is_hyper_threaded() {
- siblings=`cat /proc/cpuinfo | grep siblings | uniq | cut -f2 -d':'`
- cpu_cores=`cat /proc/cpuinfo | grep "cpu cores" | uniq | cut -f2 -d':'`
- [ $siblings -gt $cpu_cores ]; return $?
+ entries=`cat /sys/devices/system/cpu/cpu0/topology/thread_siblings`
+ count=`echo $entries | awk -F"," '{ print NF }'`
+ cpucount=0
+ for ((i=1;i<=$count;i++))
+ do
+
+ cpumask=`echo $entries | awk -v x=$i 'BEGIN{FS=","} {print $x}'`
+ while [ $cpumask -gt 0 ]
+ do
+ ((cpucount=cpucount+1))
+ ((cpumask=$cpumask>>1))
+ done
+ done
+ if [ $cpucount -gt 1 ]; then
+ return 0
+ else
+ return 1
+ fi
}
check_input() {
@@ -110,26 +125,38 @@ is_multi_socket() {
[ $no_of_sockets -gt 1 ] ; return $?
}
+get_core_sibling_count() {
+ entries=`cat /sys/devices/system/cpu/cpu0/topology/core_siblings`
+ count=`echo $entries | awk -F"," '{ print NF }'`
+ cpucount=0
+ for ((i=1;i<=$count;i++))
+ do
+ cpumask=`echo $entries | awk -v x=$i 'BEGIN{FS=","} {print $x}'`
+ while [ $cpumask -gt 0 ]
+ do
+ ((cpucount=cpucount+1))
+ ((cpumask=$cpumask>>1))
+ done
+ done
+ echo $cpucount
+}
+
is_multi_core() {
- siblings=`cat /proc/cpuinfo | grep siblings | uniq | cut -f2 -d':'`
- cpu_cores=`cat /proc/cpuinfo | grep "cpu cores" | uniq | cut -f2 -d':'`
- if [ $siblings -eq $cpu_cores ]; then
- [ $cpu_cores -gt 1 ]; return $?
- else
- : $(( num_of_cpus = siblings / cpu_cores ))
- [ $num_of_cpus -gt 1 ]; return $?
+ sibling_cnt=$(get_core_sibling_count)
+ if [ $sibling_cnt -gt 1 ]; then
+ return 0
+ else
+ return 1
fi
}
is_dual_core() {
- siblings=`cat /proc/cpuinfo | grep siblings | uniq | cut -f2 -d':'`
- cpu_cores=`cat /proc/cpuinfo | grep "cpu cores" | uniq | cut -f2 -d':'`
- if [ $siblings -eq $cpu_cores ]; then
- [ $cpu_cores -eq 2 ]; return $?
- else
- : $(( num_of_cpus = siblings / cpu_cores ))
- [ $num_of_cpus -eq 2 ]; return $?
- fi
+ sibling_cnt=$(get_core_sibling_count)
+ if [ $sibling_cnt -eq 2 ]; then
+ return 0
+ else
+ return 1
+ fi
}
get_kernel_version() {
------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list