tarosukeの日記: [wOS] x86ではカーネルスタックをプロセッサごとにするのは面倒 3
日記 by
tarosuke
例外時にはIPやCSやSPやSS、フラグが自動的にカーネルスタックに保存される。その時SPが指しているのは当然カーネルスタックだ。しかしカーネルスタックに積まれたそれらの情報はタスク固有のものなのでどうにかしないといけない。これが面倒な理由。Linuxがタスクごとにカーネルスタック持ってるのもこれが理由だろう。
必要な大きさこそ違えどどのみちタスクごとにカーネルスタックが必要だ。これが忘れがちな、でも厄介な理由。
# 以前にも似たようなこと書いたけど。
NUMAノード (スコア:1, 荒らし)
ごとくらいには例外ハンドラベクターも個別にする必要がある、かな?
# というかそうしないとCPU間通信できない例外のときこまる
# けど当面先かな?
M-FalconSky (暑いか寒い)
Re:NUMAノード (スコア:1)
タスクはプロセッサにとって排他だから一緒で問題ないよ。
# プロセッサ間通信はプライオリティインバージョンになったプロセッサへのディスパッチ要求くらいしか使わなくて、通信と言えばタスク間通信だし。
Re: (スコア:0)
そか、そういう位置でしたね。
# 非プロセスレベルのレイヤー(UEFIのコードとか)の動作を考えちゃうのは組み込み脳だろうかw
M-FalconSky (暑いか寒い)