OpenTelemetry Instrumentation for Javaの自動トレースの仕組みの調査

自動で分散トレーシングができるライブラリ OpenTelemetry Instrumentation for Java のソースコードを読み解いて調査を行ってみました。

PythonでFPGAを扱える?Ultra96-V2でPYNQを動かしてみた(2) ~ オーバーレイ作成編

FPGAボードUltra96-V2を入手したのでPythonでFPGAが扱えるというPYNQ環境を試してみました。第1回目ではUltra96-V2にPYNQ環境を構築し使える状態となりました。今回は、ボード上のLEDの点灯制御を行うオーバーレイを作ってみたいと思います。

RISC-V OSを作ろう (6) ~ セマフォ

「RISC-V用の小さなOSを実装してみよう」の連載記事第6回目となります。 前回は、指定時間だけタスクをスケジューリング対象から外す「タスクの時限待ち機能」を実現してみました。 今回は、タスクを協調動作させるための仕組みとして、セマフォによる同期機…

PythonでFPGAを扱える?Ultra96-V2でPYNQを動かしてみた(1) ~ 導入編

FPGAボードUltra96-V2を入手したのでPythonでFPGAが扱えるというPYNQ環境を試してみました。第1回目はUltra96-V2にPYNQ環境を構築する導入編です。

RISC-V OSを作ろう (5) ~ 時限待ち

「RISC-V用の小さなOSを実装してみよう」の連載記事第5回目となります。 前回は、タイムシェアリングスケジューリング機能を実装してみました。 今回は、指定時間だけタスクをスケジューリング対象から外す「タスクの時限待ち機能」を実現してみましょう。

技術ブログを始めて1年が経ちました!

VA Linux が昨年7月から技術ブログを始めて1年余りが経ちました。 そこで今回は、これまで公開した技術記事の紹介や、技術ブログを始めた目的、開設までの準備、運営スタイルなどについて書き留めておきたいと思います。

Intel Optane Persistent Memory を使ってみた

Intel Optane Persistent Memory を使うにあたり必要な、基本的な概念や Linux 上での使用方法などを説明します。

RISC-V OSを作ろう (4) ~ タイムシェアリングスケジューリング

「RISC-V用の小さなOSを実装してみよう」の連載記事 第4回目となります。 第3回では、割り込みハンドラを動作させるところまで実装してみました。 今回は、タイムシェアリングスケジューリング機能を実装してみましょう。

RISC-V OSを作ろう (3) ~ 割り込み

「RISC-V用の小さなOSを実装してみよう」の連載記事 第3回目となります。 第2回では、複数のタスクが切り替わりながら並列動作できる仕組みを作りました。 今回は割り込みハンドラを動作させるところまで実装してみましょう。

Apport ~Ubuntu のコアダンプ作成動作~

Ubuntu のコアファイル書式が変わっている事を知り、現在の書式を司る Apport について障害情報の収集に関わる話を含め調べてみました。

「ディスアグリゲーテッドコンピューティング」とは何か? (1) GigaIO FabreX製品

「メモリセントリックアーキテクチャ」や「ディスアグリゲーテッドコンピューティング」とはどのようなものなのか、従来のアーキテクチャやコンピューティングに対してどんなメリットがあるのか、実現に向けた課題にはどんなものがあるのかを、GigaIO社製品…

RISC-V OSを作ろう (2) ~ タスク切り替え

「RISC-V用の小さなOSを実装してみよう」の連載記事 第2回目となります。 第1回では、boot プログラムが動くところまできました。今回は、複数のタスクが切り替わりながら並列動作できる仕組みを作っていきます。

KubeCon + CloudNativeCon Europe 2021 Virtual レポート

2021年5月3日から開催された KubeCon + CloudNativeCon Europe 2021 Virtual について、Kubernetes をはじめ、CNCF がホストするプロジェクトの最新動向や印象に残ったセッションについてレポートします。

RISC-V OSを作ろう (1) ~ブート処理

RISC-VはMIPSアーキテクチャの流れを汲むRISC CPUです。 Linux上で利用できるRISC-Vツール群も揃ってきたので、それらを使ってRISC-V用の小さなOSを実装してみようと思います。

CRI と Cgroup Driver をダウンタイム無しでまとめて変更する

Kubernetes v1.20 のリリースノートにおいて、CRI として Docker (dockershim) の利用が非推奨となり、v1.23 では dockershim が Kubernetes から除去されるとの予告がされています。 また、Kubernetes v1.21 のリリースノート には、kubeadm の標準の Cgrou…

