LeavaTailの日記

LeavaTailの日記

Linuxエンジニアを目指した技術者の備忘録

Linux

Raspberry Pi 4 で USBフラッシュドライブ に Bcachefs を試してみる

背景 目的 実行環境 シングルドライブでの実験 暗号化 圧縮 マルチドライブでの実験 ストライピング レプリケーション キャッシュ 変更履歴 参考文献 背景 Bcachefs は LInuxカーネル 6.7 からサポートされた Copy-On-Write (CoW) のファイルシステムである…

Linuxカーネルのファイルアクセスの処理を追いかける (22) MMC: mmc_rescan

関連記事 Part 1: 環境セットアップ Part 2: System call Interface Part 3: VFS Part 4: ext2 (1) write_iter Part 5: ext2 (2) write_begin Part 6: ext2 (3) get_block Part 7: ext2 (4) write_end Part 8: writeback (1) work Queue Part 9: writeback (…

Linuxカーネルのファイルアクセスの処理を追いかける (21) MMC: mmc_start_host

関連記事 Part 1: 環境セットアップ Part 2: System call Interface Part 3: VFS Part 4: ext2 (1) write_iter Part 5: ext2 (2) write_begin Part 6: ext2 (3) get_block Part 7: ext2 (4) write_end Part 8: writeback (1) work Queue Part 9: writeback (…

Linuxカーネルのファイルアクセスの処理を追いかける (20) PL181: mmci_probe

関連記事 Part 1: 環境セットアップ Part 2: System call Interface Part 3: VFS Part 4: ext2 (1) write_iter Part 5: ext2 (2) write_begin Part 6: ext2 (3) get_block Part 7: ext2 (4) write_end Part 8: writeback (1) work Queue Part 9: writeback (…

Linuxカーネルのファイルアクセスの処理を追いかける (19) MMC: initialization

関連記事 Part 1: 環境セットアップ Part 2: System call Interface Part 3: VFS Part 4: ext2 (1) write_iter Part 5: ext2 (2) write_begin Part 6: ext2 (3) get_block Part 7: ext2 (4) write_end Part 8: writeback (1) work Queue Part 9: writeback (…

Linuxカーネルのファイルアクセスの処理を追いかける (18) block: blk_mq_do_dispatch_sched

関連記事 Part 1: 環境セットアップ Part 2: System call Interface Part 3: VFS Part 4: ext2 (1) write_iter Part 5: ext2 (2) write_begin Part 6: ext2 (3) get_block Part 7: ext2 (4) write_end Part 8: writeback (1) work Queue Part 9: writeback (…

Linuxカーネルのファイルアクセスの処理を追いかける (17) block: blk_mq_run_work_fn

関連記事 Part 1: 環境セットアップ Part 2: System call Interface Part 3: VFS Part 4: ext2 (1) write_iter Part 5: ext2 (2) write_begin Part 6: ext2 (3) get_block Part 7: ext2 (4) write_end Part 8: writeback (1) work Queue Part 9: writeback (…

VFATファイルシステムにおけるファイル名のコード変換

概要 はじめに FATボリュームレイアウト 動作例 Codepageが対応している文字列でファイルを作成する Codepageが対応していない文字列でファイルを作成する システムとは異なるiocharsetでファイルを作成する Codepageが対応している文字列でファイルを検索す…

Linuxカーネルのファイルアクセスの処理を追いかける (16) mq-deadline: dispatch_request

関連記事 Part 1: 環境セットアップ Part 2: System call Interface Part 3: VFS Part 4: ext2 (1) write_iter Part 5: ext2 (2) write_begin Part 6: ext2 (3) get_block Part 7: ext2 (4) write_end Part 8: writeback (1) work Queue Part 9: writeback (…

Linuxカーネルに対して静的解析ツールSparseの実行方法

概要 はじめに 実験環境 インストール 実行方法 実験結果 おわりに 変更履歴 参考文献 概要 本記事では、Ubuntu 22.04でSparseをビルドし、Linux kernel v6.3 に実行する手順を確認した。 はじめに Linuxカーネルは、主にC言語とアセンブリ言語によって記述…

Linuxカーネルのファイルアクセスの処理を追いかける (15) mq-deadline: insert_request

関連記事 Part 1: 環境セットアップ Part 2: System call Interface Part 3: VFS Part 4: ext2 (1) write_iter Part 5: ext2 (2) write_begin Part 6: ext2 (3) get_block Part 7: ext2 (4) write_end Part 8: writeback (1) work Queue Part 9: writeback (…

Linuxカーネルのファイルアクセスの処理を追いかける (14) mq-deadline

関連記事 Part 1: 環境セットアップ Part 2: System call Interface Part 3: VFS Part 4: ext2 (1) write_iter Part 5: ext2 (2) write_begin Part 6: ext2 (3) get_block Part 7: ext2 (4) write_end Part 8: writeback (1) work Queue Part 9: writeback (…

Buildroot で作成した ARM64環境で xfstests を実行する

概要 はじめに 実験環境 aarch64(virt) のNFSroot実行環境を構築する xfstestsのビルドに向けてのセットアップ Buildrootのパッケージビルド設定を新規に追加する Buildrootの設定をアップデートする xfstestsのテスト実行に向けてのセットアップ xfstestsの…

Linuxカーネルのファイルアクセスの処理を追いかける (13) block: blk_mq

関連記事 Part 1: 環境セットアップ Part 2: System call Interface Part 3: VFS Part 4: ext2 (1) write_iter Part 5: ext2 (2) write_begin Part 6: ext2 (3) get_block Part 7: ext2 (4) write_end Part 8: writeback (1) work Queue Part 9: writeback (…

Linuxカーネルのファイルアクセスの処理を追いかける (12) block: submit_bio

関連記事 Part 1: 環境セットアップ Part 2: System call Interface Part 3: VFS Part 4: ext2 (1) write_iter Part 5: ext2 (2) write_begin Part 6: ext2 (3) get_block Part 7: ext2 (4) write_end Part 8: writeback (1) work Queue Part 9: writeback (…

KUnitフレームワークによるLinuxカーネルのテスト実施方法

概要 はじめに 実験環境 準備 コンフィグファイルの生成 カーネルのビルド テスト実行 おわりに 変更履歴 参考文献 概要 本記事では、kunit_toolを使用して、既存のKUnitテストをQEMU(armアーキテクチャ)で実行する手順について確認する。 はじめに KUnitは…

Linuxカーネルのファイルアクセスの処理を追いかける (11) ext2: write_inode

関連記事 Part 1: 環境セットアップ Part 2: System call Interface Part 3: VFS Part 4: ext2 (1) write_iter Part 5: ext2 (2) write_begin Part 6: ext2 (3) get_block Part 7: ext2 (4) write_end Part 8: writeback (1) work Queue Part 9: writeback (…

kcovによるカーネルのソースコードカバレッジの分析

概要 はじめに 実験環境 使用方法 kcovによるコードカバレッジの確認 syzkallerによるコードカバレッジの確認 Go実行環境のインストール buildrootによるrootfsの生成 Linux Kernelのビルド rootfsのカスタマイズ syzkallerのビルド syzkallerを実行する お…

Linuxカーネルのファイルアクセスの処理を追いかける (10) ext2: writepages

関連記事 Part 1: 環境セットアップ Part 2: System call Interface Part 3: VFS Part 4: ext2 (1) write_iter Part 5: ext2 (2) write_begin Part 6: ext2 (3) get_block Part 7: ext2 (4) write_end Part 8: writeback (1) work Queue Part 9: writeback (…

xfstests-bld で ファイルシステムのテストを実行する

概要 はじめに 実験環境 準備 Qemu/kvmのインストール 使用するファイルのダウンロード 仮想マシン用のLinuxカーネルの準備 xfstests-bldのセットアップ xfstests-bldのインストール xfstests-bldの実行 スモークテストの実行 シェルの起動 実施するテストの…

Linuxカーネルのファイルアクセスの処理を追いかける (9) writeback

関連記事 Part 1: 環境セットアップ Part 2: System call Interface Part 3: VFS Part 4: ext2 (1) write_iter Part 5: ext2 (2) write_begin Part 6: ext2 (3) get_block Part 7: ext2 (4) write_end Part 8: writeback (1) work Queue Part 9: writeback (…

Linuxカーネルのファイルアクセスの処理を追いかける (8) work Queue

関連記事 Part 1: 環境セットアップ Part 2: System call Interface Part 3: VFS Part 4: ext2 (1) write_iter Part 5: ext2 (2) write_begin Part 6: ext2 (3) get_block Part 7: ext2 (4) write_end Part 8: writeback (1) work Queue Part 9: writeback (…

Linuxカーネルのファイルアクセスの処理を追いかける (7) write_end

関連記事 Part 1: 環境セットアップ Part 2: System call Interface Part 3: VFS Part 4: ext2 (1) write_iter Part 5: ext2 (2) write_begin Part 6: ext2 (3) get_block Part 7: ext2 (4) write_end Part 8: writeback (1) work Queue Part 9: writeback (…

Linuxカーネルのファイルアクセスの処理を追いかける (6) get_block

関連記事 Part 1: 環境セットアップ Part 2: System call Interface Part 3: VFS Part 4: ext2 (1) write_iter Part 5: ext2 (2) write_begin Part 6: ext2 (3) get_block Part 7: ext2 (4) write_end Part 8: writeback (1) work Queue Part 9: writeback (…

Raspberry Pi 4 Model B (64-bit版 Raspberry Pi OS) で dm-integrity のオーバーヘッドを計測する

概要 はじめに 目的 dm-integrity とは なぜ64-bit版 のOSで試すのか 実行環境 測定方法 性能計測 おわりに 変更履歴 参考 付録 カーネルコンフィグ 環境構築 Device mapperを使用しない場合 dm-verityを使用する場合 dm-integrityのみ使用する場合 dm-integ…

Linuxカーネルのファイルアクセスの処理を追いかける (5) write_begin

関連記事 Part 1: 環境セットアップ Part 2: System call Interface Part 3: VFS Part 4: ext2 (1) write_iter Part 5: ext2 (2) write_begin Part 6: ext2 (3) get_block Part 7: ext2 (4) write_end Part 8: writeback (1) work Queue Part 9: writeback (…

Raspberry Pi 4 Model B で fs-verity と dm-verity のオーバーヘッドを計測する

概要 はじめに fs-verity とは dm-verity とは 実行環境 実験 fs-verityの準備 dm-verityの準備 性能計測 fs-verityの計測 dm-verityの計測 おわりに 付録: fs-verity有効化でファイルを更新してみる 付録: dm-verityで署名機能を利用してみる 変更履歴 参考…

Linuxカーネルのファイルアクセスの処理を追いかける (4) write_iter

関連記事 Part 1: 環境セットアップ Part 2: System call Interface Part 3: VFS Part 4: ext2 (1) write_iter Part 5: ext2 (2) write_begin Part 6: ext2 (3) get_block Part 7: ext2 (4) write_end Part 8: writeback (1) work Queue Part 9: writeback (…

Linuxカーネルのファイルアクセスの処理を追いかける (3) VFS

関連記事 Part 1: 環境セットアップ Part 2: System call Interface Part 3: VFS Part 4: ext2 (1) write_iter Part 5: ext2 (2) write_begin Part 6: ext2 (3) get_block Part 7: ext2 (4) write_end Part 8: writeback (1) work Queue Part 9: writeback (…

Linuxカーネルのファイルアクセスの処理を追いかける (2) System call

関連記事 Part 1: 環境セットアップ Part 2: System call Interface Part 3: VFS Part 4: ext2 (1) write_iter Part 5: ext2 (2) write_begin Part 6: ext2 (3) get_block Part 7: ext2 (4) write_end Part 8: writeback (1) work Queue Part 9: writeback (…