タグ

ブックマーク / nishidy.hatenablog.com (2)

  • アンアラインメントデータアクセスについて - Tech random memoranda

    メモリにデータを格納する際、通常はアラインメントに沿って展開される。ワード単位以上のデータを格納する場合、その開始アドレスがワード単位の整数倍になっていないと、メモリフェッチが余分に発生してスループットが落ちるか、アラインメント違反によってエラーが発生するか、アクセスしたデータが異常となり期待していない挙動を引き起こす。 x86では、アラインメントに沿っていないアドレスにアクセスする場合、メモリフェッチが余分に発生するが、アラインメント違反は起こらない。ARM/Linuxでは、アラインメント違反が発生するが、/proc/cpu/alignmentに設定されている値に従って結果として発生する挙動が変わる。 0 例外を無視 1 例外をdmesgに出力 2 例外を捕捉して正常にアクセスする 3 1+2 4 例外を受理してバスエラーを起こす 5 1+4 c.f. Linux Kernel Docu

    アンアラインメントデータアクセスについて - Tech random memoranda
    iww
    iww 2024/05/10
    /proc/cpu/alignment
  • ファイルシステム(ext2/ext3/ext4)の基礎まとめ - Tech random memoranda

    ext2 正常にアンマウントが実行されなかった場合には、パーティション全体のメタデータと実データの整合性をfsckによって確認する必要がある ブロック構造 - ブロックサイズは1KB,2KB,4KBのいずれか スーパーブロックには全体のi-node数など、グループデスクリプタにはそのブロックグループのi-node数など、i-nodeにはファイルのメタデータとデータブロックのアドレスなど、が記録されている スーパーブロックはバックアップされており、mkfs.ext2 -nでバックアップされたブロックを確認することができ、mkfs.ext2 -bでそのブロックを指定することで復旧できる 間接ブロック参照 - ext2のi-nodeにはデータが保存されているブロック番号を格納するサイズ15のテーブルがあり、そのうち#0〜#11は直接ブロック参照(ブロック番号を格納する)、#12は1段間接ブロック

    iww
    iww 2018/08/08
    『kjournaldの書き込み間隔はデフォルトで5秒』
  • 1