コグノスケ


link 未来から過去へ表示(*)  link 過去から未来へ表示

link もっと前
2021年9月16日 >>> 2021年9月3日
link もっと後

2021年9月16日

ワクチン2回目

前回(2021年8月26日の日記参照)同様に自治体の接種会場に行きました。ワクチンは当然同じでファイザー製です。

医療従事者のみなさま

前回同様に看護師を始めとした医療従事者の皆様は非常に親切かつ効率的に働いていました。ありがてぇ。

問診の先生はやっぱりお疲れモードな雰囲気でした。無理はしないでください……。

肩が痛い

前回はワクチンを打ってしばらく経ってから肩が痛くなりましたが、今回は打った直後から肩が痛いです。明日はどうなるんだろうか、これ……。

編集者:すずき(2021/09/17 01:59)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2021年9月13日

Zephyrのコンテキストスイッチ

目次: Zephyr

RISC-V向けZephyrの新しいコンテキストスイッチ(CONFIG_USE_SWITCH=y)を実装しているのですが、浮動小数点演算つまりFPUを使うスレッドを生成するとハングします。調べてみると、私が実装している場所の外にある、新しいコンテキストスイッチ(zephyr/kernel/include/kswap.hのdo_swap() 関数)の実装が今まで(CONFIG_USE_SWITCH=n)と違うように見えます。まだ確証はないですけど。

従来の処理arch_swap() では、現在のスレッド(_kernel.current)がコンテキストスイッチ(arch_swap() 内のシステムコール)の内部で旧 → 新に置き換えます。つまりcurrentは切替「前」のスレッドを指している状態でコンテキストスイッチが始まります。

ところがdo_swap() の場合、現在のスレッド(_kernel.current)がコンテキストスイッチ(arch_switch() 関数)を呼ぶ「前」に旧 → 新スレッドに置き換えます。つまりcurrentは切替「後」のスレッドを指している状態でコンテキストスイッチが始まります。

ハングに至るメカニズム

RISC-V Zephyr(他のアーキテクチャも同じかな?)ではFPU使えるスレッドと使えないスレッドを使い分けることができます。コンテキストスイッチ処理では、currentスレッドがFPUを使うか使わないかにより処理を変えています。

  • FPUを使う: currentの浮動小数点レジスタをスタックに退避する処理を実行
  • FPUを使わない: 退避する処理はスキップされる

私が実装したコンテキストスイッチも当然同じように実装したのですが……。先ほど説明したようにdo_swap() はcurrentを切替「後」のスレッドに設定するため、こんな悲劇が起きます。

  • 旧スレッド(FPU使用不可)→ 新スレッド(FPU使用可)の明示的コンテキストスイッチを行う
  • do_swap() がcurrentを新スレッド(FPU使用可)に変える
  • コンテキストスイッチ
  • 旧スレッド(FPU使用不可)で実行しているのに、currentは新スレッド(FPU使用可)になっている
  • 浮動小数点レジスタを退避しようとして「不正命令例外」で死ぬ

原因の一端は掴めたものの、どうして他のアーキテクチャは困っていないのか?do_swap() の実装は意図的なのか?良くわかりません……。

編集者:すずき(2023/09/24 12:03)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2021年9月10日

C言語の標準的な標準ではない機能

目次: C言語とlibc

C言語のmath.hヘッダには、円周率πを表すマクロM_PIが定義されています。しかしこのマクロ、コンパイラに -std=c99やc11を指定すると使えなくなるんですね。C言語通には常識かもしれませんが、個人的にハマったのでメモしておきます。

M_PIを使ったプログラム

#include <math.h>

int main(void)
{
	return M_PI;
}
C99としてコンパイルするとM_PIは宣言されていないと言われる
$ gcc -Wall -std=c99 a.c

a.c: In function ‘main’:
a.c:5:9: error: ‘M_PI’ undeclared (first use in this function)
    5 |  return M_PI;
      |         ^~~~
a.c:5:9: note: each undeclared identifier is reported only once for each function it appears in

もしc99やc11でもM_PIを使いたい場合は、math.hをインクルードする前に_DEFAULT_SOURCE(_GNU_SOURCEでも良いです)をdefineすると使えるようになります。

M_PIを使ったプログラム、C99でも動く版

