On Dec 24, 2009, at 10:15 AM, Poornima Nayak  
<[email protected]> wrote:

> 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 }'`

Why have an intermediate variable labeled entries if all you do is  
echo the value back out and run it through awk unquoted? You could  
just as easily do this instead:

awk [options] [script-body] /sys/devices/system/cpu/cpu0/topology/ 
thread_siblings

> +    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() {

Thanks,
-Garrett

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

Reply via email to