Merge "testcase: add rate parameter for spec cpu 2006"
[yardstick.git] / yardstick / benchmark / scenarios / compute / computecapacity.bash
1 #!/bin/bash
2
3 ##############################################################################
4 # Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.
5 #
6 # All rights reserved. This program and the accompanying materials
7 # are made available under the terms of the Apache License, Version 2.0
8 # which accompanies this distribution, and is available at
9 # http://www.apache.org/licenses/LICENSE-2.0
10 ##############################################################################
11
12 # compute capacity and scale of a host
13
14 set -e
15
16 # run capacity test
17 run_capacity()
18 {
19     #parameter used for HT(Hyper-Thread) check
20     HT_Para=2
21     # Number of CPUs
22     CPU=$(grep 'physical id' /proc/cpuinfo | sort -u | wc -l)
23     # Number of physical cores in a single CPU
24     CORE=$(grep 'core id' /proc/cpuinfo | sort -u | wc -l)
25     # Total physical core number
26     CORES=$[$CPU * $CORE]
27     # Number of logical cores
28     THREAD=$(grep 'processor' /proc/cpuinfo | sort -u | wc -l)
29     # Total memory size
30     MEMORY=$(grep 'MemTotal' /proc/meminfo | sort -u | awk '{print $2}')
31
32     # Cache size per CPU
33     CACHE=$(grep 'cache size' /proc/cpuinfo | sort -u | awk '{print $4}')
34     CACHES=$[$CACHE * $CPU]
35     HT_Value=$[$HT_Para * $CORES]
36     if [ $HT_Value -eq $THREAD ]; then
37         HT_OPEN=1
38     else
39         HT_OPEN=0
40     fi
41 }
42
43 # write the result to stdout in json format
44 output_json()
45 {
46     echo -e "{ \
47         \"Cpu_number\":\"$CPU\", \
48         \"Core_number\":\"$CORES\", \
49         \"Thread_number\":\"$THREAD\", \
50         \"Memory_size\": \"$MEMORY\", \
51         \"Cache_size\": \"$CACHES\", \
52         \"HT_Open\": \"$HT_OPEN\" \
53     }"
54 }
55
56 main()
57 {
58     run_capacity
59
60     output_json
61 }
62
63 main