CentOS 8.3 を AlmaLinux 8.3 にしてみた

CentOS 8 のサポートが2021年12月31日で終了するとの発表がありました。そこで、CentOS 8.3 から AlmaLinux 8.3 への移行するツールを用いて実際に移行してみました。移行の際に、どのようなことが行われているか、どのような注意点があるのかを解説します。

LVM の動作について 〜 ディスクデータ移行と pvmove, lvconvert を例題として

クラウド全盛のこのご時世においても、物理マシンのお守りをしないといけないことはあって、古くなったディスクの交換作業が必要になりました。 オンラインのままディスクを移行できる pvmove というコマンドがありますが、このコマンドの解説記事は少ないの…

FPGAカーネル超入門 (2)

前回のFPGAカーネル超入門 (1) では、OpenCLを使用したホスト側プログラムから、カーネルを動かせるようになりましたが、ホスト側で何をやっているのか、特にカーネルを実行するためにどんなことが行われているのか気になります。 そこで、今回は、OpenCLよ…

KubeCon + CloudNativeCon NA 2020 Virtual レポート

Kubernetes をはじめ、CNCF がホストするプロジェクトの最新動向や印象に残ったセッションについてレポートします。

FPGAカーネル超入門 (1)

Linux カーネルならぬ、FPGA カーネルに関する解説記事です。 対象とする FPGA は、サーバに PCI-e で接続して使用するもので、アクセラレータとも呼ばれています。アクセラレータとしては GPU が最も一般的かと思いますが、FPGA も最近何かと話題になってい…

Kubernetes で cgroup がどう利用されているか

cgroup とは、Linux カーネルの機能の1つであり、プロセスやスレッドが利用するリソースの制限や分離を行うための機能で、Linux コンテナの根幹を成す技術の1つでもあります。本記事では、Kubernetes のいくつかの機能を例に挙げ、cgroup がどう利用されてい…

SmartNIC で遊んでみる

RDMA やその他の機能のついている NIC を2枚使って遊んでみました。NICの選定やインストール、接続、性能測定の結果、RDMA を試してみた結果を紹介します。

.note.ABI-tagとはなにか

前回記事「vmlinuxのヒミツ」を書くために、いくつかの実行ファイルで readelf を実行して気づいた、".note.ABI-tag" セクション。この ".note.ABI-tag" について調べてみました。

perf を使った性能分析

perf は、Linux の性能に関する情報を収集、分析するためのツールです。本記事では、ネットワークの受信処理を例に、perf を使った性能分析を行う方法を解説します。

Kubernetes カスタムコントローラの開発例

Kubernetesでは複雑な操作が必要なアプリを動かすためのカスタムコントローラを用意しています。そこで本記事では、DPDKアプリのSPPを題材にしてSPPのカスタムコントローラの開発例を紹介します。

AF_XDPアプリケーション性能特性の定性的評価 〜レイテンシ編

近年活発に開発が進んでいる AF_XDP を利用したアプリケーションは、Linux Kernel Network Stack をバイパス出来るという観点で、DPDK を活用したアプリケーションと比較されることが少なからずあるかと思います。 本記事では、AF_XDPアプリケーションにおけ…

vmlinuxのヒミツ

vmlinux の入手・インストールをはじめ、ELFファイルやセクションについて解説します。

KubeCon + CloudNativeCon Europe 2020 Virtual レポート

KubeCon + CloudNativeCon Europe 2020は、当初3月末にアムステルダムで計画されていましたが、Virtual 開催に変更になり、8月17-20日の日程で行われました 。 KubeCon と Co-Located Events の 1 つである Cloud Native Security Day について印象に残った…

Linux Kernel lockdep機構解説

lockdepは、Linux Kernelのlocking primitiveの誤使用に因るdeadlock検知・予測をはじめ、synchronization primitiveを誤った形で使用している"_bad code_"を幅広く検知する為の機構です。一方で巷にはそのメカニズム、つまり何をどのようにして検知するのか…

RDMAプログラミング入門

InfiniBandやRDMAが誕生して約20年、最近ではRDMAを使用する環境も手軽に用意できるようになりました。しかし、実際にRDMAで通信するプログラムを書こうとすると、まだあまり情報がないように感じます。そこで本稿では、RDMAで通信するプログラムを書くため…