【Linux】カーネル総合4【Kernel】
at LINUX
[前50を表示]
150:login:Penguin
08/05/04 14:57:07 wXNFlkH2
>>144
arch/$(ARCH)/Makefile
151:login:Penguin
08/05/04 18:05:33 2gCDjBFB
>>148
make bzImage & make modules
は古い作法。
make
だけで上記2つはやってくれる。
つか、ほとんどのアーキでカーネルはbzImageではつくらないわけで、
最近のドキュメントからは消えてるやりかただと思う。
もちろん実害はないけどね。
152:login:Penguin
08/05/04 21:49:51 mLAMu6gx
>>144
たぶん、気のせいだと思うよ。
bzImageを作るのではなくて、bzImageを作る必要があるのかどうかチェックしているだけじゃないか。
153:login:Penguin
08/05/05 14:31:15 Vur9Ut4N
あれ?
make だけで bzImage まで作ってくれりるの?
そのあと make modules したらまたモジュールのコンパイルしている気がするのは気がするだけか。
154:login:Penguin
08/05/05 14:42:23 pTqXDz/U
おれの場合
2.4系
make bzImage && make modules && make modules_install
2.6系
make && make modules_install
その後は共通
cp System.map /boot/System.map-2.X.XX.X && cp arch/i386/boot/bzImage /boot/kernel-2.X.XX.X
mkinitrd /boot/initrd-2.X.XX.X 2.X.XX.X <-必要あれば
>>153
気がするとかいうんじゃなくて make V=1 で verbose させたときの出力でも貼れよ
155:login:Penguin
08/05/05 14:43:27 pTqXDz/U
2.4系の場合、make dep するの忘れてた
156:login:Penguin
08/05/05 14:49:01 B6gPYpkP
パッケージで管理しないの?
157:login:Penguin
08/05/05 14:54:41 pTqXDz/U
パッケージで管理しなきゃいけないなんて強迫観念、どこからくるの?
158:login:Penguin
08/05/05 15:33:50 eCuCEW49
たまたまbzImageって打ち忘れたときに
makeだけでbzImageとmoduleもやってくれるって気がついた
159:login:Penguin
08/05/05 17:55:14 om4Jbrag
>>156
debianとかubuntuとかdeb系ならpackageにするな
packageにすると何か不都合があるという強迫観念は無いしなw
160:login:Penguin
08/05/06 10:07:24 3KplGto4
make install
をすると、/boot/grub/grub.confを書き換え(てくれ)る。
161:login:Penguin
08/05/07 04:58:50 jkQXmoJF
ようやくremove v850 supportが-mmに入るらしい。
冥福でも祈っておきますかね。
162:login:Penguin
08/05/08 22:49:55 zjaQbqhP
deb系だと簡単だからなぁ。
/usr/src/linux# make-kpkg --bzimage --revision=custom.1.0 kernel_image
rpm系だとパッケージ作らないな。
163:login:Penguin
08/05/08 23:51:23 aArXWV97
"make rpm"なんてことができたりするわけですが。
deb派なんで使ったことないけど。
164:login:Penguin
08/05/08 23:58:34 cXW3h6md
debとかrpmとか作ったパッケージどう利用してる?
パッケージに固めてその後インストールってだけなら
わざわざパッケージ化する意味感じられないんだけど
165:login:Penguin
08/05/09 00:26:22 jc04nupS
>>164
1000台以上のシステムに配布してるけどね。
166:login:Penguin
08/05/09 01:40:40 HdSVdVag
速いマシンでpackage化して、遅いマシンにインストールとかは良くやるな
kernelに限らず
167:login:Penguin
08/05/09 01:54:53 wpvCHRkO
>>165>>166
これはって感じではなかったけど、ありがと
168:login:Penguin
08/05/09 02:44:41 F15+qpVN
今のカーネルはどのバージョンの gcc でコンパイルすればいいの?
カーネルの各バージョンによってコンパイラのバージョンも
ある程度制限されるのかな?
昔は 2.7.2.3 をずっと使っていた時期があった。
169:login:Penguin
08/05/09 03:07:58 6Arb8kg/
linux 2.6.xは、gcc 2.xは打ちきられたが、3.x, 4.1.0を除く4.xを使えば基本的には問題ないはず。
まあ、カーネルと追加モジュールは同じバージョンのgccでコンパイルしたほうがいいだろう。
linux 2.4.33は、gcc 4.0までしか対応していない。
170:login:Penguin
08/05/09 03:12:13 6Arb8kg/
33じゃなくて36だな
171:login:Penguin
08/05/09 03:17:41 wpvCHRkO
Documentaion/Chagses の "Current Minimal Requirements" が参考になるかな
172:login:Penguin
08/05/09 12:53:02 YJkR6Ryh
>>165
1000台以上でnetbootじゃないのか。後苦労様。
173:login:Penguin
08/05/09 20:00:51 YAjLseB2
>>172
そりゃ全部違う客先のシステムだから。 まあ一気にではなくてアップデートパッケージの
一部として必要な客だけにだけど。
174:login:Penguin
08/05/11 01:22:28 eXTEiFTy
>>144
CentOSとUbuntuでmake installの動きが違うって事は各ディストリが用意したkernel sourceを使用して
いるって事かな。それだと最新のkernelが提供されてなかったりするでしょ。
本家から落としてきたkernelだとsourceを展開した所のREADMEにやり方が書いてあるよ。
GCCのバージョンもこれ以上の物をつかえって書いてある。
で、いきなりだけど2.6.25.2がつい先日出たと思ったら2.6.25.3がいきなり来てるw
175:login:Penguin
08/05/12 15:49:43 p2NAN1FV
SATAスレから移動してきました。
libataのPATAコントローラで、ディスクにエラーがあって
UDMA/100->66,33,PIO4へとフォールバックしてしまった
コントローラをUDMA/100に戻すのに、リブート以外の
方法ってあるのでしょうか?
176:login:Penguin
08/05/15 18:33:32 ATo1hfqh
次の 2.6.26 は、2.6.7の時代に逆戻り。
とFUDっぽく書いてみた。
[announce] "kill the Big Kernel Lock (BKL)" tree
URLリンク(www.ussg.iu.edu)
177:login:Penguin
08/05/15 23:41:27 vdpD93iK
>>176
BKLってどこで使われてたっけ?
mountとかドライバとか?
178:login:Penguin
08/05/15 23:51:27 6wCVnW3Y
2.7 or 2.8ってまだ影も形もなし?
2.6でどこまで引っ張るの?
179:login:Penguin
08/05/16 00:11:56 oRD1Yii3
>>178
URLリンク(www.zdnet.com.au)
>One of the original worries was that we would not be able to make big changes within the confines of the development model ...
>I always said that if there is something so fundamental that everything will break then we will start at 2.7 at that point.
180:login:Penguin
08/05/19 04:26:50 6UjCe17e
>>170
gcc-4.2.3 おkです
181:login:Penguin
08/05/20 01:36:24 D0FaA2M8
>>177
NFSまわりには大量に残っていたような・・
182:login:Penguin
08/05/20 01:37:59 D0FaA2M8
>>178
LKMLの削除予定な互換機能をいつ消すかという議論で、だれかが、これは2.7で消すとドキュメントしてあるけど、
2.7って一生出そうにないから、今すぐ消しちゃっていいんじゃない。
とか言い出したときに反論が誰からもあがらないレベル。
183:login:Penguin
08/05/22 22:04:51 0yN+2sYR
Linux Kernel Watch 番外編 - Linuxメモリ管理の最先端を探る
URLリンク(www.atmarkit.co.jp)
184:login:Penguin
08/05/22 22:50:32 JIWpqO09
> Linuxカーネルメーリングリスト(LKML)の議論では「もうカーネル2.7は出ない」ともいわれており
2.6.99までいったら次は2.6.100?
185:login:Penguin
08/05/22 23:04:08 0yN+2sYR
>>184
いま、2.6.25だから、あと75回のリリースが必要、いまのところ3ヶ月に一回リリースだから1年回に4回のリリース、
つまり75/4で18.75年後か。
もうLinux自体がなくなってるんじゃね?
186:login:Penguin
08/05/22 23:15:06 lfhq5Xa9
>184
2.1 は 2.1.132 まで出てる
187:login:Penguin
08/05/23 00:01:11 g7WmubFt
でも今カーネルって世界の大企業が金をかけて開発に参加しているんでしょう。IBMとか。
リーナスが居なくなってからどういった流れになるんだろうね。
その頃はPCなんて開発者かマニアしか持ってないかなw 今のPCと同じくらいの性能が携帯や
テレビに組み込まれるか、もっと用途を特化(家電化)した物になるかな。
アプリを入れ替えてなんでも出来るってPCはマニアと開発用、20年前とある意味状況が似てるなw
188:login:Penguin
08/05/23 02:41:55 Aw92lsXu
家電業界が閉鎖的だから無理じゃね?
189:login:Penguin
08/05/23 06:13:03 S91UB5ne
もうLinuxは役目を終えたよ
さようなら・・・
190:login:Penguin
08/05/23 07:12:29 stBfu2fQ
まだ始まってすらいねーよ
191:login:Penguin
08/05/23 10:23:48 XqX2dolZ
永遠に始まることはないかも。
192:login:Penguin
08/05/23 12:51:22 EFqM8MG5
URLリンク(lkml.org)
誰も消してなかったんかい。
193:login:Penguin
08/05/24 18:01:56 hYDvYrhl
Riserには、信者いるから怖くて出来なかったんじゃね?
194:login:Penguin
08/05/24 18:20:00 ENvVuwzk
忘れたのか、お前ら・・・
ジーク レイサー !
ジーク レイサー !
ジーク レイサー !
ジーク レイサー !
ジーク レイサー !
ジーク レイサー !
ジーク レイサー !
ジーク レイサー !
ジーク レイサー !
朝昼晩と唱えよ。
195:login:Penguin
08/05/24 18:21:22 z216+1L/
発音はライザーではないのか?
196:login:Penguin
08/05/24 18:45:06 f0NI1a/q
一つ質問
スケジューラーって何でラウンドロビン?
197:login:Penguin
08/05/24 23:37:05 CZoyeCxg
>>196
お前は何を言っているんだ?
198:login:Penguin
08/05/24 23:37:56 hhAnOur+
俺は殺してない! 俺はやってない!
199:login:Penguin
08/05/25 00:37:36 WOd4jCZ5
だ〜れが、ころした
ラウンドロビン???
200:login:Penguin
08/05/25 07:17:53 iSyhNPh1
>>196
お前は何を言っているんだ?
201:login:Penguin
08/05/25 07:26:54 I72gntmD
runq の扱いについて調べる限り、
単純なラウンドロビンにはないっていないようだけど、
そもそも何かを「順に」やらせるのがスケジューラだからなぁ。
202:login:Penguin
08/05/25 16:41:44 M2hikG1r
スケジューラクラスをFIFOにすれば、ラウンドロビンから逃げられるよ
203:login:Penguin
08/05/25 20:12:49 33xpzD5A
>>201
そういや、SJFとかSRTF、FCFSにしなかった理由って何なんだろうね?
良く知らんけど
204:login:Penguin
08/05/25 23:58:51 M2hikG1r
>>203
カーネルはどのプロセスが短時間ジョブかは知らないだろう。
統計的な予測はできるじゃん。という反論はあるが、まさにそのヒューリスティックな予測がバグっていたから、
Fair なスケジューラほしーーって議論になったんだよね。
逆にいうと、いかなる予測をいれても、そのアルゴリズムにつけこんでCPU時間を余計に分捕るプロセスはつくれてしまうので、
汎用OSには向かないんじゃね?
という意見はあるんだろうね。それが真実かどうかは知らんが。
あと、POSIXが要求している仕様(nice値が40段階あって、それとは別にRRクラスとFIFOクラスがある)がいくつかの
スケジューラを選択不可能にしてるわな。
205:login:Penguin
08/05/26 00:52:50 FihVIMEu
POSIXなんて古くさいもんにこだわって利便性すれのもいかがなものか
206:login:Penguin
08/05/26 01:12:56 NwiVdCZh
それはLinuxをかなり根本的な所から否定してないかい?
207:login:Penguin
08/05/26 01:19:30 sypYwFrG
>>205
POSIXは実装すべきインタフェースを規定してるだけ
あと、実装の仕方は自由
208:login:Penguin
08/05/26 01:20:04 O94OAVVL
POSIXに準拠していないとペンタゴンとかに納入できない〜
209:login:Penguin
08/05/26 06:11:59 1U7r21z/
>>204
へー。ありがとう
210:login:Penguin
08/05/27 01:12:47 OXsbLFOe
POSIX対応はオプションにすれば良い。
………Windowsみたいに
211:login:Penguin
08/05/27 08:36:15 k8MnOQSJ
POSIX対応、というかUNIX互換がオプションなのはXPだけです
2000もVIstaも標準でついてきます
212:login:Penguin
08/05/28 02:10:29 oGzSVSIa
intel製GBit ether I/F用の
ドライバのe1000の更新履歴を読みたいのですが、
どこを探すべきなんでしょうか?
intel からダウンロードしたsrc内に含まれておらず、
途方にくれています。
213:login:Penguin
08/05/28 15:12:06 bSXvNUz8
>bad pmd ffff810000207238(9090909090909090)
ファイヤーウォールの中のマシンだから、
何か送り込まれるはずはないんだけどなぁ....
と言ってた日本人のその後が知りたい...
214:login:Penguin
08/05/28 23:20:42 wup/54/O
>>213
いや nop nop nop は他に考えられないだろ。常考
215:login:Penguin
08/05/29 02:03:31 RqPZ5P46
>>212
URLリンク(sourceforge.net)
Notesのアイコンをクリックしてみれば?
216:login:Penguin
08/05/29 11:20:12 cIvV6HAo
何かカーネルのver上げたら起動時にiptables-restoreとか実装されてたんだが
これいつのverのkernelから実装された?
217:login:Penguin
08/05/29 13:13:58 j9BUJtS8
>>216
ずいぶん前からそのスクリプトなかったっけ?
218:login:Penguin
08/05/29 21:40:11 cIvV6HAo
>>217
今まで2.6.18.*使ってたんだが、2.6.25.4を試験的に適当にぶち込んでみたら実装されてたんで
いつからサポートされるようになったのかなーと
219:login:Penguin
08/05/30 00:26:26 i7V61m8w
>>215
おおっ、ありがとう。
sourceforge まじめに見たことがなかったので、
Notesのアイコンは、ただの装飾だと思ってた。
220:login:Penguin
08/05/30 01:17:18 rQsfphG1
>>216
カーネルソースにそんなスクリプトは無いが?
221:login:Penguin
08/05/30 22:13:00 4dggi27y
5月版 マージウィンドウなんか1週間に縮めちゃえ?
URLリンク(www.atmarkit.co.jp)
2.6.26に向けて再燃、リリースプロセスめぐる議論
マージウィンドウ、2週間の是非
linux-nextの存在意義とは?
cgroupでリソースを管理する幸せ
着々と進化するKVM、準仮想化での改善
とうとうマージされた便利機能、KGDB
-stableの進ちょく
222:login:Penguin
08/05/30 22:44:00 l+5uNLCi
kgdbマージは嬉しいというよりもやっとかー!という感じ。
cgroupは期待。
マージについてはリリースプロセスよりそもそも作ってるものの品質管理汁。
223:login:Penguin
08/05/30 23:16:36 hKjiSzwA
KernelWatchいつも読んでる
これ読んでる人多そうだな
hdx
sdx
扱いの情報のときは非常に役に立った
224:login:Penguin
08/05/31 22:01:11 GsnI8rry
cgroupはどの辺が期待大きいの?
225:login:Penguin
08/05/31 23:17:47 GsnI8rry
>>213
なんか、Hugh Dickinsが以下のパッチで直したっぽいね。
Signed-off-by: Hugh Dickins <hugh@veritas.com>
---
arch/x86/mm/init_64.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- 2.6.26-rc4/arch/x86/mm/init_64.c 2008-05-03 21:54:41.000000000 +0100
+++ linux/arch/x86/mm/init_64.c 2008-05-28 17:38:19.000000000 +0100
@@ -206,7 +206,7 @@ void __init cleanup_highmap(void)
pmd_t *last_pmd = pmd + PTRS_PER_PMD;
for (; pmd < last_pmd; pmd++, vaddr += PMD_SIZE) {
- if (!pmd_present(*pmd))
+ if (pmd_none(*pmd))
continue;
if (vaddr < (unsigned long) _text || vaddr > end)
set_pmd(pmd, __pmd(0));
226:login:Penguin
08/06/02 02:26:22 4+cxl5O4
www.kernel.orgからダウンロードした
カーネルをコンパイルしたいんですが、
Fedora core 1 + glibc 2.3.3 + kernel 2.4.28 (日経Linux 2005/2)とか
Fedora core 5 + glibc 2.4 + kernel 2.6.16.1 (日経 自分で作るLinux)
のように、素直(?)にコンパイルが通る、gccとglibcとkernelの
組み合わせってどうやって調べればいいのでしょうか??
例えば下記の組み合わせとかだと、エラーが出てコンパイルできないんですが・・・?
fedora8(kernel2.6.23.1-42, gcc 4.1.2 20070925)+linux-2.6.24+glibc-2.7:
libc_pic.os: undefined reference to '__sync_fetch_and_add_4'
libc_pic.os: undefined reference to '__sync_val_compare_and_swap_4'
libc_pic.os: undefined reference to '__sync_bool_compare_and_swap_4'
227:login:Penguin
08/06/02 02:47:26 CsUkV150
>>226
安心しる。原因はそこじゃない
228:login:Penguin
08/06/02 02:48:41 1wnxA0m9
>>226
つLKML
229:login:Penguin
08/06/02 02:57:23 CsUkV150
>>228
いや、エラーメッセージにlibcがどうのって書いてあるって事は、彼はカーネルではないものをコンパイルしている。
230:226
08/06/03 02:09:26 A/4i6670
・・・kernelでなくて、glibcのコンパイルで
ひっかかっているんでした。
ググってみるとgccを、configureに-with-arch=i686をセットして
リビルドする必要があるそうな・・・。
gccのコンパイルって簡単にできるのかなぁ?
とりあえず、今日はここまでで。。。
231:login:Penguin
08/06/03 09:04:24 mdCw3C7C
gccのコンパイルは簡単だよ。
glibcに比べると問題も少ないと思う。
232:login:Penguin
08/06/03 19:53:44 CGhlGyiM
なんでまた Fedora なんかで glibc をコンパイルしているんだ…
233:login:Penguin
08/06/04 02:51:08 oXKsNeol
>なんでまた Fedora なんかで glibc をコンパイルしているんだ…
?
234:login:Penguin
08/06/04 10:10:06 5ihx5Ml6
>>233
>>226
235:login:Penguin
08/06/04 20:18:03 eTYYKKOo
仕事でカーネル開発してる会社に入りたいんだが
おすすめの所があったら教えてほしい
236:login:Penguin
08/06/04 21:05:08 RFSQlr2C
マイクロソフト
237:login:Penguin
08/06/04 21:07:21 3y6iDe6j
windriver
238:login:Penguin
08/06/05 00:55:11 1HiRtmXB
KFC
239:login:Penguin
08/06/05 11:16:12 2tYqolu8
えっ?みんな趣味でカーネルいじってんの?
俺は仕事でカーネル開発できてるからその延長でやってるんだけど
みんな同じようなもんだと思ってた
240:login:Penguin
08/06/05 18:06:27 8DCO4Eyi
>>235
カーネル開発を楽しみたいなら、それを本来業務にするとそのうちツラくなるんじゃね?
ハード屋のドライバ部門か、オープン系システム屋のインフラ部門を勧めておく。
241:login:Penguin
08/06/05 21:53:47 +BskgBlU
つらい事もあることはあるけど、ほかと比べたらずっとマシだと思っている俺がいる。
242:login:Penguin
08/06/05 22:19:16 HrX/ifBR
lttngってKernel 2.6.11に当たらないかな?
243:login:Penguin
08/06/05 22:31:37 DWYqtKzD
>>242
そんな古いバージョンを使ってるって事はバニラなやつじゃなくて、ディストリの手が入ったやつなんでしょ。
だとすると、誰にも答えようがないわな
244:login:Penguin
08/06/06 00:46:00 XK6LtEvG
>>243
mvに聞いたらカスタマイズ必要で5000万って言われた
あすこボリ杉なんだよ
245:login:Penguin
08/06/06 05:49:28 pazCXsqF
起動時のUSBデバイスの番号割当ってどういう順番に割り当てられるのでしょうか?
バス番号はPCIのアドレス番号順に割り当てられています。
uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 1
uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus number 2
uhci_hcd 0000:00:1d.2: new USB bus registered, assigned bus number 3
ehci_hcd 0000:00:1d.7: new USB bus registered, assigned bus number 4
2本のUSB-serialアダプタのケーブル(同じメーカーのもの)が指してあるのですが、
バス3のが先に認識されてttyUSB0となりバス1のがttyUSB1を取りました。
Jun 5 16:30:09 localhost kernel: usb 3-1: pl2303 converter now attached to ttyUSB0
Jun 5 16:30:09 localhost kernel: usb 1-2: pl2303 converter now attached to ttyUSB1
数回再起動してみましたが同じ割当でした。4本ほど刺す予定なのですが、この順番は
起動時に一貫している事は保証されているのでしょうか?
246:login:Penguin
08/06/07 16:48:16 j2f9qOKz
udev使え
247:login:Penguin
08/06/08 00:31:10 x24x5jC+
>>244
mv って Monta Vista ?
248:login:Penguin
08/06/08 10:57:56 Z92/HsfC
>>247
そそVistaってつくのは糞だと確信した
249:login:Penguin
08/06/08 12:33:56 7MPo+476
カーネルの更新についてなんですが。
カーネルが2.6.23.1-42.fc8の時にfedora8をインストールして使っていて、
それ以来カーネルのアップデートがある度に、更新しているんですが
その度にネットワークに繋がらなくなります。
eth0の検出で失敗します。カーネルのバグとの情報を得たので、
いつかeth0をすんなり検出してくれるカーネルが登場するのを待っていましたが
ついにfedora9になってしまった・・・。
なにか対策はないでしょうか?
250:login:Penguin
08/06/08 20:51:46 eh7VZfqh
>>248
LTTngは機種依存部がx86_64とPowerPCしかないから、組み込みへのPortingに5000万はあながち無茶じゃないよ。
と、いうか、組み込みで使うって事はチューニング用途でしょ?
チューニング用途で、OprofileよりLTTngがうれしいときってどんな時よ?
251:login:Penguin
08/06/09 02:55:08 EML7d3Il
>>250
5000万て一体何人月突っ込むつもりなんだよ。高杉
252:login:Penguin
08/06/09 10:47:25 jCFOqXC+
>>249
BTS
253:login:Penguin
08/06/09 11:25:44 /SXlcbGK
>>251
どうせ実作業はUSになるんだからそんなものだろう。
254:login:Penguin
08/06/09 22:39:54 1EI7zjeO
>>251
一部うごかねーけど
ARMとsh4向けのパッチとかgoogle探せばあるよ
Oprofileでdlopenした関数のプロファイル取れないと
思うけど、それは認識違い?
LTTだと一応、ユーザ空間用のPrint文差し込めばLttでトレースできるんだけど
255:login:Penguin
08/06/09 23:49:57 HtDaA/1r
>>254
PCレジスタの値まではとれるんだから、そのあとの関数名への変換ぐらい自分でスクリプト書いて変換するだけじゃん
256:login:Penguin
08/06/13 10:57:07 IQJsBbwz
Linuxメモリ管理の最先端を探る
URLリンク(www.atmarkit.co.jp)
>この問題に対する解答として、Rik van RielとLee SchermerhornがVM pageout scalability
>improvementsパッチセットを提案しています(実は筆者も開発に参加していて、筆者のパッチも
>たくさんマージされているので思い入れがあります)。
さらりと入れる自分の宣伝おつw
257:login:Penguin
08/06/13 11:48:13 oIBTYhsQ
妬み見苦しいよ。
258:login:Penguin
08/06/15 11:20:59 C0/eukrT
ブログの方も宣伝だらけだから見てこいや
と宣伝
259:login:Penguin
08/06/15 11:38:55 pDKI+CRl
LKMLの方でも頑張ってますな。
Reviewd-byなんて誰も見てねえと思うが。
260:login:Penguin
08/06/16 06:10:52 uRV+lgAf
なんか返事が来てるな。
LKMLは用がありゃ書くよ。まあCc:に入れるのがほとんどだが。
Reviewed-byはどうなのかなあ。
俺のは基本的にレビュープロセス無いから、数日つうのが早いのかわからん。
261:login:Penguin
08/06/16 21:28:26 RHGi8EoO
ありゃ。260はメンテナな人だったのか。こりゃ失礼。
でも、まじな話、メモリ系はレビューワ足りてないのよ。他のサブシステムは知らないけど。
262:login:Penguin
08/06/25 09:12:34 9vyaiMuz
ユーザモードlinuxをデバッグでステップ実行させたいんですが
コンパイルするとき最適化を無効にするフラグはないのでしょうか?
CFLAG="-g -o0"を使うとコンパイルエラーになってしまいます。
263:login:Penguin
08/06/25 11:24:49 IWfMljif
>>262
そりゃ"-o0"じゃエラーになると思うわけで。
CFLAGS="-O0"でないかい。
-gは
- "Kernel debugging"
-- "Compile the kernel with debug info"
あたりで付けられたような気がする。
264:login:Penguin
08/06/26 01:48:13 7PHMbUoJ
Radeon4850のドライバないのですけど
ATIのバカ野郎はいつになったら用意してくれるの?
265:login:Penguin
08/06/26 01:56:10 puTQv5Y3
AMDのバカ野郎にそんな能力も度量もあるわけないじゃん
266:login:Penguin
08/06/26 02:33:29 7PHMbUoJ
なんかAMDの中の奴から
Radeon HDのドライバ7月に出したいなとか
ふざけた事抜かしためーるきたぞ
267:login:Penguin
08/06/26 02:42:22 cPzCsgf+
>>266
やっぱAMDのチップの中に人が入っていたのか。
268:login:Penguin
08/06/26 15:28:02 Ro55yivA
>>267
Alan Coxじゃあるまいし…
269:login:Penguin
08/06/27 15:50:27 WbZP37Nk
カーネル2.4は、1プロセスが複数の共有メモリを同時にアタッチしたり
デタッチしたりするようなことを許してますか?
270:login:Penguin
08/06/27 17:06:33 uVrhM3+j
>>269
あたりまえだろ。逆にそれができない処理系があれば知りたい。
271:login:Penguin
08/06/28 01:41:10 Ardj2/d2
>>270
VRAMを共有メモリに使ったりとかそういう窓を使うタイプのものなら同時に複数にアクセスは出来ないと思うけど・・・
・・・そんなの想定しても無意味だわな
272:login:Penguin
08/07/02 04:05:52 NSfnd646
kernel 2.6.25 にしてからだと思うのだが、
ThinkPadのバッテリーのもちが2〜3倍長くなった気がする。
気のせいかな?
273:login:Penguin
08/07/02 10:17:15 wqHSE5St
linux-staging for 2.6.26-rc8
URLリンク(www.ussg.iu.edu)
>- added the vmware drivers vmmon, vmnet and vmblock as they are now
>released under the GPLv2.
274:login:Penguin
08/07/02 11:38:08 rVAS6V4+
ちょいと質問させてくださいな。
2.6のI/O schedulerに関してなんですが、elevator=as(anticipatory)とCFQ (Complete Fair Queuing)だと
ワークステーション用途だと、どっちがパフォーマンスがいいんでしょうか?
使用CPUはXeonのHTという、ちょい昔のやつです。
現在使用のkernelは2.6.25です。
275:login:Penguin
08/07/02 17:59:56 wqHSE5St
6月版 新機能のバトルフィールド「linux-staging」登場
URLリンク(www.atmarkit.co.jp)
>編集部注:これまでKernel Watchを執筆してきた上川氏の都合により、今回より筆者が小崎資広氏に交代しました
これからは月中頃までには更新して欲しい。
276:login:Penguin
08/07/02 18:00:45 wqHSE5St
すまん。ちゃんと6月のネタも入ってるのね。
277:login:Penguin
08/07/02 23:50:50 ScqFkWO0
kernel-2.6.25-14 と 2.6.25.6 って、後者の方が新しいようですが、
バージョン番号の見方がいまいち良く判りません。
一見すると前者の方が新しいかと思ってしまいました。
どこかにルール書いてませんか?
278:login:Penguin
08/07/03 00:01:20 cZICuyXJ
どっちが新しいかなんてChangeLog確認しないとわからんよ
つまりはそういうこと
279:login:Penguin
08/07/03 00:15:20 PugiDyT3
>>277
-14の部分は鶏の付けた番号でしょう。 鶏のバージョンとkernel.orgのバージョンの関係は鶏ごとに違う。
280:login:Penguin
08/07/03 03:05:10 C7NAhXm4
>>277
kernel.orgがつけるのは「-」がつかないですよ。その「-」以降の数字や記述は
自分でカーネルコンパイルする時に好きなように変えられます。
281:login:Penguin
08/07/03 15:03:46 9f9qogJL
その例だと
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 25
EXTRAVERSION = -14
EXTRAVERSIONはディストリがリリースする時や自分で
再構築を行う際に区別するために付けるみたい
1回目のビルドの時はEXTRAVERSION = -1のようにし
2回目以降は数字を増やしていく。
※/usr/src/linux/Makefileを参照
282:login:Penguin
08/07/03 15:06:46 WE7VZ3/6
patch-2.6.25.8-9.bz2より
diff --git a/Makefile b/Makefile
index e18e2b8..3eb71f8 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 25
-EXTRAVERSION = .8
+EXTRAVERSION = .9
NAME = Funky Weasel is Jiggy wit it
# *DOCUMENTATION*
283:login:Penguin
08/07/03 16:52:56 3k+Z4nm5
>>277
「Linuxカーネルのバージョン番号には、どのような意味がありますか?」でググれw
本家の物は4桁目も立派なバージョンみたいなもんで必ずカンマの後に数字。
だから最近はEXTRAVERSIONをいじらないでconfigメニューの中のCONFIG_LOCALVERSION
を使うみたい。
-14なんてのはディストリなどが本家の2.6.25か2.6.25.*の中のどれかをベースに手を加えた
物でしょう。自分はubuntuですがパッケージの2.6.24-19.34のソースを落としてきて
解凍した中のMakefileを見るとEXTRAVERSION = .3になってました。
MakefileのEXTRAVERSIONが-14などに書き換えられていたら、自分でChangeLog探して
違いを見つけるか、-14を作った所(ディストリなど)の情報を見るしかないでしょう。
284:login:Penguin
08/07/08 20:06:59 QuCHxxE7
ReiserFSの作者、殺人容疑を認める - Linuxにも影響?
URLリンク(journal.mycom.co.jp)
285:login:Penguin
08/07/08 22:42:27 Zi4Qj3F3
やっぱりLinuxは犯罪者が作ったOSだったんだな
次はリーナスだな
286:login:Penguin
08/07/08 23:56:58 e8AasjIi
てか俺、カーネルビルドする時のオプションでReiserとかXFSとか、あとアップルのファイル
システムとか他のOSで使うような奴も全部「N」ですお。。。素人にext3意外使えるわけ
ないだろww
287:login:Penguin
08/07/09 04:24:48 CqWmH1YR
素人は自分でカーネル再構築したりしませぬ。
288:login:Penguin
08/07/09 21:24:35 8Biz/qDL
struct uccontextのuc_mcontextの内容
詳しく書いてるmanないですかね
困った
289:login:Penguin
08/07/12 00:28:47 j34+JRvX
X86_64と32じゃnmの中身全然ちがくね?
290:login:Penguin
08/07/12 06:16:21 GQ8+wDe/
>>288
arch/hoge/kernel/signal.c
manは見たことねえな。
291:login:Penguin
08/07/12 10:24:18 j34+JRvX
dladdr1()は64bitだと正常に動作しない?
saddr取れるのにsnameにゴミが入る
たじけて
292:login:Penguin
08/07/15 05:49:25 3OvyCYWI
49441874 7月 13 22:43 linux-2.6.26.tar.bz2
どうですか?
293:login:Penguin
08/07/15 13:04:59 WbmPTWSR
今回はアップデートらくちんだったわ
294:login:Penguin
08/07/16 11:15:08 rsgG64I0
ついにppc,ppc64のpowerpcへの統合が完了して
ppcがツリーから消されるね。
この教訓があったからこそ(s390,s390x),(i386,x86_64),(sh,sh64)
の統合が素早く行ったとも言える。
sparcは統合するつもりはないのかな。
295:login:Penguin
08/07/17 06:05:09 qTAclHCx
こういう人はどこにでもいるんですねえ。
URLリンク(lkml.org)
296:login:Penguin
08/07/17 06:44:13 RLzhCg75
アンドレア モルトン
Linux is Big in Japan ― Our Symposium
URLリンク(www.linux-foundation.org)
>Andrew Morton informed the audience that about 15% of
>current kernel contributions are now coming from Japan -
>something we hope the Japan Symposiums have contributed to.
297:login:Penguin
08/07/17 07:29:59 vshFLwap
>>295
返信がなかなかいいな。
298:login:Penguin
08/07/17 08:02:08 MCLhFFKh
>>295
とりあえず、ResiserFSに期待
299:login:Penguin
08/07/25 10:50:31 uxEkChTf
ついにv850がlinusのツリーから消えた
300:login:Penguin
08/07/25 13:37:31 O9qD5Jvu
Adrian Bunkの執念ですか。
さっき大量にakpm→linusがあったからそろそろrc1リリースですかねえ。
今回はパッチでかそうだなあ。
301:login:Penguin
08/07/26 09:54:12 JY6BMyiI
>>299
NEC系アーキテクチャはこれで全滅?
チップはよくてもソフトが・・・
302:login:Penguin
08/07/26 11:02:17 AUwTPIjw
mipsにVR対応コードがある。
NEC系と言うには微妙だが。
V850の環境があればついでで面倒みてもいいんだが、
簡単に手に入りそうにないしなあ。
303:login:Penguin
08/07/27 12:59:43 YMv2Qddl
カーネルをチューンするのは一般的なのでしょうか。
そうだたとして、ディスクのアクセスが激しい場合のチューンのこつなどを教えてください。
現在、2.6.18-92.el5 (CentOS 5.2) を使っています。
304:login:Penguin
08/07/27 14:24:56 4DP5d6XY
>>303
今ではそう一般的ではない気がする。ディスクのアクセスが激しい時はむしろ
hdparm とかプログラムを見直すとかメモリ増やして tmpfs とかのがいいよう
な。
305:login:Penguin
08/07/27 14:43:53 9qgW7xWw
いまどきはハード的な対処が主流だけど
I/Oのスケジューラ(?)やFSのパラメータ変えたりも意味あるとおもうよ。
306:login:Penguin
08/07/27 14:50:00 ciCRtkgX
( ゚д゚)…
307:login:Penguin
08/07/27 15:15:45 pD6FktfU
(゚д゚ )
308:login:Penguin
08/07/27 15:42:04 8CuL3uuZ
>>303
カーネルのI/Oスケジューラ絡みだと
- elvtune コマンドでパラメータの調整
- ブート時に elevator オプションでI/Oスケジューラの選択
とか?
ファイルシステムに関しては、マウントのオプションでジャーナリングの挙動を変えたり、
フォーマット時にブロックサイズを変更したり。
あと、I/Oが多いが必ずしも高速に処理する必要はないプロセスに対してはioniceとか。
とりあえずトピックだけ列挙してみました。
309:login:Penguin
08/07/30 10:31:52 m+IWeNBQ
AMD用のマイクロコードローダーのパッチが来てるようだけど
肝心のマイクロコードはどこからダウンできるのだ?
310:login:Penguin
08/07/30 13:26:01 YYInvdod
そらAMDが配るんでないかい。
必要になることが無けりゃいいが。
311:login:Penguin
08/07/31 20:57:01 0zpcPWn+
Linux Kernel Watch 7月版
ファームウェアの置き場所を巡ってフレームウォー
URLリンク(www.atmarkit.co.jp)
Linux 2.6.26リリース
ドライバ用ファームウェアの置き場所はどこ?
今年のカーネルサミットの議題は
CGroupに2つの拡張提案
「AVXをどう使えばいいの?」「使うべきじゃない」
312:login:Penguin
08/08/01 04:54:01 gu1YuAnu
URLリンク(www.makelinux.net)
313:login:Penguin
08/08/02 21:55:57 XXRpUgP1
include/asm-$(arch)/ から
$(arch)/include/へ大移動中
314:login:Penguin
08/08/03 02:04:11 cQ/ip75L
LFSで自分でカーネルから手ビルドした場合
ルールを遵守しないものを作って勝手にばらまくのは
問題ないでしょうか?(ソースは全部公開します。)
315:login:Penguin
08/08/03 13:16:52 cQ/ip75L
-CFLAGS-.o = $(filter %frame-pointer,$(+cflags)) -g0 -O99 -fomit-frame-pointer -D__USE_STRING_INLINES
-CFLAGS-.os += -g0 -O99 -fomit-frame-pointer -D__USE_STRING_INLINES
+CFLAGS-.o = $(filter %frame-pointer,$(+cflags)) -g0 -Os -fomit-frame-pointer -D__USE_STRING_INLINES
+CFLAGS-.os += -g0
これって変更する価値と意味ある?
316:login:Penguin
08/08/03 22:50:54 fngCwuOZ
>>315
意味はまったくないな。常識的に考えて。
せいぜいタグジャンプをつかってない連中がgrepしやすくなるぐらいか。
317:login:Penguin
08/08/04 08:47:08 xqFlDpKR
>>314
ルールが意味不明
318:login:Penguin
08/08/04 12:35:58 s3cZBMva
新しいデバッガだそうな。
URLリンク(lkml.org)
そういやkdbなんてのもあったねえ。
319:login:Penguin
08/08/04 21:37:30 1PTbb8R4
>>318
例によって、今日は4/1じゃないよ。来年の4月まで待ちたまえって言われてたな。
てゆーか、kgdbとくらべて能力的なメリットがよく分からないし、コードがコーディング規約違反しまくりなので
絶対入らない
320:login:Penguin
08/08/04 23:19:00 s3cZBMva
>>319
ホスト側にgdbがいらない
くらいしかないと思う。
321:login:Penguin
08/08/06 04:10:09 XGhgieD/
>>318
なんか頑張ってるようで。
ライセンスがGPLv3つうのは笑わしてもらったが。
322:login:Penguin
08/08/09 23:59:36 tDLp/wdz
entry.S: Assembler messages:
entry.S:183: Error: bad or irreducible absolute expressionってなんですかいな?
sh4-linux -D__ASSEMBLY__ -D__KERNEL__ -I/usr/src/linux-sh-2.4.26/include -ml -Wa,-dsp -g -m4-nofput -c -o -entry. entory.S
助けて欲しいな?
323:login:Penguin
08/08/10 02:11:09 IWznwuo0
とりあえず、メッセージを *正確* にコピペしてくれ。
324:login:Penguin
08/08/10 03:28:39 o/f5WFwj
entry.S: Error: bad or irreducible absolute expression の検索結果約 81 件中 1 - 10 件目 (0.67 秒)
325:login:Penguin
08/08/20 00:15:00 j9armpjQ
>>322
>助けて欲しいな?
どっちなんだよw
とりあえず、entry.Sの183行めにアセンブラが評価不可能な式が書いてあると言っている。
アセンブリ文ののエラーなら、何か未定義なシンボルとか無効な演算とかそんなじゃ
ないかと思う。一般的には。
ただ、こんなこと聞いてくるくらいだから、このファイル自体は自分でいじってないよね?
開発のレポジトリからビルドすら怪しいコードをチェックアウトしたりしてないよね?
sh4-linuxと書いてあるが、正しい開発環境の上でやってるか大丈夫かね。
326:login:Penguin
08/08/20 00:56:43 WYcGGchd
PSQL利用時に毎秒sys_read250万回実行されています。
これは多いのでしょうか少ないのでしょうか
327:login:Penguin
08/08/26 22:39:53 AEx/2Y4k
SYSCALL : sys_read; RIP : 0x00000000
これのRIPって何の略語ですか?
調べてもまったくもって意味不明です
328:login:Penguin
08/08/26 22:49:14 J7dVd4Ba
レジスタ名だろJK
329:login:Penguin
08/08/26 23:05:41 AEx/2Y4k
>>328
それだとEIPが入ると思うのですが?
違いますか?
330:login:Penguin
08/08/26 23:35:50 7D7FVgy7
>>329
8086の時はEIPじゃなくてIPだったろ?
331:login:Penguin
08/08/26 23:38:26 AEx/2Y4k
>>330
それは現在のLinuxでは確認できないので除外するでしょ
332:login:Penguin
08/08/27 00:55:54 q+XRKgyf
rest in peaceだろ女子高生的に考えて・・・
333:login:Penguin
08/08/27 01:10:16 sxN0R88h
>>332
なぜに女子高生?
あれって元はラテン語のrequiescat in paceらしいな
334:login:Penguin
08/08/27 03:37:42 +0y2to0a
>>329
x86_64なら違います。
と思ったが、ビット数が少ないのが気になる。sys_read と言ってるのに
RIPが0x0というのも謎だし。
335:login:Penguin
08/08/27 09:59:40 ADWmGtFY
URLリンク(www.x86-64.org)
URLリンク(www.tortall.net)
RIP Relative Addressing モード?
>The RIP relative branch instructions are still encoded equally to 32bit mode.
命令量削減の為にあるのかな。
というかそのデータはどこから出てきたのか分からない事に何を示しているのかも分からない。
336:login:Penguin
08/08/27 11:31:46 a1d8mOfT
>>335
まったく関係ない。
なんにしても
・CPU
・kernel version
・前後のメッセージ
あたりがわかんないと調べようがないな。
"SYSCALL :" or "SYSCALL:"で調べても何も引っかからん。
337:login:Penguin
08/08/27 21:44:39 xCf2Mq7H
%ip:16bits
%eip:32bits
%rip:64bits
338:login:Penguin
08/08/28 12:27:59 Iqmmut8G
RIP相対アドレッシングだと
差分を32bitで指定するから、それが0なのかな?
339:login:Penguin
08/09/01 20:31:22 4ZcdB5yW
8月版 ブート時間の短縮にかけるカーネルアスリートたち
URLリンク(www.atmarkit.co.jp)
ブート高速化フレームワークの開発始まる
ファイルディスクリプタリークを防げ!
SSDドライブの耐用年数を増やすセクタ破棄リクエスト
340:login:Penguin
08/09/01 22:00:57 HTSczQe1
新規カーネルでのブートに失敗した場合(一定時間以上経っても
特定の処理に達しない場合)に、別途設定してあるバックアップ用カーネルでブートする
という仕組みを作ってくれないだろうか。
そういう仕組みがあれば、特別なハードウエアをつけなくてもリモートでサーバの
カーネルを更新したりできて良いのだが。
341:login:Penguin
08/09/01 23:10:55 7AMQmhBz
ブートに失敗したことを検出するのに、なんかしらのハードウェアがいるんじゃないか?
特別かどうか知らんけど、たとえば watchdog とか。
342:login:Penguin
08/09/02 00:05:38 WQ81mRri
書き換え禁止のカーネルの上で起動するカーネル?
それ、なんてXen?
343:login:Penguin
08/09/02 00:07:01 A9GZuVfD
>>341
素人考えですまんけど・・・いやなんでもない
344:login:Penguin
08/09/02 02:43:23 xIov+WO6
>>340
PXE+IPMI使えばできるな。
通常時:
1. 起動
2. 起動後に生存パケットを飛ばす
3. IPMIでの再起動抑制
異常時:
1. 起動途中でハング
2. 生存パケットがTFTP後5分以内に来ないので異常フラグ立てる
3. PXEboot kernel切り替えて、IPMI reboot
345:login:Penguin
08/09/03 08:48:18 PqzS2fRg
カーネルの再構築について教えてください。
make
make modules
make install
make modules_install
ってやると、vmlinuzではなくvmlinuxが/boot以下にインストールされるのですが、
vmlinuzをインストールするにはどうすればいいのでしょうか?
346:login:Penguin
08/09/03 09:00:03 K6gHOMeJ
/usr/src/linux/arch/x86とか/boot/らへんからコピーすればいいんじゃ
347:login:Penguin
08/09/03 09:06:07 8eE8j8dz
>>345
make bzImage
348:login:Penguin
08/09/21 07:49:35 tIiHJUK6
あげ
349:login:Penguin
08/09/22 18:58:26 6c0BmpVj
来年のカーネルサミットは日本か。
今頃今年のレポート読んでる...
350:login:Penguin
08/09/23 00:25:05 vRpAjbh1
よしROM専で参加するぉ
351:login:Penguin
08/09/23 20:19:18 V98m4vkm
なにーRuntime Operating Module専門家なんですか? それはやられたなあ。
352:login:Penguin
08/09/24 03:07:25 cunswTFS
real otaku mode
353:login:Penguin
08/09/29 15:27:31 pgUibaHn
挫折おめ
354:login:Penguin
08/10/04 19:13:09 ARyH8epO
Linux カーネルの設計図って無い?
ソースコードなんか読んでられないんだけど。
355:login:Penguin
08/10/04 19:35:03 Y45eK7HG
読むんじゃない 感じるんだ
356:login:Penguin
08/10/04 19:47:23 j49+44c9
設計図って無い?→×
ちょとソースパーサと視覚化ソフト作ってくる→〇
357:login:Penguin
08/10/04 20:04:46 LpOCBcaG
>>354
こんなものならある
URLリンク(www.makelinux.net)
358:login:Penguin
08/10/04 22:26:40 iB4BYTU4
>>354
URLリンク(www.amazon.co.jp)カーネル2-6解読室-高橋浩和/dp/479733826
これなんて評価高いんじゃない?日本人の書いた本だし。
359:login:Penguin
08/10/05 07:21:33 wEm3ZArW
>>357
方向性は、いい感じ。でもちょっと詳細すぎる。
ソースコードを単純にリバースしただけ?
アーキテクチャの骨になるモジュールと依存関係が分かると入りやすいんだけどなぁ。
>>358
うーむ。ちょっと本屋にいってみまふ。
それ系だと、一応以下は読んでます。
URLリンク(itpro.nikkeibp.co.jp)
360:login:Penguin
08/10/05 11:59:47 m45hbmuL
>>354
そもそも何がしたいわけ?
単に知りたいだけなら、本でもWebでもいろいろあるが、
将来的に開発に関わっていきたいなら、実装なんてころころ変わるから、
ソース読めるようになるしかないよ。
361:login:Penguin
08/10/05 12:08:55 uwUu94dy
Linuxソース読めないって
スキル低すぎじゃないか?
あんなに綺麗なソースめったにないけどな
362:login:Penguin
08/10/05 14:21:21 GQ3uGN5q
>>361
363:login:Penguin
08/10/05 20:14:06 NUUgsXnG
ソースは綺麗だがロックレスにするための最適化とかは難解じゃね
364:login:Penguin
08/10/05 20:56:21 uwUu94dy
>>363
切り出せるじゃん綺麗なら依存関係
解るってことだろ?ただ理由付けて、労力惜しんで真に理解できない
だけだろ?
解らないなら、古くて遅いコード読んで流れだけ
把握すればいいし、そこからgitで0.0.1ずつ上げて
いって差分追えばいい
楽して理解なんてできねーから
365:login:Penguin
08/10/05 20:58:41 cqzNA6tu
どうやってロックをなくすの?
366:login:Penguin
08/10/05 21:00:23 uwUu94dy
>>365
CAS命令とメモリバリアで作る
367:login:Penguin
08/10/05 21:32:24 0B2Mm6OC
変な改行してるけど、縦読みってわけでもないんだな。
368:login:Penguin
08/10/05 22:38:41 CybLamJ3
CAS使ったって結局スピンループして待つわけだからロックと同じじゃなくて?
369:login:Penguin
08/10/05 23:00:11 uwUu94dy
>>368
java.util.concurrentのアルゴリズム見てこい
あとlock-freeで検索して論文見ろ
お前ら本当に不勉強のバカばっかりw
370:login:Penguin
08/10/05 23:53:10 /M4S/JQ3
知る者が知らざるを者を罵倒する。これは日本人(固有)の得意技。
371:login:Penguin
08/10/05 23:58:58 gTPno2yy
>>370
UNIX (Linux) 関連に多い気がス・・・
あと、利権産業(土建屋 etc)ねw
372:login:Penguin
08/10/06 00:53:38 15WiK00o
教えてもらったものが教えたものをひがむ
これこそ日本人固有の得意技
373:login:Penguin
08/10/06 02:31:46 4qydW303
>>369,372
来なくていいから。お前の中身など何の価値もない。
374:login:Penguin
08/10/06 04:07:11 Oq5Gl4Q6
>>368
locklessといっても実はいろいろあってな。
代表例をあげていく。
まず、時刻更新時のxtime更新処理。これは速度云々以前にタイマ割り込みの延長で走る更新処理が遅れちゃいけないという制約がある。時計狂いに直結するから。
だから、普通のread/write lockでは不十分で、「どれだけreaderがいても、writerは(待ったりスピンしたりせずに)即座に書き込めるロックが必要。
逆にreaderはwriterがごにょごにょやってるときは、多少処理が遅くなってもかまわない。だって時刻更新なんてせいぜい1000Hzでしかおきないレアイベントなんだもの。大局的には誤差。
詳細は、seqlockとかシーケンスロックでググってくれ。
次はRCU。
ようするに更新するときに、古いデータが載っているメモリを直接書き換えるのではなく新しいデータが載ったコピーを作る。
んで、read側は古いデータをちゃんと読めるのでロックいらず、write側がread側が知り得ない新しいコピーに書き込めるのでロックいらず。
というアイデア。
なんと、read側はCASもメモリバリアもいらないという最強アルゴリズムなのでlinuxでは適用箇所がガンガン広がっている。
もちろん、read側がクリティカルセクション抜けたときに(ガベコレ的な感覚で)あとから古いデータの削除処理が走るので、適用箇所によってはキャッシュヒット率の関係で性能が下がるときがまれにある。
まあ、readが大多数のデータ構造にしかつかうなってこった。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5392日前に更新/214 KB
担当:undef