From n.nakai @ sdy.co.jp Tue Oct 6 00:47:09 2009 From: n.nakai @ sdy.co.jp (=?UTF-8?B?5Lit5bGF5oay5LmF?=) Date: Tue, 06 Oct 2009 00:47:09 +0900 Subject: [Ultramonkey-l7-develop 541] Re: =?utf-8?b?RGFpdmTjgajjga7oqbHjgZflkIjjgYTjgavjgaTjgYTjgaY=?= In-Reply-To: <4AC9960F.5000000@iwao.net> References: <4AC62ADA.8010808@sdy.co.jp> <4AC942B3.8060706@sdy.co.jp> <4AC9960F.5000000@iwao.net> Message-ID: <4ACA14FD.2010800@sdy.co.jp> 中居です。 お疲れ様でございます。 #資料が進まない罠 > アプリケーションがMQを意識して複数スレッドでacceptしていれば自動で > 処理CPUが動かないように処理してくれるし、シングルスレッドな > アプリでCPUが違っていたり、MQ意識していないアプリなら > これまでどおり別CPUで処理しようとして遅くなるだけです。 > > ・・・というふうに作るつもりだと思われますw > 自分でもそう作ります。 > # 本気出した世界中のハカー達の開発スピードには到底 > # 追いつけませんでした(ノД`) このあたりはAccept(2)がブロックすると言う概念に縛られていましたね… ただ、これまで通り別CPUにはならないのではないか?とも思います。 acceptを発行するCPUに対してNICがIRQを上げると言うことは、 シングルスレッドならMQの意味なしになりますよね? #全部同じCPUで処理されるから 逆に、マルチスレッドでaccept(2)したFDを別のスレッドで処理する場合には CPUが分かれていれば遅くなる…と。 NICかドライバがアプリの事を考えてIRQを上げてくれるような作りになるのかと 思います。 #結局最終的にはHW(orDriver)がユーザー空間のThreadの動作CPUまで面倒見てく れるって感じになるんですね。 >> このあたりは順次変更されていくかと思いますが、 >> シングルスレッドの場合には影響が少ないので、 >> 「対応出来るものだけ速くなる」といった感じでしょうか。 > カーネル開発者側としては、「アプリ開発者が対応したければすれば」って > 感じになるかとw > CELFでもディスカッションで出てましたが、「システムコールとかの > 使い方みたいなドキュメントが欲しい」って感じですかね。 > > API仕様書だけでなく、こうすると速くなる!とか、こうすると駄目駄目だ! > なんてシステムコールの使い方がわかるような資料が欲しいって > 要望が出てました。 API仕様書よりも、直接開発者とディスカッション出来る場所があれば何よりも 詳細な仕様が手に入るチャンスですよね。 それはアドバンテージになるかと。 >> また、DirectedAcceptは絶対CPUをMaskしないのか?と言う疑問もあります。 >> と、言うのもGoogleが開発しているRPSはCPUMaskと言う設定が/procに出ています。 >> 一つのCPUを占有したいようなシステムの場合、そのCPUに割り込みがあがるのは >> やっかいなことなのでMaskして割り込みを外したい場合が存在するかもしれません。 >> その場合にはアプリ側で割り込まれないCPUに対してthreadを用意するのはメモ >> リの無駄になりますから、事前に割り込みのMaskされるCPUは(/procでもかまわ >> ないので)通知してほしいかと。 > > maskとかはあってもいいかもですね。 > > Direct FlowやDirect Acceptに対応していないカード、ドライバだとまた > アプリの作りに影響はするんですが、そこはカーネル側でDirect Acceptを > ソフト的にエミュレートしたほうがいい気がします。 エミュレートを考察してみると…、 例えば、MQぢゃないカードが入っているかどうか?かた始まれば、 まず第一にMQのON/OFFは必要かとおもいます。 #コードをスイッチする必要がありますから。 あと、OSがどこまでサポートしているか判定する基準がほしいですよね。 うーん、なんか考えればいっぱい出てきそうです。 どうぞよろしくお願いします。 -- _____________________________________________ 中居 憲久[Norihisa NAKAI] n.nakai @ sdy.co.jp 株式会社SDY tel:047-401-7210/fax:047-401-7207