トップ «前の日(08-22) 最新 次の日(08-24)» 追記

Orz日記 by Akio Morita

ToDo:

  • 15 SAD Fit[]回りの障害事例の解析
  • 10 smart pointer版PEGクラスの再実装(Left Recursionまわり)
2006|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|06|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|07|08|09|10|11|12|
2013|01|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|06|07|08|10|12|
2016|01|02|03|05|06|08|10|11|
2017|01|02|03|04|05|06|07|09|10|11|12|
2018|01|02|03|04|06|07|08|09|10|11|12|
2019|01|03|04|05|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|

2011-08-22

_ [FreeBSD][Admin]ruby-1.9

FreeBSD ports-currentの defaultが ruby 1.9に移行したが、 いくつか動かないものが出てる。

  • japanese/ruby-chasen(代わりにMeCabを使う)
  • mail/bsfilter(Monkey patchしたけど動かない)

暫く、ruby 1.8運用かな?


2024-08-22

_ [Ryzen]Ryzen 9950X

これまでの5950X, 7950X同様にいつもの店で、初回販売をゲット!

会計開始時点で、9950Xは完売・9900Xは在庫ありだった

他の店だと9900Xも含めて完売になっているところもあったようなので、 初回入荷分はかなり少なかった模様

現行運用中の7950Xなメイン機(Antec P5にてunix運用)を9950Xに更新して、 余った7950Xで5950Xなサブ機(Windows運用)を更新予定

サブ機側はマザー換装になるので、USB仕様が旧式化しつつあるケースも含めて更新するつもりで、ケース・電源・メイン機と同じASRock B650M PG Riptide WiFiと本更新でメイン機に投入予定のJEDEC仕様のDDR5-5600メモリを準備済み

一旦、これらの部品で検証環境を構築、CPUの動作確認・冷却系の機能確認・Kernel driver回りの動作確認を実施後にメイン機の筐体に移植予定

IO-dieはRyzen 7000と同様なはずなので、本運用に向けてメモリ回りの動作安定性・冷却/消費電力とOn dieセンサー(amdtemp driver)の動作確認を予定

_ [Ryzen]Ryzen 9950X仮組み

CPU・マザー(玉突きで出てくる7950X用に用意した同型)・メモリは本番機で使用予定の構成でサブ機用の筐体に仮組み実施

  • Ryzen 9 9950X
  • ASRock B650M PG Riptide WiFi (ASRockが誇るGen4 (x16/x4) + Gen3 (x1/x1エッジフリー仕様)な変態M-ATXマザー)
  • Crucial Pro 96GB Kit (48GBx2) DDR5-5600 UDIMM CP2K48G56C46U5

CPUクーラーは、いつもならNoctua NH-U12Aを使うところだが、試験的にCPS RZ620-BKをNoctua NF-A12x25 PWMファンに換装したものを導入

  • 高さはほぼ同等だが、ヒートシンク体積的にはNH-U12Aよりも有利になることを期待して導入
  • メモリースロットとの干渉は苦しくなるが、吸気側ファンを外せばアクセスに支障は無い
  • ケース幅が広ければ、素直にD15系(いまならGen2が欲しいところ)へアップデートすべきだが、Antec P5前提だと 160mmが限界

これに、試験用のNVMe SSD(WD SN770)を載せた最小構成で各種動作確認を開始

  • BIOS FlashbackにてBIOS Ver 3.06 (AGESA 1.2.0.0a Patch A)に更新
  • UEFIはFactory Defaultのまま、Memtest86 V11.0 FREEにてメモリ回りの初動テスト
    • 48GBx2の認識を確認
    • DDR5-5600動作を確認 (Ryzen 7000だと手動設定なしだとDDR5-5200動作になるところ)
    • memtest86 4周クリア(約7時間)
  • FreeBSD 14.1-STABLE(n267883)インストール実施

_ [Ryzen][FreeBSD]amdsmn/amdtemp for Ryzen 9950X

試験環境のFreeBSDで確認作業実施

  • stable/14のコードそのままでは、amdsmn/amdtempを認識しない
    • Ryzen 7950XのFamily=0x19 Model=0x61 Stepping=2に対して、Ryzen 9950XはFamily=0x1a Model=0x44 Stepping=0になっている
    • amdsmnが参照するPCI Bridgeは、Zen4と同様のvendor=0x1022 device=0x14d8 subvendor=0x1022 subdevice=0x14d8
    • amdsmn_probe内のCPU family検査コードを修正しないと認識しない(ZEN5のFamily 0x1aは含まれていないため)
    • amdtempのsensor検出コードもCPU family分岐があるので、0x1aエントリの追加・新規コード(amdtemp_probe_ccd_sensors19hの0x1a向け)が必要

とりあえず、stable/14上でコードをでっち上げ

diff --git a/sys/dev/amdsmn/amdsmn.c b/sys/dev/amdsmn/amdsmn.c
index 5af8d9aca7bd..ece8a080ec23 100644
--- sys/dev/amdsmn/amdsmn.c.orig
+++ sys/dev/amdsmn/amdsmn.c
@@ -198,6 +198,7 @@ amdsmn_probe(device_t dev)
       case 0x15:
       case 0x17:
       case 0x19:
