並び順

ブックマーク数

期間指定

  • から
  • まで

41 - 80 件 / 125件

新着順 人気順

BPFの検索結果41 - 80 件 / 125件

  • BPFの歩き方 ‐ バイナリの"カッコよさ"に触れてみる

    本記事は、TechFeed Experts Night#19 〜 達人に聞く、Linuxカーネルコードの歩き方のセッション書き起こし記事になります。 イベントページのタイムテーブルから、その他のセッションに関する記事もお読み頂けますので、一度アクセスしてみてください。 本セッションの登壇者 セッション動画 では「BPFの歩き方」と題して発表させていただきます。 株式会社ミラティブでインフラエンジニアをしている近藤といいます。仕事では日々Goを書きながらミドルウェアのログやiostatと向き合っている感じです。今日、ほかの皆さんは本当にちゃんとカーネルソースコードの読み方を解説されていましたが、私はほぼカーネルのコードを読まないというか、基本的には最後の手段にしているので、今日はソースコードの読み方ではなく、別のものの読み方の話をします。

      BPFの歩き方 ‐ バイナリの"カッコよさ"に触れてみる
    • How Netflix uses eBPF flow logs at scale for network insight

      By Alok Tiagi, Hariharan Ananthakrishnan, Ivan Porto Carrero and Keerti Lakshminarayan Netflix has developed a network observability sidecar called Flow Exporter that uses eBPF tracepoints to capture TCP flows at near real time. At much less than 1% of CPU and memory on the instance, this highly performant sidecar provides flow data at scale for network insight. ChallengesThe cloud network infrast

        How Netflix uses eBPF flow logs at scale for network insight
      • LinuxのBPFで何ができるのか? BPFの「プログラムタイプ」とは

        Linuxにおける利用が急速に増えている「Berkeley Packet Filter(BPF)」について、基礎から応用まで幅広く紹介する連載「Berkeley Packet Filter(BPF)入門」。前回までは、BPFの基本やBPFのプログラムの作成方法を説明しました。今回から、「LinuxのBPFで何ができるのか」について詳しく見ていきます。 なお本稿では、Linux 5.3のソースコードを参照しています。 BPFでできること BPFプログラム実行の流れをおさらいしましょう。 ユーザーはBPFプログラムを作成し、システムコールを利用してそれをLinuxカーネル内に登録します(図の【1】)。そうして登録されたBPFプログラムは、対応するイベントが発生すると、Linuxの中で引数が1つ、戻り値も1つの関数として実行されます(図の【2】)。BPFプログラムは実行中にカーネル内のヘルパー関

          LinuxのBPFで何ができるのか? BPFの「プログラムタイプ」とは
        • 第692回 sysfsやbpftoolを用いたeBPFの活用 | gihyo.jp

          第688回と第690回では、カーネルのトレーシングツールとして注目されているeBPFを活用するためのツールとしてBCCを紹介しました。しかしながら、BCCだけがeBPFを扱えるツールというわけではありません。今回はツールなしに利用できるsysfsや、よりユーザーフレンドリーなトレーシングツールであるbpftoolを紹介します。 Python版BCCの問題点 これまで紹介していたBPF Compiler Collection(BCC)のツールはいずれもフロントエンドとしてPythonを使っていました。つまり利用者はまずPythonスクリプトを起動し、その中でeBPFのオブジェクトをコンパイルし、ロードすることでようやくトレースが始まっていたのです。 実行環境でBPFオブジェクトをビルドする必要があるこの方法にはいくつかの問題点が存在します。 実行環境にコンパイラをインストールする必要がある

            第692回 sysfsやbpftoolを用いたeBPFの活用 | gihyo.jp
          • BCC(BPF Compiler Collection) for Ruby

            BCCをRubyから使えるようにした話 @ Kernel/VM探検隊online #1 https://connpass.com/event/175388/ demo: https://www.youtube.com/watch?v=xNUN9vdgASI

              BCC(BPF Compiler Collection) for Ruby
            • Part 1: Debugging Go in prod using eBPF | Pixie Labs Blog

              This is the first in a series of posts describing how we can debug applications in production using eBPF, without recompilation/redeployment. This post describes how to use gobpf and uprobes to build a function argument tracer for Go applications. This technique is also extendable to other compiled languages such as C++, Rust, etc. The next sets of posts in this series will discuss using eBPF for

              • 「おいしくてつよくなる」eBPFのはじめかた/Learn eBPF

                Concentrated Isolation for Container Networks Toward Application-aware Sandbox Tailoring / UCC-21

                  「おいしくてつよくなる」eBPFのはじめかた/Learn eBPF
                • IETFでeBPFの標準化の議論 - ASnoKaze blog

                  先月行われたIETF 115において、eBPFの一部ドキュメントをIETFからRFCとして出すか?という議論が行われました。 まだ議論の段階で結論は出ていないが、簡単にメモとして残しておく。 なお、僕自身はKernel, eBPF方面に明るいわけではない... eBPF サイドミーティング IETFでは会期中に特定トピックについて議論するサイドミーティングが行われます。IETF 115において「eBPF standardization side meeting」が開催されました。 eBPF Foundationのほうからは、Dave Thaler氏らを中心にeBPF Steering Committeeから数名と、IETF参加者がサイドミーティングに出席したようです。 概要 eBPF Foundation は、eBPF クロスプラットフォーム ドキュメントをどこで公開するかについて検討して

                    IETFでeBPFの標準化の議論 - ASnoKaze blog
                  • GitHub - oracle/bpftune: bpftune uses BPF to auto-tune Linux systems

                    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                      GitHub - oracle/bpftune: bpftune uses BPF to auto-tune Linux systems
                    • eBPF and Kubernetes: Little Helper Minions for Scaling Microservices - @kanatakita's blog

                      KubeCon + CloudNativeCon Europe 2020 2日目 のセッションである eBPF and Kubernetes: Little Helper Minions for Scaling Microservices についてです。 スライド 以下のような内容でした。 eBPF についての初学者向けな説明 eBPF の歴史 eBPF の Kubernetes CNI 実装である Cilium について ※ 時系列を雑に日本語で起こしましたが知らないことばかりで都度調べながらの作業でした。 結局ほとんどスライドのままな気がしますが、それでも他の記事以上に誤りが多い気がするので間違っている箇所があったら優しく指摘してください・・笑 Challenges from OS kernel side 前半は eBPF を Linux に入れるまでの話?正直良くわからなかった・・

                        eBPF and Kubernetes: Little Helper Minions for Scaling Microservices - @kanatakita's blog
                      • Sysdig

                        このブログでは、eBPFプログラムの作成プロセスに焦点を当てています。 eBPFプログラムは、システムコールデータをインターセプトするためのコードを段階的に構築することによって、実際の例に基づいて紹介されています。 eBPFのメモリアクセス、eBPFヘルパー、可変メモリアクセス、eBPFマップなど、eBPFプログラムを作成する際に知っておくべき重要な概念が説明されています。 また、eBPFプログラムを作成する際のベストプラクティスや、eBPFベリファイアによる制限についても触れられています。 全体として、このブログはeBPFプログラムの基本的な構造と動作原理について理解するための入門書として位置づけられています。 詳細はこちら Sysdigに関するお問い合わせはこちらから 最近の投稿 カテゴリー アーカイブ

                          Sysdig
                        • Rubyアソシエーション 開発助成金2019 の応募内容を公開します - ローファイ日記

                          この記事はCfP Advent Calendar 2019の9日目です! adventar.org 1日勘違いしていました! カンファレンスではないですが「Rubyアソシエーション 開発助成金2019」への応募内容をここで公開します。って、していいものなのでしょうか...「アウトプットを期待」とのことだったのできっと大丈夫! www.ruby.or.jp 現在、YARV開発者の笹田耕一さんをメンターに迎えて、RubyでLinuxの高機能トレス技術 eBPF のライブラリである BCC を使えるようにすべく移植実装と、+アルファの考え中です。それが RbBCC プロジェクトです。 github.com 将来は iovisor プロジェクトに寄贈したいと考えてもいるんですが、まずは完成度を上げねばという感じです...。 で、このRubyアソシエーション 開発助成、毎年なかなか募集に苦労している

                            Rubyアソシエーション 開発助成金2019 の応募内容を公開します - ローファイ日記
                          • RustでBPF CO-RE - とりあえずビルドしてみるの巻 - ローファイ日記

                            2020年は色々やったんですが、不甲斐なさも残りました。2021年も頑張ります(1行で去年の総括と今年の抱負)。 で、RustとBPF CO-RE、2つのsota(2020年末に覚えた言葉の一つ) をブログに書いて気炎を上げていきたい。 (はじめに: 半分自分メモのつもりなんです! という言い訳をしておきます。認識や用語など間違いがあれば突っ込んで...) BPF CO-RE、コレってなんですか itiskj.hatenablog.com 上記記事に書いてある通り(さらに言えば Why We Switched from BCC to libbpf for Linux BPF Performance Analysis | PingCAP の通り)、BCCのプロダクション利用には、コンパイラやヘッダファイルなどたくさんの依存、実行時にコンパイルをすることによるオーバヘッドなど多くの問題があった

                              RustでBPF CO-RE - とりあえずビルドしてみるの巻 - ローファイ日記
                            • Sandboxing in Linux with zero lines of code

                              Modern Linux operating systems provide many tools to run code more securely. There are namespaces (the basic building blocks for containers), Linux Security Modules, Integrity Measurement Architecture etc. In this post we will review Linux seccomp and learn how to sandbox any (even a proprietary) application without writing a single line of code. Tux by Iwan Gabovitch, GPL Sandbox, Simplified Pixa

                              • 今日から始めるXDPと取り巻く環境について - お腹.ヘッタ。

                                はじめに この記事はBBSakuraNetworkアドベントカレンダーの5日目です。 自分はBBSakuraでアルバイトをしている大学生です。 さくらでバイトをしていたところ気がついたら出向していて今はコアモバイルの開発に携わっています。アルバイトに出向ってあるんですね。びっくり。 今はB3なのでそろそろ大学で研究しないといけなくて焦りを感じてます。 さて、今回話すのは自分の趣味の話をします。 eBPF と言われるパケット処理のための処理技術があるのですがそれが好きで、最近はBPFを利用した高速パケット技術の手法としてXDPを追いかけています。今回はそれを始めるにはどうすればいいかをみたいな話を紹介したいと思います。 対象読者としては高速パケット処理をやりたいけど、どうすればいいかわからない!って人をターゲットにしてます。始めるときにみると手引きみたいなknowledgeを目指します(自分

                                  今日から始めるXDPと取り巻く環境について - お腹.ヘッタ。
                                • 第694回 libbpfとclangでポータブルなBPF CO-REバイナリ作成 | gihyo.jp

                                  第688回と第690回では、カーネルのトレーシングツールとして注目されているeBPFを活用するためのツールとしてBCCを紹介しました。 また第692回ではBCC以外のeBPFを活用したツールの利用方法も紹介しています。 今回は一般的なコンパイラのようにバイナリを生成でき、移植性が高く、そして近い将来eBPFを使うための本流のひとつとなりそうなBPF CO-REについて紹介しましょう。 BPF CO-REの登場 BPF CO-RE(Compile Once - Run Everywhere)については第692回でも軽く紹介しました。改めてまとめると、次のような機能を実現する仕組みです。 BPFを利用したバイナリを実行環境とは異なる環境でビルドできる カーネルバージョン間の違いもある程度は吸収してくれる 実行バイナリのサイズはそれなりに小さくなる コンテナ内部などターゲットと異なるカーネルが動

                                    第694回 libbpfとclangでポータブルなBPF CO-REバイナリ作成 | gihyo.jp
                                  • eBPF+USDTでphpをトレースしてみる、bpftaceとRbBCCでやる - ださろぐ@はてな

                                    最近プロダクション環境での諸々の調査に使いたいというモチベーションで BPF Performance Tools (Book) 読み進めつつ、提供されているbcc-toolsを試したりbpftraceでlibほげほげの関数パラメータを抜いたりしていた、のだがUSDTを使用したトレースはうまく動かせず悶々としていた。 正直USDTはパッケージ入れておけばいきなりproductionでさくっと使える、という感じでもなく当初の目的からはやや外れているのだが、機構があるのに動かせないというのはなんとももどかしいので、諸々試行錯誤してとりあえず動いた、というころまでの記録を残しておく。対象はphpで。 なぜphpなのかというと、プライベート的にもお仕事的にも馴染みがありワンチャン使える可能性もあるのでは・・という期待と、ツールを試す過程で標準パッケージのphpで $ tplist-bpfcc -l

                                      eBPF+USDTでphpをトレースしてみる、bpftaceとRbBCCでやる - ださろぐ@はてな
                                    • RustでeBPFを操れるAyaを触ってみた - Qiita

                                      はじめに LKML(Linux Kernel Mailing List)に Rust support パッチシリーズ v2 が最近流れましたね。Linux カーネルを Rust で直接触れるようになる日ももうすぐかなと、クリスマス以上に待ち遠しい限りです。その前に、Linux カーネルの勉強をし直さなくちゃ。 もうひとつ、カーネル向けの Rust の営みとして以前から注目していたのが、Rust で eBPF を操ることができる Aya というプロジェクトです。良い機会なので、ちょっとだけ触ってみました。 eBPF とは eBPF の元となった BPF は、その名前の由来である The BSD Packet Filter(Berkley Packet Filter とも呼ばれる)が示す通り、BSD 版 Unix に実装されたレジスタベースの仮想マシンによるパケットフィルタ機構です。安全かつ効

                                        RustでeBPFを操れるAyaを触ってみた - Qiita
                                      • Kernel/VM/探検隊 online でRbBCCのLTをしました - ローファイ日記

                                        connpass.com Kernel/VM/探検隊 は憧れの勉強会だったので、とても緊張したのですが、オンライン化に伴い福岡からもLTチャレンジができるとのことでおしゃべりをしました。 speakerdeck.com Rubyアソシエーション助成対象でもあったRbBCCの簡単な紹介と現状の話をしました。 ブログでも書いてるやつです。Part 3書かないとね... udzura.hatenablog.jp udzura.hatenablog.jp 参加のふりかえり LTとはいえ参加者のレベルの高さもあるので、あまり間違ったことを言わないようベストを尽くしたつもりです... 結果的にはおおむねポジティブな反応をオンラインでいただけて良かったです。 ご指摘があった点として、ツールの比較の中でSystemTapやftraceもあるよという箇所がありました。 ftraceは以前少しだけ触ったのです

                                          Kernel/VM/探検隊 online でRbBCCのLTをしました - ローファイ日記
                                        • eBPF入門

                                          最近eBPFのコードを書いているのですが、体系的に学べる記事や書籍がまだない印象です。自分の知っている範囲でまとめようと思います。まだわからない箇所もあるので是非教えて下さい。 eBPF(extended Berkeley Packet Filter)とは 様々なタイミングでバイトコードを実行できるLinuxカーネルの機能です.カーネル内の関数が呼び出された時,パケットがNICに到達した時,ユーザー空間のアプリケーションの関数が呼び出された時だったりとかなり自由度高くフックポイントを設定できます. バイトコードを書くのはしんどいので,一般的にはC言語を用いてeBPFプログラムを作成します. NetflixのパフォーマンスエンジニアであるBrendan Greggはブログで eBPFがLinuxへ行うことはJavaScriptがHTMLに行ったことと同じである( eBPF does to L

                                            eBPF入門
                                          • Brendan@Intel.com

                                            Recent posts: 24 Mar 2024 » Linux Crisis Tools 17 Mar 2024 » The Return of the Frame Pointers 10 Mar 2024 » eBPF Documentary 28 Apr 2023 » eBPF Observability Tools Are Not Security Tools 01 Mar 2023 » USENIX SREcon APAC 2022: Computing Performance: What's on the Horizon 17 Feb 2023 » USENIX SREcon APAC 2023: CFP 02 May 2022 » Brendan@Intel.com 15 Apr 2022 » Netflix End of Series 1 09 Apr 2022 » Te

                                            • Cloudflare architecture and how BPF eats the world

                                              Cloudflare architecture and how BPF eats the world Loading... Recently at Netdev 0x13, the Conference on Linux Networking in Prague, I gave a short talk titled "Linux at Cloudflare". The talk ended up being mostly about BPF. It seems, no matter the question - BPF is the answer. Here is a transcript of a slightly adjusted version of that talk. At Cloudflare we run Linux on our servers. We operate t

                                                Cloudflare architecture and how BPF eats the world
                                              • Unit Testing eBPF Programs | who.ldelossa.is

                                                Unit Testing eBPFLove it or hate it, writing unit tests is all but mandatory for your code. They provide a safety net when making changes, and give you that nice, warm feeling when you see them all pass after a change. While working on a Kernel patch I had to investigate writing unit tests for eBPF programs. Turns out, the Kernel developers have thought about this already and infrastructure exists

                                                • H2O をトレースできるようになった | Toru Maesaka

                                                  H2O が処理する HTTP リクエストを BPF や DTrace でトレース可能になりました。 今回は Fastly での仕事の一貫として貢献させてもらいました (#2194 や #2182)。 Fastly は H2O を最前線で採用しているので、スタッフがトラブルシュートしやすくすることが目的です。 つい先日、ニューヨークで Kazuho さんと論議する機会があったおかげで、Logging に適した高レイヤの USDT Probe をスムーズに組み込めました。 背景技術や使い方はいずれ、公式チュートリアルなどで紹介します。 今すぐ試したい場合は下記の資料を参考にしてもらえればと思います。 https://torumk.com/h2o/tracing (概要) https://github.com/toru/h2olog (BPF Client 実装) あわせて読みたい

                                                    H2O をトレースできるようになった | Toru Maesaka
                                                  • bpftraceでテトリス - Qiita

                                                    みなさんこんにちは.突然ですがbpftraceってご存知でしょうか? 名前から明らかなようにbpfを利用したトレーシングツールです.bpftraceの設計は以前から存在するDTraceやSystemTapに影響を受けています.それらのツールに馴染みのある人にとってはむしろ,bpftraceはDTraceやSystemTapのBPF版と言った方が(非常に雑ですが)分かりやすいかもしれません. 一般にBPFを利用してトレーシンングを実施する場合は,1) BPFプログラム本体 と 2) トレーシング結果を表示するためのユーザランドのプログラム を書く必要がありますが,bpftraceでは独自のスクリプト言語により,それらを特に意識せずにトレーシング処理が記述できます.例えば,プロセス別にシステムコール発行数を集計したい場合は以下のようにしてできます.便利ですね. % bpftrace -e 't

                                                      bpftraceでテトリス - Qiita
                                                    • BPFによるトレーシングが簡単にできる「bpftrace」の使い方

                                                      Linuxにおける利用が急速に増えている「Berkeley Packet Filter(BPF)」について、基礎から応用まで幅広く紹介する連載「Berkeley Packet Filter(BPF)入門」。前回はBPFによるトレーシングについて、おおまかな仕組みや概要を説明しました。今回は、BPFによる代表的なトレーシングツール「bpftrace」について、具体的にどのようなことができるのかを紹介します。また、bpftraceの注意点や分かりにくい点についてもまとめます。 bpftraceとは bpftraceはBPFを利用したトレーシングツールの一つです。代表的なBPFのライブラリである「BCC(BPF Compiler Collection)」と同じく、現在は「iovisor」が管理しています。BCCと比較すると、bpftraceはトレース処理に特化し、より簡単に利用できるようになって

                                                        BPFによるトレーシングが簡単にできる「bpftrace」の使い方
                                                      • Red Hat Eyeing Innovative eBPF Uses For Linux's HID Subsystem - Phoronix

                                                        Show Your Support: This site is primarily supported by advertisements. Ads are what have allowed this site to be maintained on a daily basis for the past 19+ years. We do our best to ensure only clean, relevant ads are shown, when any nasty ads are detected, we work to remove them ASAP. If you would like to view the site without ads while still supporting our work, please consider our ad-free Phor

                                                          Red Hat Eyeing Innovative eBPF Uses For Linux's HID Subsystem - Phoronix
                                                        • 第695回 入門BPF CO-RE | gihyo.jp

                                                          第694回ではポータブルなBPFバイナリを作成できる、BPF CO-REのビルド方法を紹介しました。今回はより実践的なコードを使って、いろいろなツールを作ってみましょう。 BPF CO-REの基本と事前準備 BPF CO-RE(Compile Once - Run Everywhere)については第694回でも言及しましたが、簡単に言うとeBPFとは「カーネルやプロセスの挙動を、それらを再コンパイルすることなく調べるためのツール」であり、BPF CO-REが「移植性のあるeBPFバイナリを作成するための仕組み」になります。 また、カーネル内部で動くBPFオブジェクトは、libbpfによってカーネルにロードされます。よってユーザーランド側のツールは、libbpfを通してBPFオブジェクトをカーネルに渡し、BPFオブジェクトが生成したデータを収集しなくてはなりません。 BPFオブジェクト自体は

                                                            第695回 入門BPF CO-RE | gihyo.jp
                                                          • GitHub - Netflix/bpftop: bpftop provides a dynamic real-time view of running eBPF programs. It displays the average runtime, events per second, and estimated total CPU % for each program.

                                                            You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                                              GitHub - Netflix/bpftop: bpftop provides a dynamic real-time view of running eBPF programs. It displays the average runtime, events per second, and estimated total CPU % for each program.
                                                            • eBPF Summit Day 1 Recap

                                                              eBPF Summit Day One The first day of the eBPF Summit is a wrap and it certainly was an amazing day full of information about eBPF, the technology that is changing the shape of Linux networking, observability, and performance. If you missed the keynote and lightning talks from Day 1 you can watch the replay of the event in its entirety. Individual talks, along with their links, will be made availab

                                                                eBPF Summit Day 1 Recap
                                                              • X'masにDeepなPacket処理、いかがですか? - ainnoooのブログ

                                                                慶應理工 Advent Calendar 2021の14日目の記事です。 昨日の記事はこちら nageler.hatenablog.com この記事ではeXpressなDataのPath、その名もXDP!!!!についてゆるゆると書いていきたいと思います XDPとは何者 雑に動かしてみて感じ取るXDP デバドラコードから感じ取るXDP 大変参考になる資料たち SecHack365 XDPとは何者 XDPはLinuxカーネルに実装されている技術でして、高速なパケット処理を実現する方法の1つとされています。 なぜ高速なのかと言いますと、XDPではNICのデバイスドライバの段階でパケットを処理するプログラムを動かすことが出来るのです。NICというのはNetwork Interface Cardのことでして、フレーム(パケット)を受信するハードウエアです。このハードウエアをOS側から制御するソフトウ

                                                                  X'masにDeepなPacket処理、いかがですか? - ainnoooのブログ
                                                                • Persistent eBPF map object with bcc - yunazuno.log

                                                                  Linux kernel 4.4以降には,eBPF map/programを"永続化"する仕組みが実装されている.ここではその概要を説明しつつ,iovisor/bccを使って実際にその動作を確かめてみる. Background: eBPF objectを複数プロセスで共有したい eBPFにmapというデータ構造があることはXDPの紹介エントリのサンプルコード内で軽く触れた. 通常,mapはそれを作成したプロセスからのみ読み書き可能である.しかし,いくつかのユースケースにおいては,mapを複数のプロセスから読み書きできると都合が良いことがある.たとえば何からの統計情報(例えばパケットカウンタ)をmapに保存してそれを外部に転送したい場合,「統計情報をmapに保存するプロセス」と「収集された統計情報を加工して外部に転送するプロセス」とに分割したほうが,実装の見通しの観点から望ましい.また,ma

                                                                    Persistent eBPF map object with bcc - yunazuno.log
                                                                  • BPF(bcc)のメモ

                                                                    bpf や bcc 周りは使わないと忘れてしまうのでメモ。 Hello, World clang で bpf オブジェクトを作って C でそれを読み込む…という方法よりも https://github.com/iovisor/bcc/ を使う方が楽なので、bcc でやります。 C でやると環境作るところから大変なので… ref : https://blog.raymond.burkholder.net/index.php?/archives/1000-eBPF-Basics.html execve システムコールが呼ばれたときに Hello, World! と表示するプログラムを作ります。 from bcc import BPF bpf_text = """ #include <uapi/linux/ptrace.h> #include <linux/sched.h> #include <

                                                                      BPF(bcc)のメモ
                                                                    • Kernel analysis with bpftrace [LWN.net]

                                                                      This article brought to you by LWN subscribersSubscribers to LWN.net made this article — and everything that surrounds it — possible. If you appreciate our content, please buy a subscription and make the next set of articles possible. At the 2019 Linux Storage, Filesystem, and Memory-Management Summit (LSFMM) I gave a keynote on BPF observability that included a kernel issue I had debugged on Netf

                                                                      • 単なるデバッグ情報だけではない「BPF Type Format」(BTF)の使い道

                                                                        単なるデバッグ情報だけではない「BPF Type Format」(BTF)の使い道:Berkeley Packet Filter(BPF)入門(10) Linuxにおける利用が急速に増えている「Berkeley Packet Filter(BPF)」について、基礎から応用まで幅広く紹介する連載。今回は、最近のBPFの発展に欠かすことのできない重要機能「BPF Type Format(BTF)」について。 Linuxにおける利用が急速に増えている「Berkeley Packet Filter(BPF)」について、基礎から応用まで幅広く紹介する連載「Berkeley Packet Filter(BPF)入門」。今回は、最近のBPFの発展に欠かすことのできない重要機能「BPF Type Format(BTF)」を紹介します。 BPF Type Format(BTF)とは BPFプログラムは主にC

                                                                          単なるデバッグ情報だけではない「BPF Type Format」(BTF)の使い道
                                                                        • Trace Go program execution with uprobes and eBPF

                                                                          Weaver PLEASE READ! – I am currently refactoring Weaver to use libbpf instead of bcc which would include various other major improvements. If you’re currently using weaver please be aware that features/bug fixes are being held off until the major refactor occurs. This will be tracked in the branch “refactor” Weaver is a CLI tool that allows you to trace Go programs in order to inspect what values

                                                                          • BPF binaries: BTF, CO-RE, and the future of BPF perf tools

                                                                            Recent posts: 24 Mar 2024 » Linux Crisis Tools 17 Mar 2024 » The Return of the Frame Pointers 10 Mar 2024 » eBPF Documentary 28 Apr 2023 » eBPF Observability Tools Are Not Security Tools 01 Mar 2023 » USENIX SREcon APAC 2022: Computing Performance: What's on the Horizon 17 Feb 2023 » USENIX SREcon APAC 2023: CFP 02 May 2022 » Brendan@Intel.com 15 Apr 2022 » Netflix End of Series 1 09 Apr 2022 » Te

                                                                            • Intercepting Zoom's encrypted data with BPF

                                                                              Update: since I wrote this post, I've been working on a new eBPF library for Rust called Aya, see https://confused.ai/posts/announcing-aya. If you're looking to use eBPF with Rust, I highly recommend you check it out! I originally wrote an earlier version of this post at the end of March, when I was working on adding uprobes support to redbpf. I wanted to blog about the work I was doing and needed

                                                                                Intercepting Zoom's encrypted data with BPF
                                                                              • Production ready eBPF, or how we fixed the BSD socket API

                                                                                Production ready eBPF, or how we fixed the BSD socket API02/17/2022 As we develop new products, we often push our operating system - Linux - beyond what is commonly possible. A common theme has been relying on eBPF to build technology that would otherwise have required modifying the kernel. For example, we’ve built DDoS mitigation and a load balancer and use it to monitor our fleet of servers. Thi

                                                                                  Production ready eBPF, or how we fixed the BSD socket API
                                                                                • Production では BCC より libbpf + BPF CO-RE を使う方が良い - kenju's blog

                                                                                  "Why We Switched from BCC to libbpf for Linux BPF Performance Analysis 2020" に書いてあるとおりなのだが、BCC (BPF Compiler Collection) ではなく、libbpf + BPF CO-RE の組み合わせを使うほうが好まれる。 なぜかというと、BCC のアーキテクチャ上、BPF Program を実行するために Clang/LLVM および trace に必要な Linux kernel headers file を埋め込む必要があるのだが、それがプログラム起動時に必要な CPU/Memory リソースを押し上げる要因、及び BPF Program 開発時のビルドプロセスや Debugging の複雑化に繋がっているからだ。 NOTE: 大抵の場合、Clang, LLVM および Linux

                                                                                    Production では BCC より libbpf + BPF CO-RE を使う方が良い - kenju's blog