#define _DEFAULT_SOURCE

#include <math.h>

int main(void)
{
	return M_PI;
}

使えるようになりました。

編集者:すずき(2023/02/04 20:27)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2021年9月5日

ゲーム用のPCを作りたいが、高い

目次: ゲーム

普段PCで何か作業する場合WindowsのノートPCを使っていて、マイコンボードでの実験や開発はLinuxのデスクトップPCにリモートアクセスして行っています。通常の作業には申し分ない性能と使い勝手が実現できています。

が、ゲームとなると話がやや違ってきます。ゲームは大抵Windowsを要求してくるので、我が家の唯一のWindows PCであるノートPCで遊ぶしかないんですけども、最近の3Dを多用したゲームは重すぎて、そのうちGPUが燃える(物理的に)んじゃないかと心配になってきます。

GPUが高すぎる

しばらく前に在宅勤務環境を整えた(2021年2月12日の日記参照)こともあり、机近辺に新たなPCを置けそうな場所ができました。Windowsをインストールしたゲーム用PCを新たに作りたいところですが、最近はあまりにもGPUが高すぎて購入に踏み切れません……。

いわゆるミドルエンドと呼ばれるTDP 200W以下(※)クラスは、今だとRadeon RX 6600 XTもしくはGeForce RTX 3060辺りだと思うんですが、Radeonはそもそも売り切れていて手に入りませんし、RTX 3060はお値段が6万円オーバーとあまりにも高すぎます。

GPUの値段はまだまだ下がらないようですし、諦めて買うしかないんですかねえ?

(※)補助電源8pin x 1くらいのカードをイメージしてます。GPUに供給可能な電力はPCIeカードエッジ(75W)+ 補助電源8pin x 1(150W)= Max 225Wです。

編集者:すずき(2023/09/24 13:34)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2021年9月4日

Zephyr on HiFive Unmatched/HiFive Unleashed

目次: Zephyr

ZephyrのHiFive UnmatchedとHiFive Unleashedへのポーティングが本家のmainにマージ(※)されました。2.7.0のマージウインドウが終わるまで、メンテナーチームは忙しそうだったので、もうしばらく放置かな?と思っていましたが、昨日突然マージされました。

これは以前トライしていたZephyrのHiFive Unleashedへの移植(2021年6月6日の日記参照)に加え、HiFive Unmatchedへの移植(2021年8月20日の日記参照)も追加したものです。RISC-Vはメンテナーが少ないこともあって割と放置気味になりがちなんですよね……。

ポーティングといっても、最低限の設定+とりあえず起動するだけで、ほぼ何にも使えない(UARTとSPIくらいしか動きません)から、まだまだこれからだな。うん。

(※)最近はmasterという単語はダメだねってことで、既存のリポジトリもmaster → mainに置き換えられたプロジェクトが増えてます。

メモ: 技術系の話はFacebookから転記しておくことにした。

編集者:すずき(2023/09/24 12:07)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
2021年9月16日 >>> 2021年9月3日
link もっと後

管理用メニュー

link 記事を新規作成

<2021>
<<<09>>>
---1234
567891011
12131415161718
19202122232425
2627282930--

最近のコメント5件

  • link 26年7月26日
    すずきさん (08/06 12:27)
    「ダイバート便以外もバスなんですよねえ。私...」
  • link 26年7月26日
    hdkさん (08/06 08:41)
    「あの規模の空港だとダイバート便にまでボー...」
  • link 26年7月14日
    すずきさん (07/31 11:48)
    「補充して乗れるのはまあそうなんですけど、...」
  • link 26年7月14日
    hdkさん (07/22 08:37)
    「冷却水漏れなんて、修理するまでは補充して...」
  • link 26年1月23日
    すずきさん (01/29 09:48)
    「おおー、そんな昔からなんですね。歴史感じ...」