+      case 0x1a:
               break;
       default:
               return (ENXIO);
diff --git a/sys/dev/amdtemp/amdtemp.c b/sys/dev/amdtemp/amdtemp.c
index 73a4ba86bb84..1af35ed9d09b 100644
--- sys/dev/amdtemp/amdtemp.c.orig
+++ sys/dev/amdtemp/amdtemp.c
@@ -227,6 +227,7 @@ static int32_t     amdtemp_gettemp15hm60h(device_t dev, amdsensor_t sensor);
 static int32_t        amdtemp_gettemp17h(device_t dev, amdsensor_t sensor);
 static void   amdtemp_probe_ccd_sensors17h(device_t dev, uint32_t model);
 static void   amdtemp_probe_ccd_sensors19h(device_t dev, uint32_t model);
+static void   amdtemp_probe_ccd_sensors1ah(device_t dev, uint32_t model);
 static int    amdtemp_sysctl(SYSCTL_HANDLER_ARGS);

 static device_method_t amdtemp_methods[] = {
@@ -314,6 +315,7 @@ amdtemp_probe(device_t dev)
       case 0x16:
       case 0x17:
       case 0x19:
+      case 0x1a:
               break;
       default:
               return (ENXIO);
@@ -473,6 +475,7 @@ amdtemp_attach(device_t dev)
               break;
       case 0x17:
       case 0x19:
+      case 0x1a:
               sc->sc_ntemps = 1;
               sc->sc_gettemp = amdtemp_gettemp17h;
               needsmn = true;
@@ -536,6 +539,8 @@ amdtemp_attach(device_t dev)
               amdtemp_probe_ccd_sensors17h(dev, model);
       else if (family == 0x19)
               amdtemp_probe_ccd_sensors19h(dev, model);
+      else if (family == 0x1a)
+              amdtemp_probe_ccd_sensors1ah(dev, model);
       else if (sc->sc_ntemps > 1) {
               SYSCTL_ADD_PROC(sysctlctx,
                   SYSCTL_CHILDREN(sysctlnode),
@@ -886,3 +891,24 @@ amdtemp_probe_ccd_sensors19h(device_t dev, uint32_t model)

       amdtemp_probe_ccd_sensors(dev, maxreg);
 }
+
+static void
+amdtemp_probe_ccd_sensors1ah(device_t dev, uint32_t model)
+{
+      struct amdtemp_softc *sc = device_get_softc(dev);
+      uint32_t maxreg;
+
+      switch (model) {
+      case 0x40 ... 0x4f: /* Zen5 Ryzen "Granite Ridge" */
+              sc->sc_temp_base = AMDTEMP_ZEN4_CCD_TMP_BASE;
+              maxreg = 8;
+              _Static_assert((int)NUM_CCDS >= 8, "");
+              break;
+      default:
+              device_printf(dev,
+                  "Unrecognized Family 1ah Model: %02xh\n", model);
+              return;
+      }
+
+      amdtemp_probe_ccd_sensors(dev, maxreg);
+}

一応、それらしい数値が返ってくる模様

% dmesg -a | grep ^CPU
CPU: AMD Ryzen 9 9950X 16-Core Processor             (4292.17-MHz K8-class CPU)
% dmesg -a|grep ^amd
amdsmn0: <AMD Family 1ah System Management Network> on hostb0
amdtemp0: <AMD CPU On-Die Thermal Sensors> on hostb0
amdtemp0: Found 32 cores and 1 sensors.
% sysctl dev.amdtemp
dev.amdtemp.0.ccd1: 34.0C
dev.amdtemp.0.ccd0: 36.1C
dev.amdtemp.0.core0.sensor0: 42.6C
dev.amdtemp.0.sensor_offset: 0
dev.amdtemp.0.%parent: hostb0
dev.amdtemp.0.%pnpinfo:
dev.amdtemp.0.%location:
dev.amdtemp.0.%driver: amdtemp
dev.amdtemp.0.%desc: AMD CPU On-Die Thermal Sensors
dev.amdtemp.%parent:
% sysctl dev.cpu.0
dev.cpu.0.temperature: 41.5C
dev.cpu.0.cx_method: C1/hlt C2/io C3/io
dev.cpu.0.cx_usage_counters: 205233 0 0
dev.cpu.0.cx_usage: 100.00% 0.00% 0.00% last 443us
dev.cpu.0.cx_lowest: C1
dev.cpu.0.cx_supported: C1/1/1 C2/2/18 C3/3/350
dev.cpu.0.freq_levels: 4300/5250 3000/2550
dev.cpu.0.freq: 4300
dev.cpu.0.%parent: acpi0
dev.cpu.0.%pnpinfo: _HID=ACPI0007 _UID=0 _CID=none
dev.cpu.0.%location: handle=\_SB_.PLTF.C000
dev.cpu.0.%driver: cpu
dev.cpu.0.%desc: ACPI CPU

カテゴリー: Admin | Emacs | EPICS | Fortran | FreeBSD | GCC | hgsubversion | IPv6 | KEKB | LHC | Lisp | LLVM | MADX | Ryzen | SAD | samba | tDiary | unix | WWW | YaSAI | お仕事 | イベント | 出張 | 宴会 | 数学 | 艦これ | 買いもの | 追記 | 雑記