Автор Тема: Обсуждение и предложения по реализации базы данных проб оборудования  (Прочитано 71617 раз)

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Тут ещё добавляется проблема, что "старые" ядра не умели получать информацию о текущем процессоре, касаемую частоты, так-что по любому надо составлять справочник с штатными частотами, на которые рассчитаны разные модели процессоров. 

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
Тут ещё добавляется проблема, что "старые" ядра не умели получать информацию о текущем процессоре, касаемую частоты, так-что по любому надо составлять справочник с штатными частотами, на которые рассчитаны разные модели процессоров. 
Все они умели, ещё в бог его знает какие времена. Ведь вычислять динамическую частоту умеем, а почему показать частоту номинальную не можем. В чем проблема ? Разве в dmi ? На Эльбрусе нет dmi и частота (динамическая) присутствует в выводе cpuinfo, но она не точна. Требуется округление и т.п. подгонка. Я бы давно на все это дело забил и написал округлялку, но проблема в том, что в большом числе случаев эта частота весьма далека от номинальной. Другими словами, обломаться можно и в этом случае даже на платформах с dmi.

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
Тут получается такая проблема. Либо заявленная производителем частота проца прописана в самом железе и извлекается через стандартный интерфейс (напр. dmi), либо её надо брать из справочника/базы, предварительно каким-то способом взяв точное название модели проца.
На тех платформах, где есть dmi, логично использовать его. На других платформах, видимо, как-то иначе - есть ли там вообще информация прописанная в само железо, которую можно вытянуть программным путём?
На Эльбрусе в выводе cpuinfo есть частота, но она, в силу модных тенденций разных причин показывается как динамически вычисляемая, что создает мне одну большую незадачу. Использовать справочники или какие-то внешние базы не предлагать - я на подобное не подписывался.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Вообще-то это можно засунуть в один файл. актуальных в настоящее время процессоров не так и много - ну порядка сотни максимум.

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
На тех платформах, где есть dmi, логично использовать его. На других платформах, видимо, как-то иначе - есть ли там вообще информация прописанная в само железо, которую можно вытянуть программным путём?
Пока только на одном из присланных мне файлов с ARM железки я не увидел информацию о частоте (даже динамически определенной) процессора, есть только некие bogomips (которые, как я понимаю, тоже динамические). Но у меня нет полной картины по выхлопам с нее (она у одного из разработчиков и маинтейнеров), поэтому я не могу достоверно утверждать, что этой информации нет на этой железке ни в каком виде.

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
Вообще-то это можно засунуть в один файл. актуальных в настоящее время процессоров не так и много - ну порядка сотни максимум.
Есть желающие, кто сможет это сделать ? У меня нет ни малейшего желания этим заниматься, т.к. это мне по идее было нужно ещё вчера (потому как это один из опорных и желаемых параметров для хранимой пробы). В противном случае, если не будет железного варианта с получением частоты, придется искать другие пути по более точной идентификации конкретно процессора в пробе и возможность сличить эту информацию с информацией из множества других отчетов. Написал ещё Шигорину по этому вопросу - он обещал поспрашивать разработчиков железа. Подожду, что ответят.

Оффлайн Александр Ерещенко

  • Участник
  • *
  • Сообщений: 1 246
К сожалению, от справочника, видимо, не уйти. Измеренная текущая частота может меняться по ходу работы (причём, быть разной на разных ядрах одного проца). Если производитель прописал информацию о номинальной частоте проца в железо и сделал возможность каким-то образом её читать, хорошо. Но и тут возможны варианты. Напр., сейчас смотрю на проц (оставил только интересуемые строчки):
$cat /proc/cpuinfo |grep "model name"
model name      : Intel(R) Core(TM) i3-4150 CPU @ 3.50GHz

$cat /proc/cpuinfo |grep MHz
cpu MHz         : 3496.992
cpu MHz         : 3479.355
cpu MHz         : 3501.367
cpu MHz         : 3497.402
$cpupower frequency-info

analyzing CPU 0:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 0.97 ms.
  hardware limits: 800 MHz - 3.50 GHz
  available cpufreq governors: performance, powersave
  current policy: frequency should be within 800 MHz and 3.50 GHz.
                  The governor "powersave" may decide which speed to use
                  within this range.
  current CPU frequency is 3.50 GHz (asserted by call to hardware).

# dmidecode -t processor
....
        Version: Intel(R) Core(TM) i3-4150 CPU @ 3.50GHz
...
        Max Speed: 7000 MHz
        Current Speed: 3500 MHz

А с другими процами будет уже совсем по-другому. В одних случаях в самом названии указывается частота. В других - в dmi "Max Speed" - она же и номинальная (но не в вышеприведённом варианте). Если cpupower поддерживается, то в "hardware limits" верхняя частота совпадает с номиналом.

Как вариант, показать полное название модели процессора и перечислить частоты, взятые из разных источников с указанием этих источников (dmi, cpuinfo, cpupower ...).

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
cpupower
Отпадает, утилита нестандартная, в старых бранчах и близко не наблюдается. dmi есть не везде, тоже отпадает.
PS Зоопарк использоваться не будет. Или есть одно решение для всех бранчей или задача решается по-другому.

