]> granicus.if.org Git - sysstat/commit
sar: Take into account a change of CPU number insar datafile (5)
authorSebastien GODARD <sysstat@users.noreply.github.com>
Fri, 14 Mar 2014 10:08:00 +0000 (11:08 +0100)
committerSebastien GODARD <sysstat@users.noreply.github.com>
Fri, 14 Mar 2014 10:08:00 +0000 (11:08 +0100)
commitcd625e9cad4acf03d0dda0059af337f70b90036b
treeae4d32b18b2b56f8c55ef8af875e43a7dca21410
parenta4015f78a9feedfafa2af6edf1df7c61b9e251c9
sar: Take into account a change of CPU number insar datafile (5)

The goal of the next few patches to come is to make it possible for
other activities than A_CPU (displayed by sar -u) to take into account a
change of CPU count in sar data files. These activities must be directly
related to CPU: At the present time these are A_PWR_CPUFREQ (displayed
by sar -m CPU) and A_PWR_WGHFREQ (displayed by sar -m FREQ).
With previous work done, a change from, say 6 to 8 CPU is taken into
account by sar -u:

$ sar -P ALL -f data
Linux 3.9.10-100 (home)  02/08/2014  _x86_64_      (6 CPU)

03:09:53 PM  CPU  %user     %nice   %system   %iowait    %steal   %idle
03:09:54 PM  all   2.53      0.00      0.68      0.00      0.00   96.79
03:09:54 PM    0   2.04      0.00      1.02      0.00      0.00   96.94
03:09:54 PM    1   3.00      0.00      1.00      0.00      0.00   96.00
03:09:54 PM    2   2.02      0.00      1.01      0.00      0.00   96.97
03:09:54 PM    3   4.04      0.00      1.01      0.00      0.00   94.95
03:09:54 PM    4   3.00      0.00      0.00      0.00      0.00   97.00
03:09:54 PM    5   2.02      0.00      0.00      0.00      0.00   97.98

[...]

03:31:33 PM       LINUX RESTART (8 CPU)

04:06:55 PM  CPU  %user     %nice   %system   %iowait    %steal   %idle
04:06:56 PM  all   0.38     16.62      0.38      0.00      0.00   82.62
04:06:56 PM    0   0.00     37.00      0.00      0.00      0.00   63.00
04:06:56 PM    1   0.00     77.78      1.01      0.00      0.00   21.21
04:06:56 PM    2   0.98     13.73      0.98      0.00      0.00   84.31
04:06:56 PM    3   0.00      5.05      1.01      0.00      0.00   93.94
04:06:56 PM    4   0.00      0.00      0.00      0.00      0.00  100.00
04:06:56 PM    5   0.00      0.00      0.00      0.00      0.00  100.00
04:06:56 PM    6   1.00      0.00      0.00      0.00      0.00   99.00
04:06:56 PM    7   0.00      0.00      0.00      0.00      0.00  100.00

<SNIP>

But sar -m CPU still only displays stats for the first 6 CPU:

$ sar -P ALL -m CPU -f data
Linux 3.9.10-100 (home)  02/08/2014  _x86_64_    (6 CPU)

03:09:53 PM     CPU       MHz
03:09:54 PM     all   3358.02
03:09:54 PM       0   3358.02
03:09:54 PM       1   3358.02
03:09:54 PM       2   3358.02
03:09:54 PM       3   3358.02
03:09:54 PM       4   3358.02
03:09:54 PM       5   3358.02

[...]

03:31:33 PM       LINUX RESTART (8 CPU)

04:06:55 PM     CPU       MHz
04:06:56 PM     all   2200.33
04:06:56 PM       0   1600.00
04:06:56 PM       1   3401.00
04:06:56 PM       2   1600.00
04:06:56 PM       3   3401.00
04:06:56 PM       4   1600.00
04:06:56 PM       5   1600.00

<SNIP>

This is what we want to change here.

So this current patch:

1) Changes the format of sar data file (this doesn't hurt since 10.3.1
has already changed it. Done again here just in case someone had cloned
from 10.3.1 though this version has not been officially released).

2) Adds a new field in data file's header (sa_vol_act_nr), giving the
number of activities in file taking into account a change of CPU count.
(Such activities, like A_CPU or A_PWR_CPUFREQ are called "volatile
activities" here).

3) When a restart mark is inserted, sadc also writes a few additional
data giving the new number of CPU for each volatile activity in file.
Of course sar has also been updated to read those data and take into
account a change of CPU count for all volatile activities to display.

Signed-off-by: Sebastien GODARD <sysstat@users.noreply.github.com>
activity.c
sa.h
sa_common.c
sadc.c
sar.c