Vine Linux バグトラッキングシステム - Vine Linux
課題の詳細を表示
0000248Vine Linux1 バグ公開2006-10-10 16:322006-12-01 23:21
anonymous 
 
不明 
完了不明 
4.0 
 
ppc
なし
0000248: PPC G4(7455)のL2/L3キャッシュが有効にならない。
Vine3.1の時は、BootXに因数を記入することで
G4のL2,L3キャッシュ、オンボードのオンオフや
マザーボード上のL2キャッシュのオンオフができたのですが
(l2cr=0 でオンボード2次キャッシュがオフにできた。)
4.0では、この手法が効かなくなっているみたいです。

□もし仕様が変わったのであれば、3.1と同じようにG4のL2/L3キャッシュが使えるように
対応してもらえたら、と思います。

□cat /proc/〜 で確認できなくなったのであれば、確認方法を教えていただけたら
幸いです。
よろしくお願いします。

vine3.1では、PowerLogix のCPU Directorを使いL2/L3キャッシュの因数を
Grab。その数値「0x80000000(L2)」「0x8f024300(L3)」を
「l2cr=0x80000000,l3cr=0x8f024300」と記入して起動させ
$cat /proc/cpuinfoを表示されると、それまで無かった
「l2cr override : 0x0」という項目が追加されて表示され、
オンボード512Kが無効化されてるのが確認できました。

$cat /proc/cpuinfo
processor : 0
cpu : 7455, altivec supported
clock : 595MHz
revision : 2.1 (pvr 8001 0201)
bogomips : 799.53
machine : Power Macintosh
motherboard : AAPL,9500 MacRISC
detected as : 16 (PowerMac 9500/9600)
pmac flags : 00000000
L2 cache : 512K unified
memory : 768MB
l2cr override : 0x0 (←記入すると表れる)
pmac-generation : OldWorld

さらにL2/L3のキャッシュの確認してみると。
$cat /proc/sys/kernel/l2cr
0x80000000: L2 enabled, no parity, no instn only, no data only,
default replacement

$cat /proc/sys/kernel/l3cr
0x8f024300: L3 enabled, no data parity, no addr parity, 1MB, clocks
enabled, +4 clock, no instn only, no sample point override, 4 clock
sample point, 2 P-clock sample point, default replacement, PB2 SRAM,
no clock cntl, no data only, private mem disabled, 1MB private mem

使用しているCPUはMacでは以下のような数値ですので、キャッシュが効いてるの
ことが確認できます。
SONNET-G4 800
CPU:PowerPC G4 7455
Clock Speed:800Mhz
CPU Bus Speed:50Mhz
System Bus Speed:50Mhz
L1 Cash:32K Inst/32K Data
L2 Cash:256k/799Mhz
L3 Cash:1MB/200Mhz

しかし、Vine4では、3の時にいれた時と同じ数値を与えても
$ cat /proc/cpuinfo
processor : 0
cpu : 7455, altivec supported
clock : 595.000000MHz
revision : 0.1 (pvr 8001 0201)
bogomips : 24.96
total bogomips : 24.96
timebase : 12500316
machine : Power Macintosh
motherboard : AAPL,9500 MacRISC
detected as : 16 (PowerMac 9500/9600)
pmac flags : 00000000
L2 cache : 512K unified
pmac-generation : OldWorld

と、入れても入れなくても同じ数値が帰ってきます。
どうもオンボードのキャッシュが生きてる状態のようで
さらにG4(7455)のL2/L3キャッシュの確認すると、キャッシュが
死んでる状態の表示が帰ってきます。

$ cat /proc/sys/kernel/l3cr
cat: /proc/sys/kernel/l3cr: そのようなファイルやディレクトリはありません
$ cat /proc/sys/kernel/l3cr
cat: /proc/sys/kernel/l3cr: そのようなファイルやディレクトリはありません

> マシン環境
> PM9600 + Sonnet-G4 PCI 800Mhz
> Memory768MB
設定されていません。
課題の履歴
2006-10-10 16:32anonymous新規課題
2006-10-10 18:04shaolin状態新規 => 完了
2006-10-10 18:04shaolin解決状況不明 => 保留
2006-10-10 18:04shaolinコメント追加: 0001526
2006-10-10 18:59anonymousコメント追加: 0001527
2006-12-01 23:21kazutaka解決状況保留 => 不明
2006-12-01 23:21kazutakaコメント追加: 0001528

コメント
(0001526)
shaolin   
2006-10-10 18:04   
> □もし仕様が変わったのであれば、3.1と同じように
> G4のL2/L3キャッシュが使えるように対応してもらえたら、
> と思います。

kernel の source を確認してみましたが、
2.6.14 あたりでこの辺りのコードがごっそり抜けている
ようです (正確には arch/ppc -> arch/powerpc の
移行が行われた際に、この辺りのコードがメンテナンス
されなくなった)。2.6.18 でも特に変わっていない様です。
l2cr= の引数を解釈するコードは入っていますが、
l3cr= のコード、及び /proc 以下をハンドルする
ルーチンも抜けています。

残念ながら、この辺りの修正は upstream で対応されるのを
待つしかありません。当方の手元にアップグレードカードも
ありませんし...
(0001527)
anonymous   
2006-10-10 18:59   
> 残念ながら、この辺りの修正は upstream で対応されるのを
> 待つしかありません。当方の手元にアップグレードカードも
> ありませんし...

う!本当に残念です。。
(0001528)
kazutaka   
2006-12-01 23:21   
<BTS:wishes:10>に転記したので完了にします。