Оффлайн Александр Ерещенко

  • Участник
  • *
  • Сообщений: 1 246
Ну тогда больше ничего не вижу, кроме варианта cat /proc/cpuinfo |grep "model name" и сопоставлять по базе (регулярно обновляемой).

ЗЫ. А напомните, для чего надо показывать именно паспортную частоту процессора? Не достаточно ли просто "model name" из cpuinfo в совокупности с "cpu MHz" оттуда же?

ЗЗЫ. Вот пощупал соседнюю машинку:
$ cat /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 16
model           : 6
model name      : AMD Processor model unknown
stepping        : 2
cpu MHz         : 2700.000
cache size      : 1024 KB
physical id     : 0
siblings        : 1
core id         : 0
cpu cores       : 1
apicid          : 0
initial apicid  : 0
fdiv_bug        : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 5
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc nonstop_tsc extd_apicid pni monitor cx16 popcnt lahf_lm svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt hw_pstate npt lbrv svm_lock nrip_save vmmcall
bogomips        : 5425.06
clflush size    : 64
cache_alignment : 64
address sizes   : 48 bits physical, 48 bits virtual
power management: ts ttp tm stc 100mhzsteps hwpstate
И никто больше не говорит подробней про модель процессора. Либо по косвенным признакам вычислять модель, либо смотреть надпись на крышке проца. (по памяти, там стоит что-то типа Amd Sempron под сокет AM2+)
...
А не, чуть больше намеков сделал cpuid :
...
(simple synth)  = AMD Athlon II (Sargas DA-C2) / Athlon II X2 (Regor DA-C2) / Sempron II Sargas DA-C2) / Athlon II Dual-Core Mobile (Regor DA-C2) / Sempron Mobile (Sargas DA-C2) / Turion II Dual-Core Mobile (Caspian DA-C2), 45nm
...
(override brand synth) = AMD Athlon(tm) 40 Processor
(synth) = AMD Athlon II (Sargas DA-C2), 45nm 40 Processor
...

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
Ну тогда больше ничего не вижу, кроме варианта cat /proc/cpuinfo |grep "model name" и сопоставлять по базе (регулярно обновляемой).
Со слов mike@ и по моему же мнению это можно убиться, да, поэтому не вариант. Модель не интересует, интересует паспортная частота, чтобы можно было сравнивать машины одного класса или даже одной конфигурации и одного типа процессора, но разных паспортных частот. Серией или кодовым названием тут ничего не сравнишь - частоты в пределах семейства отличаются в любом случае. Есть, правда, ещё один вариант, но и там железного результата можно не получить в некоторых случаях.
Промежуточный итог:
1) есть системы, где частоты вообще нет (даже рассчитанной динамически)
2) есть системы, где частоты динамически измеряемые, могут превышать паспортную и порой в разы
Что со всем этим делать, пока не придумал, а без этого сравнивать системы (что есть один из рабочих модулей проектируемой системы) теряет всякий смысл...

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
Вернее, что делать с системами где частоты вообще нет придумал и это не x86 платформа, а для последней будет несколько иной подход. Раз нет единого решения, значит будет несколько решений на каждый случай.

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
ЗЗЫ. Вот пощупал соседнюю машинку:
А вы не могли бы пощупать эту машинку в несколько иных условиях: дистрибутив на более старом бранче (можно livecd, бранч лучше 5.1, но можно и что-нибудь на шестой платформе) ? Оттуда будет нужно только /proc/cpuinfo (лучше личным сообщением).

Оффлайн Александр Ерещенко

  • Участник
  • *
  • Сообщений: 1 246
А можно я один глупый вопрос задам? :)
Перелистал всю ветку. Как я понял (поправьте, если что), вся эта база проб оборудования делается по аналогии с Росой, чтобы можно было посмотреть, на каком оборудовании какие дистрибутивы точно работают (на каком точно не работают - это отдельная история). Параллельно можно собирать дополнительную статистика по частоте использования того или иного оборудования.
А теперь вопрос. А принципиально ли для этих целей знать частоту процессора, или она носит просто иллюстративный характер, а принципиальным является только модель/семейство процессора?

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Модель не интересует, интересует паспортная частота, чтобы можно было сравнивать машины одного класса или даже одной конфигурации и одного типа процессора, но разных паспортных частот.
Вот тут непонятно что сравнивать. При одной частоте быстродействие процессоров могут отличаться на порядок, благодаря различию архитектур. Т.е. часто частота не о чём не говорит, если процессоры разных классов.

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
Вот тут непонятно что сравнивать. При одной частоте быстродействие процессоров могут отличаться на порядок, благодаря различию архитектур. Т.е. часто частота не о чём не говорит, если процессоры разных классов.
Руслан, сравни ради интереса два процессора одного семейства без номинальной частоты. Вот нет её у тебя, отобрали, стерли на процессоре (оставили только бренд и семейство, к примеру, это процессоры Pentium III), упаковку ты потерял давно (либо выкинул).