LINUX.ORG.RU

Почему sensors пропускает нумерацию ядер?

 , , ,


1

1
coretemp-isa-0000
Adapter: ISA adapter
Package id 0:  +31.0°C  (high = +93.0°C, crit = +103.0°C)
Core 0:        +23.0°C  (high = +93.0°C, crit = +103.0°C)
Core 1:        +24.0°C  (high = +93.0°C, crit = +103.0°C)
Core 2:        +24.0°C  (high = +93.0°C, crit = +103.0°C)
Core 3:        +24.0°C  (high = +93.0°C, crit = +103.0°C)
Core 4:        +25.0°C  (high = +93.0°C, crit = +103.0°C)
Core 5:        +25.0°C  (high = +93.0°C, crit = +103.0°C)
Core 6:        +25.0°C  (high = +93.0°C, crit = +103.0°C)
Core 8:        +24.0°C  (high = +93.0°C, crit = +103.0°C)
Core 9:        +23.0°C  (high = +93.0°C, crit = +103.0°C)
Core 10:       +24.0°C  (high = +93.0°C, crit = +103.0°C)
Core 11:       +24.0°C  (high = +93.0°C, crit = +103.0°C)
Core 12:       +25.0°C  (high = +93.0°C, crit = +103.0°C)
Core 13:       +24.0°C  (high = +93.0°C, crit = +103.0°C)
Core 14:       +24.0°C  (high = +93.0°C, crit = +103.0°C) 

Где номер 7? Процессор Xeon E5-2690v4. Нагуглил на Реддите, у человека пропали 6 и 7, тоже Зеон, только 2697v2.

Упд. Дело раскрыто: во всём виноват Intel.



Последнее исправление: avgust23 (всего исправлений: 1)

Ну пропускает и что с того?

coretemp-isa-0000
Adapter: ISA adapter
Package id 0:  +32.0°C  (high = +80.0°C, crit = +100.0°C)
Core 0:        +26.0°C  (high = +80.0°C, crit = +100.0°C)
Core 4:        +30.0°C  (high = +80.0°C, crit = +100.0°C)
Core 8:        +27.0°C  (high = +80.0°C, crit = +100.0°C)
Core 12:       +26.0°C  (high = +80.0°C, crit = +100.0°C)
Core 16:       +27.0°C  (high = +80.0°C, crit = +100.0°C)
Core 20:       +28.0°C  (high = +80.0°C, crit = +100.0°C)
Core 24:       +26.0°C  (high = +80.0°C, crit = +100.0°C)
Core 28:       +25.0°C  (high = +80.0°C, crit = +100.0°C)
Core 32:       +30.0°C  (high = +80.0°C, crit = +100.0°C)
Core 33:       +30.0°C  (high = +80.0°C, crit = +100.0°C)
Core 34:       +28.0°C  (high = +80.0°C, crit = +100.0°C)
Core 35:       +28.0°C  (high = +80.0°C, crit = +100.0°C)
Core 36:       +30.0°C  (high = +80.0°C, crit = +100.0°C)
Core 37:       +30.0°C  (high = +80.0°C, crit = +100.0°C)
Core 38:       +30.0°C  (high = +80.0°C, crit = +100.0°C)
Core 39:       +30.0°C  (high = +80.0°C, crit = +100.0°C)
Core 40:       +28.0°C  (high = +80.0°C, crit = +100.0°C)
Core 41:       +28.0°C  (high = +80.0°C, crit = +100.0°C)
Core 42:       +28.0°C  (high = +80.0°C, crit = +100.0°C)
Core 43:       +28.0°C  (high = +80.0°C, crit = +100.0°C)

sehellion ★★★★★
()
Ответ на: комментарий от sehellion

и что с того

Контринтуитивно, по-дурацки :). Хотя наверное на вопрос «а где o_0?» есть ответ развеивающий недопонимание, но лично я его, например, не видел/проглядел.

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 2)
Ответ на: комментарий от LINUX-ORG-RU

Тогда надо читать исходники и смотреть откуда
та нумерация вообще берется coretemp-isa, т.е. оно как то само нумерует или это опрашиваемое устройство так отдает. Во втором случае чтобы было «нормально», придется еще обширную базу возможных устройств делать (есть ли какая-то штатная обертка чтобы локально переименовать сенсоры не в курсе).

Но тут снова вопрос - а надо ли и как правильно. А то я вот открываю тот же OCCT, а там сначала package id0, потом P-core 0-7, затем E-core 8-19. Можно ыведь снова поднять вопрос, а почему ядра начинаются с нуля и почему мелкоядра не с нуля?

ps Где-то недавно была схожая тема с отсутствующими\недостоверными\непонятными параметрами напряжений на мат.платах (не помню наименование модуля).

sehellion ★★★★★
()

