Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

eBPFとperfに関するmapk0yのブックマーク (2)

  • bpftraceを使ってバイナリの謎の性能劣化を突き止めろ - Cybozu Inside Out | サイボウズエンジニアのブログ

    サイボウズ社内ではC++で開発している製品があります。 未知のバッファオーバーランなどの脆弱性への対策として、重要なコンポーネントについてはプロダクション環境で利用しているバイナリでも AddressSanitizer を有効にしてビルドしています。 その製品で利用しているコンパイラをgcc5.3.0からgcc7.5.0に更新したところ性能劣化が発生しました。 製品コードとは別の部分が原因のため、根原因の追跡が難しそうです。perf,bpftraceを使って性能劣化を追いかけてみましょう。 記事で利用しているAddressSanitizer, bpftrace, perfコマンドはネット上に良質な記事がありますので、使い方などの解説は今回は省略させていただきます。 gcc7.5.0において、性能劣化が発生する再現コードとして次のようなものを用意しました。 #include <strin

    bpftraceを使ってバイナリの謎の性能劣化を突き止めろ - Cybozu Inside Out | サイボウズエンジニアのブログ
    mapk0y
    mapk0y 2021/10/26
    丁寧に解説してあってわかりやすい。c++ の mangling などの影響だとは思うけど追うのが大変そう
  • bpftraceで2048作ってみた - バニキPの気ままに

    はじめに 去年のアドベントカレンダーでeBPFについていろいろ調べた. その時に,ネコの人に「SystemTapで昔ゲームを作ったことがあるから,BPFでも作れるはずだから作ってみたら」と. ちょうどLT会のネタに困っていたこともあり,作るかとなったので,bpftraceで動作する2048を作りました.(SystenTapで動作する2048もあります) 動作環境 bpftraceの環境構築は公式に書いてあるinstallの手順に従って導入してください. Linux5.3以上である事が必須となっています. Linux5.2以前では,命令数制限でverifierでカーネルにロードされずエラーとなってしまいます. また,プログラム内でwhileを使用しており,whileもLinux5.3以上でないとサポートされてないため(確かこのバージョンで入ったはず...)動作しません. このあたりの環境構築

    bpftraceで2048作ってみた - バニキPの気ままに
  • 1