charlesarcher / i7z

Automatically exported from code.google.com/p/i7z
GNU General Public License v2.0
0 stars 0 forks source link

on multi-socket 8-core cpus, second socket info doesn't display correctly #53

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Step 1. What steps will reproduce the problem?

Run i7z on system with 2 sockets with e.g. Intel(R) Xeon(R) CPU E5-2660 

Step 2. What version of the product are you using (the download version or
the svn
version and which one)?

download 0.27.1

Step 3. If this is an enhancement or suggestion, skip this step (except if
its related to a particular OS or architecture). On what operating system?
BTW is it a 32-bit or a 64-bit OS/Kernel?

SLES11SP2 64-bit. CPU-related rather than OS, probably.

Step 4. Do provide information if bug/enhancement is related to a
particular OS/Processor. Please provide any additional information below
(helpful will be platform
information like number and types of cpus, motherboard and a copy of
/proc/cpuinfo)

Screengrab: info for Core 8 [7] and Core 8 [15] keeps getting overwritten (it 
kinda flashes)

Cpu speed from cpuinfo 2194.00Mhz
True Frequency (without accounting Turbo) 2194 MHz

Socket [0] - [physical cores=8, logical cores=16, max online cores ever=8]
  CPU Multiplier 22x || Bus clock frequency (BCLK) 99.73 MHz
  TURBO ENABLED on 8 Cores, Hyper Threading ON
  True Frequency 2293.73 MHz (99.73 x [23])
  Max TURBO Multiplier (if Enabled) with 1/2/3/4/5/6 cores is  30x/30x/29x/29x/28x/28x
  Current Frequency 2165.75 MHz (Max of below)
        Core [core-id]  :Actual Freq (Mult.)      C0%   Halt(C1)%  C3 %   C6 %  Temp
        Core 1 [0]:       2082.51 (20.88x)      18.1    80.9       1       1    31
        Core 2 [1]:       1988.64 (19.94x)      8.45    91.3    1.05       0    36
        Core 3 [2]:       2126.63 (21.32x)      36.2    61.3    3.58       0    35
        Core 4 [3]:       1932.81 (19.38x)      6.96    92.9       1       0    36
        Core 5 [4]:       2141.37 (21.47x)      55.6    44.7       0       1    34
        Core 6 [5]:       2165.75 (21.72x)      2.12    97.9       0       0    36
        Core 7 [6]:       2163.32 (21.69x)      2.59    97.4       0       0    33
Socket [1] - [physical cores=8, logical cores=16, max online cores ever=8]
  CPU Multiplier 22x || Bus clock frequency (BCLK) 99.73 MHz
  TURBO ENABLED on 8 Cores, Hyper Threading ON
  True Frequency 2293.73 MHz (99.73 x [23])
  Max TURBO Multiplier (if Enabled) with 1/2/3/4/5/6 cores is  30x/30x/29x/29x/28x/28x
  Current Frequency 2162.31 MHz (Max of below)
        Core [core-id]  :Actual Freq (Mult.)      C0%   Halt(C1)%  C3 %   C6 %  Temp
        Core 1 [8]:       2144.68 (21.51x)      36.5    62.3       1       1    55
        Core 2 [9]:       2162.31 (21.68x)      55.2    44.6       1       0    53
        Core 3 [10]:      2132.83 (21.39x)      17.3    82.1    1.04       0    53
        Core 4 [11]:      2161.31 (21.67x)      2.74    95.3       1       1    53
        Core 5 [12]:      2154.76 (21.61x)      3.46    96.6       0       0    50
        Core 6 [13]:      2128.02 (21.34x)      16.3    8

Step 5. If the program crashes. Can you also paste the
output of ls -lt /dev/cpu/*/msr?

Step 6. If the program crashed OR if this is for a new i7 chip. Can you
also run the following commands? They read various registers
and if those registers cannot be read the tool fails ungracefully. You will
have to sudo
each commmand and probably also do sudo modprobe msr (before running the
programs)

rdmsr 0x19c
rdmsr 0x1a2
rdmsr 0x38d
rdmsr 778
rdmsr 779
rdmsr 1020
rdmsr 1021

Original issue reported on code.google.com by amaccorm...@gmail.com on 15 May 2012 at 6:33

GoogleCodeExporter commented 9 years ago
I fixed the top one by changing the hardcoded setting of printw_offset=14 to 16
in i7z_Dual_Socket.c, but the footers still comes in the wrong place. 

So, adjusted this code, adding 4 to each of the hard-coded y-positions:

        if (socket_0.socket_num == 0)
        {
            mvprintw (35, 0, "C0 = Processor running without halting");
            mvprintw (36, 0, "C1 = Processor running with halts (States >C0 are power saver)");
            mvprintw (37, 0, "C3 = Cores running with PLL turned off and core cache turned off");
            mvprintw (38, 0, "C6 = Everything in C3 + core state saved to last level cache");
            mvprintw (39, 0, "  Above values in table are in percentage over the last 1 sec");
            mvprintw (40, 0, "[core-id] refers to core-id number in /proc/cpuinfo");
            mvprintw (41, 0, "'Garbage Values' message printed when garbage values are read");
            mvprintw (42, 0, "  Ctrl+C to exit");
        }

Really these numbers should be derived from the number of cores to be more 
future-proof.

Original comment by amaccorm...@gmail.com on 15 May 2012 at 6:42

GoogleCodeExporter commented 9 years ago
thanks 

yup, the dual socket code has just about 6 core spaces. when i wrote it i 
intended to put everything within a 80x20 screen (and i broke that rule as the 
temperature doesnot fit it anyways within that area) and now i guess with 10 
cores/processors and maybe more in future i need some more  space or redo how 
to display everything 

thanks a lot. i'll keep this issue open and in the next version add support to 
print upto or more than 10 cores/processor

Original comment by abhirana on 21 May 2012 at 4:46

GoogleCodeExporter commented 9 years ago

Original comment by abhirana on 21 May 2012 at 4:47