タグ

kernelに関するNnwwwのブックマーク (11)

  • VFSとファイルシステムの基礎技術

    現在のLinuxは、複数のファイルシステムが選択できる。だが、どれを選べばよいのだろうか? ファイルシステムにはそれぞれ特性がある。連載では、基礎技術から各ファイルシステムの特徴、パフォーマンスを検証する。(編集局) カーネル2.4から、Linux格的にエンタープライズを意識したOSとしての機能を備えるようになった。その特徴の1つがファイルシステムの信頼性である。Linuxの場合、当初に実装されたext2からジャーナリングファイルシステムであるext3やReiserFS、そして商用ファイルシステムとして発展してきたJFSやXFSが取り込まれ、複数のファイルシステムが選択できるようになっている。 連載は、これらのファイルシステムの違いを把握し、ファイルシステムを選択するための指針となるような情報を提供する。 ファイルシステムとは 私たちは通常、データの「読み込み」「書き込み」などの操

    VFSとファイルシステムの基礎技術
  • perf, ftraceのしくみ - 睡分不足

    Linuxのトレーサーであるperfやftraceのツールの使い方に関する情報は結構ありますが,構造に関してはあまり見つけられなかったため,ここに簡単に調べたことをまとめようかと思います.(ツールの使い方の説明はあんまりしないです.) この文章はLinux 4.15のソースに基づいています. 全体像 ftrace function trace tracepoint (static event) kprobe (dynamic event) その他のtracer trace-cmd perf PERF_TYPE_HARDWARE, HW_CACHE, RAW PERF_TYPE_SOFTWARE PERF_TYPE_TRACEPOINT PERF_TYPE_BREAKPOINT USDT (SDT Event) perf-tools perf ftrace straceとの比較 その他 pe

    perf, ftraceのしくみ - 睡分不足
  • Background

    The article requires some prerequisite knowledge about Linux kernel memory management subsystem. Recently, while investigating an OOM (out-of-memory) problem, Twitter engineers found that the slab cache was increasing consistently, but the page cache was decreasing consistently. A closer look showed that the highest consumption of the slab cache was the dentry cache, and the dentry caches were cha

    Background
    Nnwww
    Nnwww 2021/05/17
    カーネルデバッグ体験談。活用できたことないけどなるほどカーネルでデバッガ走らせて調査するということもあるのか...
  • Linux Storage Stack Diagram - Thomas-Krenn-Wiki-en

    The Linux Storage Stack Diagram shows the layout of the the Linux storage stack. Downloads Diagram for Linux Kernel 6.9 Linux Storage Stack Diagram v6.9): Linux I/O Stack Diagram v6.2 (20230309): ZIP (includes .drawio and .svg) PDF PNG Changelog: dm-vdo added (Kernel 6.9) ext2 removed (Kernel 6.9, ext2 wird nun so wie ext3 auch durch den ext4 Code unterstützt) bcachefs added (Kernel 6.7) EROFS add

  • How io_uring and eBPF Will Revolutionize Programming in Linux

    Things will never be the same again after the dust settles. And yes, I’m talking about Linux. As I write this, most of the world is in lockdown due to COVID-19. It’s hard to say how things will look when this is over (it will be over, right?), but one thing is for sure: the world is no longer the same. It’s a weird feeling: it’s as if we ended 2019 in one planet and started 2020 in another. While

    How io_uring and eBPF Will Revolutionize Programming in Linux
    Nnwww
    Nnwww 2021/03/02
    基本的にio_uringの説明、ブロックIO -> aio -> io_uringの流れを追いかけていてモチベが分かりやすい。
  • linux-sched-history.pdf - Speaker Deck

    はじめに • Linuxカーネル(以下カーネル)のプロセススケジューラの歴史を振り返る • 対象バージョンは一番最初(0.01)から最新(4.18)まで全部 ◦ <= 2.6.12(*1): 切りのいいバージョンを紹介 ◦ > 2.6.12: 大きな変更が入ったバージョンを適宜紹介 • 用語 ◦ タスク: カーネルのスケジューリング単位。プロセスないしスレッド ◦ LCPU: カーネルがCPUとして認識するもの(物理CPU or コア or スレッド) ◦ Current: LCPU上で現在動作中のタスク 2 *1) git導入後最初の安定版

    linux-sched-history.pdf - Speaker Deck
  • x86_64 Linuxでの仮想アドレス/物理アドレス - 睡分不足

    Linux Device Driver Chapter 15では Linuxで利用されるアドレスを以下の5種類に分類しています. User virtual address Physical address Bus address Kernel logical address Kenerl virtual address User virtual addressはその名の通りユーザプロセスが利用する仮想アドレス, Physical addressは物理アドレス,Bus addressはデバイスが使用するアドレス (アーキテクチャ依存で,Physical addressと同じことも多い)です.残りの Kernel logical addressとKenel virtual addressの違いを理解するためには, Linuxでのメモリマップ(仮想ドレスの使い方)を知る必要があります.これはアー

    x86_64 Linuxでの仮想アドレス/物理アドレス - 睡分不足
  • Linuxカーネルのソースコードを機能とレイヤーで分類して表示してくれる「Linux kernel map」

    Linuxのカーネルは膨大な数のソースコードから成り立っており、どこに何の処理が書いてあるのかぱっと見当をつけるのにはかなりコードを読み込む必要があります。「Interactive map of Linux kernel」はそのソースコードを機能とレイヤーで分類して表示してくれるサイトということで、使い勝手を試してみました。 Interactive map of Linux kernel http://www.makelinux.net/kernel_map/ サイトにアクセスし、ロードが終わると下の画像のように6列6行の表が表示されます。列が機能の分類を表しており、「インターフェース」「システム」「処理」「メモリー」「ストレージ」「ネットワーク」という分類になっています。行はレイヤーを表しており、上からシステムコールなどの「ユーザースペースインターフェース」、「バーチャル」、「ブリッジ」

    Linuxカーネルのソースコードを機能とレイヤーで分類して表示してくれる「Linux kernel map」
  • Linuxカーネルの新機能 XDP (eXpress Data Path) を触ってみる - yunazuno.log

    先日netdev 1.2に参加してみたところ,XDP(eXpress Data Path)の話題で持ち切りといった感じだった. というわけで,XDPについて一通り調べつつ,実際に触ってみた. XDPとは何か? 誤解を恐れずに一言で言うと,「Intel DPDKのような高速パケット処理基盤をLinuxカーネル自身が用意したもの」であると理解している.このスライドでは A programmable, high performance, specialized application, packet processor in the Linux networking data path と言っている. DPDKはユーザランドアプリケーションがNICを直接叩く(=カーネルのネットワークスタックをバイパスする)ことで高速処理を実現している.一方XDPは,カーネル内の最もNICドライバに近い場所でフッ

    Linuxカーネルの新機能 XDP (eXpress Data Path) を触ってみる - yunazuno.log
  • 特定条件下のclone(2)を4倍速くする - 人間とウェブの未来

    とあるサーバで妙にシステムCPUの使用率が高い現象が置きておりました。 そこで、まずはざっくりとperf topでプロファイルをとってみると、以下のようになっていました。 22.38% [kernel] [k] copy_pte_range 18.44% [kernel] [k] zap_pte_range 11.13% [kernel] [k] change_pte_range 3.58% [kernel] [k] page_fault 3.32% [kernel] [k] page_remove_rmap また、各プロセスのstraceを眺めていると、cloneで0.05秒とかなり時間がかかっているようです。これだと単純計算で1コアで秒間20回のcloneでコア100%占有してしまう程度の非常に低速な処理しかできないことになります。 sudo strace -T -o/dev/stdo

    特定条件下のclone(2)を4倍速くする - 人間とウェブの未来
  • process-book

    この文書はなんですか? この文書は*nix系のシステムにおけるプロセスやシグナルなどについて説明することを目的に書かれました。「プロセスとかよくわかってないからちゃんと知りたいな」みたいなひとたちが想定読者です。 書いているあいだは gist で管理されていたのですが、ボリュームが大きくなったので github で管理するように変えました。 目次 導入 プロセスの生成 プロセスとファイル入出力 ファイルディスクリプタ preforkサーバーを作ってみよう ゾンビプロセスと孤児プロセス シグナルとkill プロセスグループとフォアグランドプロセス epub と pdf epub化したもの、pdf化したものが release ディレクトリに入っています。thanks to mitukiii & moznion! ライセンス この 作品 は クリエイティブ・コモンズ 表示 - 継承 3.0 非移

  • 1