Изучите содержимое /sys/class/hwmon/hwmon0/temp7_input и /sys/class/hwmon/hwmon0/temp7_label. sensors же просто эти данные от ядра обрабатывает. И, если там в temp*_label тоже «дырка» в нумерации, нужно смотреть исходники ядра, может понятно станет, почему так.

А, ещё посмотрите, что у вас в /proc/cpuinfo в строках 'core id', там может не быть вашего core 7. И, если его там и нет, то уже отдельный вопрос, выключено оно на заводе или просто так пронумеровалось :)

mky ★★★★★
()
Последнее исправление: mky (всего исправлений: 1)
Ответ на: комментарий от dmitry237

ядра отключаемые. чипы делают по одной маске, потом тестируют. часть кристалла получает пробоины из-за пылинок или дефектов совмещения например, и поэтому предусматривают частичное отключение целыми блоками.

например амд для PS5 делает чипы с 12 блоками GPU из них работает 10. два это резерв на случай дефектов, то есть для прохождения тестов надо чтоб любые 10 из 12 были без дефектов.

ckotctvo
()
Ответ на: комментарий от dmitry237

Для интела нормально пропуски в нумерации ядер, для начала нужно смотреть в /proc/cpuinfo строки 'core id'.

Правда, непонятно, что ТС утверждает, что в остальных прогах всё нормально. Если у проца исходно ядра нумерованы с «дырами», то другие проги, что-ли, нумеруют их сами и не важно что на аппаратном уровне?

mky ★★★★★
()
Ответ на: комментарий от mky

для начала нужно смотреть в /proc/cpuinfo

Тоже непонятно, у меня выводит:

$ grep -E 'core\sid' /proc/cpuinfo
core id         : 0                    
core id         : 1                    
core id         : 2                    
core id         : 3                    
core id         : 0                    
core id         : 1                    
core id		: 2
core id		: 3

$ grep 'processor' /proc/cpuinfo
processor	: 0
processor	: 1                  
processor	: 2
processor	: 3
processor	: 4                  
processor	: 5
processor	: 6
processor	: 7

$ sensors | grep '^Core'
Core 0:        +42.0°C  (high = +100.0°C, crit = +100.0°C)
Core 1:        +40.0°C  (high = +100.0°C, crit = +100.0°C)
Core 2:        +40.0°C  (high = +100.0°C, crit = +100.0°C)
Core 3:        +43.0°C  (high = +100.0°C, crit = +100.0°C)

mc:

1[|       0.7%  400MHz 38°C]  5[|||     2.6% 1000MHz 38°C]
2[        0.0%  400MHz 38°C]  6[|       0.7%  400MHz 38°C]
3[|       0.7%  400MHz 38°C]  7[        0.0%  400MHz 38°C]
4[        0.0%  400MHz 37°C]  8[        0.0%  400MHz 37°C]
dmitry237 ★★★★★
()
Ответ на: комментарий от dmitry237

У вас нумерация без дырок, 4 ядра, на каждом два потока (HT), а вот, допустим, мой xeon:

$ grep 'core id' /proc/cpuinfo
core id         : 0
core id         : 1
core id         : 2
core id         : 3
core id         : 4
core id         : 5
core id         : 8
core id         : 9
core id         : 10
core id         : 11
core id         : 12
core id         : 13
core id         : 0
core id         : 1
core id         : 2
core id         : 3
core id         : 4
core id         : 5
core id         : 8
core id         : 9
core id         : 10
core id         : 11
core id         : 12
core id         : 13
12 ядер, но номера доходят до 13. И таких примеров можно нагуглить кучу. А что там остально софт выводит непонятно. С одной стороны, логично, что обычному пользователю лучше не показывать, что у него есть ядро с номером 13, если их всего 12. С другой стороны, если софт как-то сам нумерует ядра, то потом по его номеру не найти какие 'processor' на этом 'core id' живут.

mky ★★★★★
()
Ответ на: комментарий от mky

тут тоже 16 ядер. на тесте чипа оказалось что есть битые, их отрубили, может какие-то antifusы пожгли.

аппаратные номера назначены в железе. там не просто номер ведь но и указание для шины куда послать запрос или ответ.

ckotctvo
()
Ответ на: комментарий от avgust23

Точно знаю. По-хорошему нужно искать вывод /proc/cpuinfo от разных зионов одной модели, желательно из первых партий, когда брака побольше. Если будут пропущены разные core id, то точно отключенные.

mky ★★★★★
()
Ответ на: комментарий от mky

скорее факт. битых чипов выходит довольно много но не все дефекты фатальные или задевают неотключаемые зоны. у того же эльбруса была оценка что если не рвать жёппу закладывая избыточность в регистровые файлы и RAM-блоки, то выход годных чипов будет 70% на 90нм и лишь 30% на 28нм

ckotctvo
()