最近の記事20件

  • link 23年6月1日
    すずき (09/03 00:20)
    「[自宅サーバー - まとめリンク] 目次: 自宅サーバーこの日記システム、Wikiの話。カウンターをPerlからPHPに移植日...」
  • link 26年8月24日
    すずき (09/03 00:20)
    「[ADS-Bを送る時刻に注意] 目次: 自宅サーバー以前、Flightradar24のcontributorになる方法(202...」
  • link 21年12月28日
    すずき (09/02 23:13)
    「[ゲーム - まとめリンク] 目次: ゲームNintendo DSを買ったパネルでポンDS最近の朝はパネポンDS聖剣伝説DSチ...」
  • link 26年4月11日
    すずき (09/02 23:12)
    「[デヴィエーション・ゲームでAIと勝負] 目次: ゲームお台場の日本科学未来館に行ってきました。どの展示も面白いんですけど、一...」
  • link 26年6月3日
    すずき (09/02 23:07)
    「[台風6号と大雨] 台風6号の影響でめちゃくちゃ雨が降っていました。Yahooの河川情報を見ると、氾濫寸前の川がチラホラしてお...」
  • link 26年9月1日
    すずき (09/02 01:42)
    「[誕生日のパラドックス] Twitter…じゃなくてXで「QuizKnockの誕生日のパラドックスの計算式が間違...」
  • link 26年8月8日
    すずき (08/10 03:22)
    「[NTPの時刻同期状況] 目次: 自宅サーバーNTPの動作状況を見るときに使うコマンドのメモです。よく使うのはntpq -pで...」
  • link 23年5月15日
    すずき (08/06 01:27)
    「[車 - まとめリンク] 目次: 車三菱 FTO GPX '95の話。群馬県へのドライブ1群馬県へのドライブ2将来車を買い替え...」
  • link 26年7月30日
    すずき (08/06 01:27)
    「[ジャガーさんのオイル漏れ] 目次: 車会社の同僚の方(整備士)から、ジャガーの下見たらオイル漏れしてたと教えてもらいました。...」
  • link 26年7月27日
    すずき (08/06 00:49)
    「[ジャガーさんの冷却水漏れ修理が終わった] 目次: 車正確には昨日ですけど、成田からの帰りに修理をお願いした整備工場(カスタム...」
  • link 26年7月26日
    すずき (08/06 00:05)
    「[北海道から東京へ] GWからだいぶずれちゃいましたが北海道に帰省していました。涼しくて最高だった北海道を出て、灼熱の東京へ戻...」
  • link 26年7月22日
    すずき (07/22 03:04)
    「[ジャガーさんの冷却水漏れの修理見積もり] 目次: 車先週、冷却水がほぼなくなってしまい修理工場にレッカーしたジャガーさんです...」
  • link 26年7月14日
    すずき (07/22 02:37)
    「[ジャガーさんの冷却水漏れ] 目次: 車朝、出勤しようと思ってエンジンをかけたところ冷却水不足と表示されました。わぁ、ついに出...」
  • link 26年7月19日
    すずき (07/20 04:04)
    「[ゲームを買ったら遊びましょう4] 目次: ゲーム前回の振り返り(2025年12月22日の日記参照)から半年経ちました。Swi...」
  • link 26年7月13日
    すずき (07/19 23:33)
    「[Flightradar24のcontributorになる方法] 目次: 自宅サーバーADS-Bを受信できる環境があればFli...」
  • link 23年9月11日
    すずき (07/15 12:18)
    「[Windows - まとめリンク] 目次: WindowsWindows XPのブリッジ機能colinuxとWindowsの...」
  • link 25年1月31日
    すずき (07/15 12:18)
    「[Windowsの日本語フォントはみな長生き] 目次: WindowsGNOME48からフォントが変わるニュースを見ていて、フ...」
  • link 26年7月11日
    すずき (07/12 01:26)
    「[Timberborn、トロフィーコンプ] 目次: ゲームTimberbornのトロフィーをコンプリートしました。アーリーアク...」
  • link 24年2月7日
    すずき (07/11 13:05)
    「[複数の音声ファイルのラウドネスを統一したい] 目次: PythonPCやデジタル音楽プレーヤーで音楽を聞いていると、曲によっ...」
  • link 26年6月27日
    すずき (07/08 01:45)
    「[ジャガーさんのバンパー修理] 目次: 車以前(2025年11月21日の日記参照)、ジャガーさんの左前をぶつけてバンパーをガリ...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 2025年
open/close 2026年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報

合計:  counter total
本日:  counter today

link About www2.katsuster.net
RDFファイル RSS 1.0

最終更新: 09/03 00:20