タグ

kernelに関するkamipoのブックマーク (62)

  • 第278回 Ubuntuカーネルとの付き合い方:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

    コンピューター上でUbuntuを動かすために必要になるLinuxカーネルは、Ubuntuにおいてもっとも重要なコンポーネントです。今回はそんなLinuxカーネルとUbuntuの関係について説明します。 Ubuntuカーネルのことを知ろう Ubuntuは「Linuxカーネル」を使ったLinuxディストリビューションの1つです。どのようなマシンのうえでUbuntuが動作するか、どのようなデバイスをUbuntuで使えるかは、ひとえにカーネルに懸かっているために、Ubuntuではサポート期間やサポート対象、導入する新機能などを考慮したうえで、LinuxカーネルにUbuntu独自の変更を加えてリリースしています。 たとえば、現在Ubuntuで使われているカーネルのバージョンは、次のコマンドで確認できます。 $ uname -rv 3.8.0-25-generic #37-Ubuntu SMP Thu

    第278回 Ubuntuカーネルとの付き合い方:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
  • クラッシュダンプからカーネルメッセージを取り出すツール「crashdmesg」を作りました : DSAS開発者の部屋

    Linuxカーネルには、カーネルパニック時にkexecを使ってダンプ取得用のカーネル(セカンドカーネル)を起動する仕組みがあります。 このセカンドカーネルは予めリザーブされたメモリ内で起動するため、クラッシュしたカーネルが処理していたメモリの内容はそのまま残っていて、procファイルシステム経由でクラッシュダンプを取得する事ができます。 このDSASブログでも、以前「Linuxでクラッシュダンプを採取(1) 〜 kexec + kdump を使ってみる 〜」と言うタイトルでクラッシュダンプの取得方法をご紹介しました。 「crashdmesg」は、kexec+kdumpで保存したクラッシュダンプから、カーネルメッセージの内容を取り出すツールです。 デバッガと比べてはるかに軽量なため、セカンドカーネル上で直接/proc/vmcoreからカーネルメッセージを取り出すこともできます。 最近のクラッ

    クラッシュダンプからカーネルメッセージを取り出すツール「crashdmesg」を作りました : DSAS開発者の部屋
  • Linuxでクラッシュダンプを採取(1) 〜 kexec + kdump を使ってみる 〜 : DSAS開発者の部屋

    専用パーティーションを切らずにシステムを構築してしまったがために、クラッシュダンプを採取できなくて苦しんでいる人(って私ですが)にとってはとっても魅力的な仕組みがカーネルに取り込まれたみたいです。導入手順も Documentation/kdump/kdump.txt に非常にわかりやすく書かれているので、比較的スムーズに組み込むことができそうな予感がします。 kexec の機能を利用して別のカーネル(kdumpを組み込んだもの)を起動すると、/proc/vmcore から元のカーネルのクラッシュダンプを採取できるというものなので、通常利用するカーネル(以下、ファーストカーネル)と、パニック時に動き始めるカーネル(以下、セカンドカーネル)の二つのカーネルを作る必要があります。 以下、kdump.txt より抜粋 A) First kernel or regular kernel: -----

    Linuxでクラッシュダンプを採取(1) 〜 kexec + kdump を使ってみる 〜 : DSAS開発者の部屋
  • sched_clock() overflow after 208.5 days in Linux Kernel

    えーっと、久しぶりに Linux Kernel にダメダメなバグが発見されて、よりにもよってうちの製品も影響を受けたので、ここに詳細を書くことにした。 つーか。新しい Kernel を使うなら皆で使おうよ。なんだよその「1つだけ」影響を受けて残りは「影響も受けないぐらい古い」ってのは… 概要 大雑把に 208.5日連続運転した Linux Kernel が突如として reboot する。 実機でなおかつ Time Stamp Counter を内包している必要があるので、Pentium4以降のプロセッサ(が、それはようするに今ある Intel 系CPU全部)か、その互換CPUである必要がある。32bit モード、64bit モードの区別はない。 逆に VMware や Xen など、仮想マシン上で動いている kernel に影響はない。これはそもそもバグを内包したルーチンを、仮想マシンで動

  • Linux の close は fsync 相当を調べる - naoyaのはてなダイアリー

    Linuxのcloseは暗にfsyncするから、ここであげられている 100000回繰り返し open 8K write close というパターンだとfsyncコストが見えちゃうので良くないんじゃないかな とのことで、そうなのか! と思ったので例によって深追いしてみました。 まず fsync(2) の実装は fs/sync.c にあります。 asmlinkage long sys_fsync(unsigned int fd) { return __do_fsync(fd, 0); } static long __do_fsync(unsigned int fd, int datasync) { struct file *file; int ret = -EBADF; file = fget(fd); if (file) { ret = do_fsync(file, datasync);

    Linux の close は fsync 相当を調べる - naoyaのはてなダイアリー
  • カーネルスレッドとは - Linuxの備忘録とか・・・(目次へ)

    カーネルスレッドで代表的ななものとして、プロセスIDが1のすべての親となるinitです。これはカーネル起動時作成されます。他にkeventd(ワークキュ)、kswapd(メモリー回収)、ksoftoirqd(ソフト割り込み)等があり、必要に応じて作成されたりいたします。 カーネルスレッドはカーネルの補助的な処理を行うものだと推測できても、ユーザプロセスとどう違うのでしょうか? 実はカーネルとしては、スケージューリングにおいてユーザプロセスと同じ物だということです。カーネルスレッドの作成は、ユーザプロセス作成と同じようにCLONE_VM属性でdo_fork関数で作成されます。すなわちカーネルとして1プロセスディスクリプターとして、処理しているに過ぎません。そうすることで、スケージューリングの中で、カーネルスレッドが動作することになり、全体的なパフォーマンスの効率化がはかられるわけです。 CL

  • スラブアロケータ - Linuxカーネルメモ

    linux-2.6.16.1でのメモ。 1. 概要 Buddy Systemでは物理ページ単位のメモリの確保になるため、あるメモリオブジェクト(例えばプロセスのtask_structとか)を動的に確保するのには向いていない。スラブアロケータではBuddy Systemとの間に入り、メモリオブジェクトの確保/解放機能を提供する。 スラブアロケータでは、あらかじめメモリオブジェクトに対してキャッシュ(kmem_cache)を作っておき、そのキャッシュからメモリオブジェクトを取得する形をとる。キャッシュは足りなくなれば自動的に確保されるようになっている。 Slabから取得するバッファはBuddy Systemから取得しており、以下の特徴がある。 仮想アドレスに対して物理ページが割り当て済み(アクセスしてPageFaultになることはない)物理的に連続ページ 2. スラブアロケータの特長スラブアロ

  • Charming Python: Functional programming in Python, Part 3

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    Charming Python: Functional programming in Python, Part 3
  • マルチコア時代のロードアベレージの見方 - naoyaのはてなダイアリー

    ちょっと煽り気味のタイトルですが、CPU がマルチコアになり 2個、4個と増えていく中 Linux の負荷の指針になるロードアベレージをどう読むべきか、という話です。気になったところを少し調べたのでそのまとめを。 http://d.hatena.ne.jp/naoya/20070222/1172116665 でも書いたとおり、Linux のロードアベレージは「ロードアベレージは過去1分、5分、15分の間の実行待ちプロセス数の平均数 = 実行したくても他のプロセスが実行中で実行できないプロセスが平均で何個ぐらい存在してるか」を示す値です。ボトルネックが CPU、メモリ、ディスク等々どこにあるかは関係なく、仕事の実行までにどれぐらい待たされているかを示す値なので、システムのスループットを計測する指標の入り口になる値です。 このロードアベレージですが、実装を見るとランキュー(待ち行列)に溜まった

    マルチコア時代のロードアベレージの見方 - naoyaのはてなダイアリー
  • ju11net九州体育(科技)有限公司

    ju11net九州体育(科技)有限公司 404 Not Found nginx

  • 2TBを超えろ! ATAディスクの4Kセクタ問題とは?(1/2) - @IT

    3月版 2TBを超えろ! ATAディスクの4Kセクタ問題とは? 小崎資広 2010/4/7 前回書いたsys_membarrier()ですが、なかなかマージされない状態が続いています。だいたい議論も出尽くして後はマージするだけだと思っているのですが、どうもIngoは気に入らないご様子。たぶんオレ専用APIっぷりが美的感覚に合わないのでしょう。いつも「Genericに使えるように」っていいますから。 Compactionパッチは、マージの一番のネックだったkosakiがなかなかレビューしない問題は先月若干進展して、マージする方向で進んでいるみたいです。 さて、今月は久しぶりにハードウェアのお話です。ハードディスクの容量が2TiB(編注:テビバイト、1024GiB)を超えるのと前後して、4KiB(編注:キビバイト、1024bytes)セクタのハードディスクが出回り始めています。これについてハー

  • kernel:Memory Manage(4) OOM Killer - Simple is Beautiful

    空きメモリを確保する仕組みとして"OOM Killer(Out of Memory Killer)"というものがある OOM Killerは、空きメモリが足りない場合に強制的にProcessを終了させて強引に空きメモリを確保する OOM Killerは、空きメモリが確保できないためにシステム全体が停止してしまうことを防止するために用意されている OOM Killerはシステム停止を防止するために必要な機能だが、OOM Killerによる強制終了は大切なProcessを停止させてしまう危険性がある クラスタシステムなどにおいて、クラスタ監視Processが強制停止させられてしまった場合、それが原因となってクラスタの障害が発生してしまう危険性がある kernel2.6.17.1向けにOOM Killerを使用せずにkernel panicを起こさせるパッチが投稿された。これを使用すると、空きメ

    kernel:Memory Manage(4) OOM Killer - Simple is Beautiful
  • RCUの全面書き直しも! 2.6.29は何が変わった?(1/2) - @IT

    4月版 RCUの全面書き直しも! 2.6.29は何が変わった? 小崎資広 2009/5/8 いやあ、文字数の都合で書けませんでしたが、4月最終週はIngoがいい出した「カーネル専用コンパイラを作ろうぜ!」スレッドが大盛り上がり。おバカな話題ほどスレッドが伸びるのは、全世界共通ですね。 それでは予告どおり、今回はカーネル2.6.29についてのよもやま話をお送りいたします。どうぞ。 カーネル2.6.29の主な変更点 ■ランダムシード受け渡し方法の変更によるアプリケーション起動の高速化 最近のgccには、glibcと連携してスタック破壊を検知するSSP(Stack Smashing Protector)という機構が実装されています(-fstack-protectorオプション)。これはスタックに「カナリア値」と呼ばれる特殊な値を埋め込み、関数リターン時に、その値が無変更であることを確認することで

  • エンタープライズ向けに刷新されたカーネル・コア

    カーネル2.6はスケーラビリティの向上を大きな目標として、カーネルの内部仕様に大幅かつ意欲的な変更が加えられている。また、JFSやXFSといったファイルシステムの追加、USAGIやUML(User Mode Linux)の統合、新デバイスのサポートなども行われた。 第1章となる今回は、カーネル2.6の最大の目標であるスケーラビリティの強化に注目して、主に内部仕様を解説する。次回以降では、主にユーザーから見たカーネルの新機能について紹介する予定だ。 マルチプロセッサシステム対応の強化 ■RCU(Read-Copy Update) カーネル2.6では、RCU(Read-Copy Update)と呼ばれる新しい同期機構が追加された。 カーネルには、複数のプロセッサからの同時アクセスからデータ構造を保護するため、スピンロックをはじめとする同期機構が用意されている。しかし、従来の同期機構ではロック/

    エンタープライズ向けに刷新されたカーネル・コア
  • 無視できないフラグメンテーション問題への解答は?(2/2) - @IT

    1月版 無視できないフラグメンテーション問題への解答は? 小崎資広 2010/2/10 ユーザー空間でRCU? membarrier()システムコールとは Mathieu Desnoyersによって、「introduce sys_membarrier(): process-wide memory barrier」と題されたパッチが投稿されました。 sys_membarrier()は、その名のとおり、メモリバリア(注3)を発行するシステムコールです。「メモリバリアぐらいユーザー空間から勝手に発行すればいいじゃないか。システムコールにする必要性がまったくないよ」と思うかもしれませんが、これにはちゃんと理由があります。 ちょっと長くなりますが、まずは背景をば。 MathieuはLTTngの作者として有名で、最近は、LTTng(関連記事)への高速なユーザー空間トレーシング機能の追加に力を入れていま

  • kernel/システムパラメタ - Linux Tips

    _ カーネル システム パラメタの設定 sysctlにより変更することの出来る、カーネル システム パラメタ(の一部)を紹介する。コンパイル無しで行える、カーネル チューニングだ。カーネル システム パラメタは、カーネルのバージョン毎に異なるので、詳しくは、 /usr/src/linux/Documentation/sysctl/README /usr/src/linux/Documentation/networking/ip-sysctl.txt /usr/src/linux/Documentation/filesystems/proc.txt % man 5 proc を参照。また、手元のGentoo Linuxでは、kernel-2.4のものとなっているが、 % man 7 tcp % man 7 ip で、tcp,ip関係のものを見ることが出来る。特にネットワーク関係については、

  • Omicron LinuxKernelDevelopment

    RobertLove の カーネル 2nd Edition 読書メモ. 分厚いじゃないし,割と読みやすそう.RobertLove が書いているということで内容も信頼できそうだし,対象カーネルのバージョンが 2.6.10 と新しい.Linux カーネルのとっかかりにはよいんじゃないかな.Linux (kernel 2.6) はすごいぜというくだりがよく出てくるが,ほんまかいなと思いながら読み進めるのが,ちょうどいいのでは.もちろん実際のコードと突き合わせるの重要. 通勤電車内でしか読む時間がなくて,なかなか進まないので,メモを付けてみる. 名前コメント Sat Aug 13 14:38:34 2005 りょうせい 読了.全体の感想は後でまとめるけど,実際にカーネルをいじってみたいと思う人にとっては,読む価値のあるだと思った.もっと満遍なく詳しく書こうとすると "Understandin

  • malloc The 67th kernel reading party - Google Video

    The 67th kernel reading party - 1:39:31 - Sep 24, 2006 Yokohama Linux Users Group - www.ylug.jp/ ()  Rate: glibc malloc Download video - iPod/PSP |  Embed video Download is starting. Save file to your computer. If the download does not start automatically, right-click this link and choose "Save As". How to get videos onto the iPod or PSP. <embed id="VideoPlayback" src="http://video.google.com/goog

  • mirrors.kernel.org

    Welcome to mirrors.kernel.org, a service of the Linux Kernel Archives. This site contains our archives of mirrors of other sites.

  • DBサーバ向けLinuxチューニングを考える 〜 メモリオーバーコミット編 : DSAS開発者の部屋

    Cでプログラムを書いていて大量のメモリを確保したくなったとき、大抵は mallocを使うと思いますが、その際には戻り値がNULLかどうかを判断してエラー処理に飛ばすと思います。しかし、Linux のメモリ管理サブシステムには「メモリ・オーバーコミット」という機構があり、実装されているメモリ以上の領域を確保できてしまいます。 #include <stdio.h> #include <stdlib.h> int main() { int i; char *p; for(i=0;i<65536;i++){ p = (char *)malloc(65536); if(0 == (long)p){ break; } } printf("SIZE=%dMB\n",i*65536/1024/1024); return(0); } swapoff したメモリ 1G のマシンでこれを実行するとこんな感じにな

    DBサーバ向けLinuxチューニングを考える 〜 メモリオーバーコミット編 : DSAS開発者の部屋