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>