タグ

kernelに関するtyruのブックマーク (76)

  • 革命の日々! CFSのnice値について

    某所で話題に上がったので軽くまとめてみる 以下のようなテストプログラムを走らせてみる。nice値5とnice値10のスレッドが ビジーループを何回回すことができるか競争するというプログラムである struct thread_param { int prio; long counter; }; #define barrier() __asm__ __volatile__("": : :"memory") void* loop(void* _param) { struct thread_param *param = _param; setpriority(PRIO_PROCESS, 0, param->prio); usleep(1000); for(;;) { param->counter++; barrier(); } return NULL; } int main() { pthread

    tyru
    tyru 2015/05/04
    「カーネル内部で優先度1違う毎に1.25倍のボーナスがついているので、1.25^5≒3」「nice値が5変わるごとに3倍CPU時間が変わる」
  • マルチスレッドのコンテキスト切り替えに伴うコスト - naoyaのはてなダイアリー

    また Linux カーネルの話です。 Linux では fork によるマルチプロセスと、pthread によるマルチスレッドでの並行処理を比較した場合、後者の方がコストが低く高速と言われます。「スレッドはメモリ空間を共有するので、マルチプロセスとは異なりコンテキストスイッチ時にメモリ空間の切り替えを省略できる。切り替えに伴うオーバーヘッドが少ない。」というのが FAQ の答えかと思います。 が「オーバーヘッドが少ない」と一言にいわれても具体的にどういうことなのかがイメージできません。そこで Linux のスレッド周りの実装を見て見ようじゃないか、というのが今回のテーマです。 3分でわかる(?) マルチプロセスとマルチスレッド まずはうんちく。マルチプロセスとマルチスレッドの違いの図。以前に社内で勉強会をしたときに作った資料にちょうど良いのがあったので掲載します。Pthreadsプログラミ

    マルチスレッドのコンテキスト切り替えに伴うコスト - naoyaのはてなダイアリー
    tyru
    tyru 2015/03/03
    clone()システムコールおもしろい
  • DKMS – My Project

    DKMS (Dynamic Kernel Module Support) マシンにインストールされている個々のカーネル (バージョン/リリース) ごとに、カーネルモジュールパッケージをビルドして用意するのではなく、自動的にモジュールをインストールして配置・管理するための仕組み。 Dell の DKMS プロジェクトページ 参考資料 Kernel Korner - Exploring Dynamic Kernel Module Support (DKMS) (LinuxJournal?, Sept 2003) Ottawa Linux Symposium Paper (PDF, July 2004) 現時点での最新バージョンは 2.0.21.1 Vine Linux 的には、現在の kernel-module-* のスタイルから、この dkms-* へと移行する予定。 ただし、ビルドに長時間

  • CentOS への FUSE の導入と DKMS - masugata_kの日記

    ちょっと unionfs が欲しくなったので yum search したところ、rpmforge から fuse-unionfs パッケージが提供されていたので yum install。FUSE を使うのは今回が初めてなので、備忘的にメモ。 インストールしたところ、そのものズバリの unionfs というコマンドが導入されたので早速実行してみると、「fuse モジュールがないので modprobe しろ」みたいなエラーが発生。「modprobe って、なんか久しぶりに聞いたなぁ」と思いつつ、 # modprobe fuse が、「そんなモジュールねーよ」的なつれない返事。確かに、rpm q fuse -l とか見てみても、それらしきものは皆無。 「そういうのは依存関係に入れといてよぉ」と思いつつ yum search fuse すると、どうやら dkms-fuse パッケージがそれっぽい。

    CentOS への FUSE の導入と DKMS - masugata_kの日記
  • Kernel panic during build · Issue #2960 · moby/moby

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    Kernel panic during build · Issue #2960 · moby/moby
    tyru
    tyru 2014/08/21
    docker build時のカーネルパニック、俺も経験あるなー
  • Linus Torvalds、 GCC 4.9.0のコード生成にブチ切れる

    Phoronixで知ったが、Linus TorvaldsがGCC 4.9.0のコード生成にブチ切れている。 問題はLinuxカーネルのload_balance()がランダムにパニックを起こすというもので、その原因は、報告者の使っているコンパイラーであるGCC 4.9.0のコード生成がおかしかったという話だ。 Linus様は御自ら生成されたコードを読み給い、平生と変わらぬ調子で物事の道理を示された。 Linux-Kernel Archive: Re: Random panic in load_balance() with 3.16-rc From: Linus Torvalds Date: Thu Jul 24 2014 - 14:47:25 EST On Wed, Jul 23, 2014 at 6:43 PM, Michel DÃnzer <michel@xxxxxxxxxxx> wro

  • 4.2.5. ネットワークのパラメーター

    tyru
    tyru 2014/04/15
    BOOTIF=eth0 で複数NICの場合でもダイアログ出なくなって無事完全preseedで自動化できるかな?
  • Linus様がSystemdにぶちきれる

    systemdは、/proc/cmdlineをパースして、もし、その中に"debug"という文字列を発見した場合、大量の冗長なデバッグメッセージをdmsegに出力する。これは様々な問題を引き起こす。まず、"debug"というあまりに一般的すぎる文字列に勝手に反応してしまうことがひとつ。dmseg、すなわちカーネルのリングバッファーをsystemdの冗長なデバッグメッセージだけで溢れ返させてしまうことがひとつ。そして、なぜかLinuxカーネルのブートに失敗してしまうことがひとつ。 Bug 76935 – Do not parse "debug" command line parameter カーネルコマンドラインに"debug"を与えると、systemdによりパースされる。適当なassertに引っかかると、こんな風にぶっ放される。 [ 150.308000] systemd-journald

    tyru
    tyru 2014/04/03
    なんだこれ、systemdのメンテナひどいな
  • 読み取り権限がなく実行権限だけのファイルが実行できるのはなぜ? - カーネルのソースを読む - - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    きっかけはこのツイート。 基礎的なことなんだろうけど理解できてないこと。 読み取り権限のない実行権限だけのファイルってどういう扱いになるんだろう。— ゑぬぽい改@電探が出(ん)たん? (@NPoi) March 27, 2014 実際にやってみるとわかるけど、実行権限だけついてるファイルは実行可能です。でも、「読み込めないのに実行できる」というのは直感に反するような気もしますね。だって、実行するためにはプログラムをメモリに読み込む必要がありますから!ではなぜ実行権限だけのファイルが実行できるのか、その仕組みを解説します。 実行とはなにか、どういう仕組みなのか Linux において実行とは「forkしてexecする」です(そのへんの詳しい話は プロセスさん を読もう!)。 fork も exec もシステムコール(正確には execve がシステムコールで exec はそのフロントエンドだけ

    読み取り権限がなく実行権限だけのファイルが実行できるのはなぜ? - カーネルのソースを読む - - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    tyru
    tyru 2014/03/28
    「execシステムコールはファイルの実行権限だけをチェックして、読み込み権限はチェックしないから」
  • 新208.5日問題 - Systems with Intel® Xeon® Processor E5 hung after upgrade of Red Hat Enterprise Linux 6

    Linux の連続稼働時間が 208.5 日を過ぎた段階で突如 Kernel Panic を引き起こすという過激な挙動で2011年の年の瀬に話題となった "旧208.5日問題" ですが、あれから二年が経った今、Linux Kernel 内の bug と Intel Xeon CPU の bug の合わせ技により再度類似の不具合が発生することが分かっています。 旧 208.5 日問題の発生原理に関しては以下の blog が参考になります。 okkyの銀河制圧奇譚 : sched_clock() overflow after 208.5 days in Linux Kernel 追記(2014/1/4) 新208.5日問題の簡易チェックツールを作成しました。よろしければお使い下さい。 tsc_checker - 新208.5日問題簡易チェックツール また、Linux Kernel における時間

    tyru
    tyru 2013/12/25
    「しかし、時を同じくして、Intel Xeon Processor E5 Family は以下の不具合を抱えていました。本来リセットされるはずの TSC の値が、 Warm Reset (通常の再起動)時に初期化されないという不具合です」
  • LinuxのTCP SYNの再送間隔の初期値が3秒から1秒に変更されていた - 元RX-7乗りの適当な日々

    ということに、(今更?)気付いたお話です。 HAを組んだ際のVIPの切り替えテストをやっているときに、高負荷時とかは切り替えに7秒ぴったりかかるケースとかがあって、7秒って何の数字だろうと疑問を持ちました。 OSは、CentOS 6.4(2.6.32-358.23.2.el6.x86_64)です。 TCP SYNの再送間隔が、1...2...4...秒になっている で、tcpdumpを眺めていると以下のようなシーケンスです。 11:50:35.689301 IP client-host.8957 > server-host.http: Flags [S], seq 1616681830, win 14600, options [mss 1460,sackOK,TS val 889880946 ecr 0,nop,wscale 7], length 0 11:50:36.688503 IP

    LinuxのTCP SYNの再送間隔の初期値が3秒から1秒に変更されていた - 元RX-7乗りの適当な日々
  • kernelイメージから設定情報を取り出す

    CONFIG_IKCONFIG make menuconfigでいうと、 General setup → Kernel .config support がそれ。 Kconfigはinit/Kconfig。 これを有効にするとkernel設定の内容がkernelイメージに含まれるようになる。 CONFIG_IKCONFIG_PROC make menuconfigでいうと、 General setup → Enable access to .config through /proc/config.gz がそれ。前項を有効にしないと選択できない。 Kconfigはinit/Kconfig。 これを有効にすると/proc/config.gzで稼働中のkernel設定が見られるようになる。 無事、新しいkernelで起動したら早速試してみましょ。 稼働中のkernel設定を取得する /proc/c

    tyru
    tyru 2013/05/19
    /proc/config.gz、extract-ikconfig、binoffset
  • Google Domains Hosted Site

    tyru
    tyru 2013/05/19
    kernel-package
  • Linux 3.9 Kernel To Support Google's Goldfish - Phoronix Forums

    tyru
    tyru 2013/04/24
    なるほど、Google Goldfishって何かと思ったらandroid関連の何かか / Q. "I'm confused what this means? Is this something that will make Android app developers lives better on Linux?" A. "No, basically it just makes it easier for Google to maintain android."
  • 2013年4月23日 Debian 7.0は5月初旬、Linux 3.9リリースは4月第4週に | gihyo.jp

    Linux Daily Topics 2013年4月23日Debian 7.0は5月初旬、Linux 3.9リリースは4月第4週に Debian 7.0 Ubuntuをはじめ、数多くのLinuxディストリビューションのアップストリームOSとして強い影響力をもつ世界最大のLinuxプロジェクトDebian GNU/Linux。Ubuntuと異なり、そのリリース時期は明確に提示されていないが、ここにきてようやく、待望の新バージョンである「Debian GNU/Linux 7.0 "Wheezy"」のリリースが決定したようだ。 DebianリリースチームのNeil McGovern氏のポストによれば、Debian 7.0のリリース日は5月4日、もしくは5日をターゲットにしているとのこと。ほぼ準備は整っているようで、朗報が待たれるところだ。 なお、DebianベースのUbuntu 13.04(開発

    2013年4月23日 Debian 7.0は5月初旬、Linux 3.9リリースは4月第4週に | gihyo.jp
    tyru
    tyru 2013/04/23
    やっとwheezyくるか / Google Goldfishって何かと思ったらandroid関連の何からしい→ http://phoronix.com/forums/showthread.php?77916-Linux-3-9-Kernel-To-Support-Google-s-Goldfish
  • リーナス・トーバルズ、セキュアブート鍵をカーネルに含めることを一蹴、曰く「おめーら、フェラ大会じゃねーんだぞ」

    リーナス・トーバルズ、セキュアブート鍵をカーネルに含めることを一蹴、曰く「おめーら、フェラ大会じゃねーんだぞ」 まず、Red HatのDavid Howellsが、マイクロソフトによって署名されたセキュアブート鍵をカーネルに含めてくれるよう、MLで要請した。 ようリーナス。 このパッチセットをpullしてくんね? セキュアブートモードで動くカーネルに、鍵を動的に追加する機能。鍵をロードするには、新しい鍵はすでに持っていて、信頼されている鍵で署名されている必要がある。この「すでに持っている」ところの鍵は、カーネルに組み込まれているものや、UEFIデータベースにあるものや、あるいは暗号ハードウェアのものが含まれる。 で、"keyctl add"は署名されたX.509認証を受け付けるのだけど、マイクロソフトの署名サービスは、EFI PEバイナリしか署名してくれないんだ。 LKML: David

    tyru
    tyru 2013/02/28
    さすがや
  • 2012年12月28日 Linus怒髪天!─カーネルメンテナーに投げつけた連発F*CK、そのワケは…? | gihyo.jp

    Linux Daily Topics 2012年12月28日Linus怒髪天!─カーネルメンテナーに投げつけた連発F*CK、そのワケは…? SHUT THE FUCK UP! だまりやがれ、この野郎! お前何年カーネルメンテナーやってんだよ!! ─⁠─我らがLinus Torvaldsは怒りのボルテージが上がると、相手が誰であろうとF*CKという言葉のつぶてを容赦なく投げつける。だが、今回のLinusの怒りようは尋常ではない。同じF*CKで相手を罵倒するにしても、NVIDIAに中指立てたとき、あるいは米大統領選の最中のロムニー氏を小馬鹿にしたときに比べて、その怒りの度合いははるかに大きい。そしてだからこそ、Linuxユーザは改めて彼を強く尊敬することになる。 まずは英語が得意ではない方でも、以下のリンクを開いてざっと目を通してみてほしい。Linusの怒りのほどがひしひしと伝わってくるはずだ

    2012年12月28日 Linus怒髪天!─カーネルメンテナーに投げつけた連発F*CK、そのワケは…? | gihyo.jp
  • 2012年12月14日 センチメンタルになるかって? いい厄介払いだよ─Linus、カーネルからi386関連コードを削除 | gihyo.jp

    Linux Daily Topics 2012年12月14日センチメンタルになるかって? いい厄介払いだよ─Linus、カーネルからi386関連コードを削除 あまり問題がないと思っていたら土壇場でカーネルスワップデーモン(ksapd)の問題で四苦八苦し、ようやく12月10日(米国時間)にリリースしたLinux 3.7。最大の注目点はARMアーキテクチャ関連の大幅な改善で、64ビットARMやARMマルチプラットフォームのサポートが行われている。そのほかBtrfsのアップデートやNFC v4.1の正式サポートなどもあり、派手な話題は少ないものの、地道に進化していてる印象だ。続くLinux 3.8のマージウィンドウもさっそくオープンしており、年内は12月24日までプルリクエストを受け付けるようだ。 カーネルが3.7、そして3.8へと進化しようとしているその横で、一世を風靡したひとつのアーキテクチ

    2012年12月14日 センチメンタルになるかって? いい厄介払いだよ─Linus、カーネルからi386関連コードを削除 | gihyo.jp
  • Linux 3.7リリース、目玉はARMアーキテクチャサポートの強化 | OSDN Magazine

    Linux Torvalds氏が12月10日、Linuxカーネル3.7をリリースした。64ビット版ARMのサポートや、ハードウェアが異なるARMシステムでも同一のカーネルでブートが可能になるなど、ARM関連機能の強化などが大きな特徴となる。そのほか、SMB 2.0のサポートやファイルシステムBtrfsなども引き続き強化されている。 10月初めに公開されたカーネル3.6以来、約2か月ぶりのリリースとなったLinuxカーネル3.7では、ARM関連の「マルチプラットフォーム」対応が特徴となる。これまでARMハードウェアはそれぞれにカスタマイズされたカーネルを必要としいてたが、バージョンでは単一のカーネルで異なるハードウェアのサポートが実現された。また、64ビット版ARMプロセッサ(ARM v8)にも対応した。64ビット版ARMでは32ビット版ARMのコードも実行できるが、64ビット版では命令セ

    Linux 3.7リリース、目玉はARMアーキテクチャサポートの強化 | OSDN Magazine
  • Linux KernelのLinked Listの実装が面白い件 - 愛と勇気と缶ビール

    最近、Robert Love先生のを暇な時にダラーと読んでいたりするわけですが、それの中にLinux Kernel内部で使われているLinked Listの実装が書いてあって面白かったので共有。 まず、Linked Listの一個一個のエントリを表すstructを定義します。 struct list_head { struct list_head *next, *prev; }; いやいやいやいや。いかにC力の低い僕でも流石にこれはあきません。騙されませんよ。前後のエントリへのポインタは確かにあるけれども、これにはデータを指すためのポインタがないじゃないの。おじいちゃんまたデータ忘れてきちゃったの?いやあねえ。 おじいちゃんは言った。「それはお前の短見というものじゃ。このLinked Listは以下のコードのようにデータ構造に埋め込んで使うものなんじゃよ。」そしてそれは正しかった。 st

    Linux KernelのLinked Listの実装が面白い件 - 愛と勇気と缶ビール
    tyru
    tyru 2012/12/12
    なるほど。すげー