目次

memo1

ポエム:REALFORCEと私

私がREALFORCEを手にしたのは12年と半年前、2009年11月のことだ。以前から知ってはいたものの、その価格と「他にもいいキーボードはあるハズ」という冒険心から、長らく購入を見送っていた。その間に使ってきたキーボードは次のとおりである。

pacman -S base-devel pacman -S mingw-w64-x86_64-toolchain pacman -S cmake

/mingw64/bin/cmake .. -G“MSYS Makefiles” -DPA_USE_WMME=1 -DPA_USE_WASAPI=1 -DPA_USE_DS=1 -DPA_USE_WDMKS=1 -DMINGW=1 -DCMAKE_INSTALL_PREFIX=/mingw64 make -j8 make install

pacman -S mingw-w64-x86_64-qt5

mingw-w64-x86_64-qt5 の提案パッケージ

  mingw-w64-x86_64-clang
  mingw-w64-x86_64-libmariadbclient
  mingw-w64-x86_64-firebird2
  mingw-w64-x86_64-postgresql

pacman -S mingw-w64-x86_64-qt-creator

mingw-w64-x86_64-qt-creator の提案パッケージ

  mingw-w64-x86_64-gdb: for the debugger
  mingw-w64-x86_64-cmake: for cmake project support
  mingw-w64-x86_64-clang: for clang code model

pacman -S git

git clone https://github.com/zaps166/QMPlay2.git git submodule update –init

$ /mingw64/bin/cmake .. -DCMAKE_INSTALL_PREFIX=../install -G“MSYS Makefiles” – Checking for module 'portaudio-2.0' – Found portaudio-2.0, version 19 – Enabled features: * Updates, Build with software updates * OpenGL, Build with OpenGL support * Vulkan, Build with Vulkan support * Freedesktop notifications, Use Freedesktop notifications * D-Bus suspend, Use D-Bus suspend * libass, Build with libass support * Inputs, Build with Inputs module * Modplug, Build with Modplug module * Extensions, Build with Extensions module * MediaBrowser, Build with MediaBrowser support * LastFM, Build with LastFM support * Lyrics, Build with lyrics support * Radio, Build with Radio Browser support * YouTube, Build with YouTube support * MPRIS2, Build Extensions with MPRIS2 support * Visualizations, Build with Visualizations module * AudioFilters, Build with AudioFilters module * VideoFilters, Build with VideoFilters module * PortAudio, Build with PortAudio module * CUVID, Build with CUVID module * Notifications, Build additional notifications module * Git version, Append Git HEAD to QMPlay2 version

– Disabled features: * PCH, Use precompiled headers * GLSLC, Compile Vulkan shaders * TagLib, Build with tags editor * VAAPI, Build VAAPI acceleration into FFmpeg * VDPAU, Build VDPAU acceleration into FFmpeg * libavdevice, Build FFmpeg with libavdevice suport * AudioCD, Build with AudioCD module * ALSA, Build with ALSA module * Chiptune GME, Build Chiptune with GME support * Chiptune SIDPLAY, Build Chiptune with SIDPLAY support * PulseAudio, Build with PulseAudio module * PipeWire, Build with PipeWire module * XVideo, Build with XVideo module * Link Time Optimization, Enable link time optimization for release builds * Address Sanitizer, Use Address Sanitizer * Undefined Behavior Sanitizer, Use Undefined Behavior Sanitizer * SolidActions, Install Solid actions

– Build type: Release – Configuring done – Generating done – Build files have been written to: /home/Decomo/proj/QMPlay2/build

x86_energy_perf_policyのmanの翻訳

https://manpages.debian.org/bullseye/linux-cpupower/x86_energy_perf_policy.8.en.html

名前

x86_energy_perf_policy - x86モデル固有レジスタを通じたエネルギー対性能ポリシーの管理

書式

x86_energy_perf_policy [オプション] [スコープ] [フィールド値] スコープ: –cpu cpu-list | –pkg pkg-list cpu-list, pkg-list: # | #,# | #-# | all フィールド: –all | –epb | –hwp-epp | –hwp-min | –hwp-max | –hwp-desired その他: (–force | –hwp-enable | –turbo-enable) 値) 値: # | default | performance | balance-performance | balance-power | power

説明

x86_energy_perf_policyはIntelアーキテクチャプロセッサ固有のエネルギー性能ポリシー設定の表示と更新を行います。Linuxのcpufreqサブシステムの有効・無効を問わず、設定はモデル固有レジスタ(MSR)の更新を通して読み書きされます。

MSR_IA32_ENERGY_PERF_BIAS (EPB)のポリシーは、ハードウェアがどれくらい積極的にCPU待機ステート(C-State)とプロセッサ性能ステート(P-State)を行き来するかといった、広範なハードウェア裁定に影響する可能性があります。このポリシーヒントはOSの明確なC-State, P-Stateの選択を置き換えません。正確に言えば、ヒントはこれら選択の実行をどの程度積極的に行うかをハードウェアに伝えます。加えて、EPBはOSに対し、日和見的なTurbo Mode Pステート範囲といった、ソフトウェア上のインタフェースが存在しないエネルギー性能のトレードオフの伝達を許可します。留意点としてMSR_IA32_ENERGY_PERF_BIASはCPU毎に定義されますが、いくつかの実装は1つのMSRを各プロセッサパッケージ内の全CPU間で共有します。こうしたシステムでは、1プロセッサのEPBに対する書き込みがあると、それは同一プロセッサパッケージの全CPUに影響を及ぼすでしょう。

Hardware P-States (HWP)は、ハードウェアPステート制御を日和見的なTurbo Mode Pステート範囲から利用可能なPステートの全範囲を含むよう拡張したもので、事実上のPステート制御を行います。Broadwell XeonのHWPの初期実装では、EPBがHWPに作用します。この作用は後続世代では削除され、2つの専用MSR、MSR_IA32_HWP_REQUESTとMSR_IA32_HWP_REQUEST_PKG内のEnergy_Performance_Preference (EPP)フィールドに移されました。

EPPはHWPモードの最も一般的な制御弁ですが、MSR_IA32_HWP_REQUESTはQoSのための最小周波数の指定、および消費電力上限のための最大周波数の指定をユーザーに許可します。 MSR_IA32_HWP_REQUESTはCPU毎に定義されます。

MSR_IA32_HWP_REQUEST_PKGはMSR_IA32_HWP_REQUESTと同一の能力を持ちますが、パッケージ内の全CPUに対しデフォルトポリシーを同時に設定可能です。 CPU毎のMSR_IA32_HWP_REQUEST内のビットは、MSR_IA32_HWP_REQUEST_PKGによって上書きされたのか、あるいは除外されるのかどうかを示します。

MSR_HWP_CAPABILITIESはMSR_IA32_HWP_REQUESTフィールドのデフォルト値を示します。 It is displayed when no values are being written.

スコープオプション

-c, –cpu
CPUリストの各CPUに対しMSR_IA32_HWP_REQUESTを操作します。CPUリストはコンマ区切りの番号で、ダッシュでレンジ指定や文字列“all”を指定できます。例:'–cpu 1,4,6-8'や'–cpu all'。–cpuを使った場合、–hwp-use-pkgが利用可能となり、When –cpu is used, –hwp-use-pkg is available, which specifies whether the per-cpu MSR_IA32_HWP_REQUEST should be over-ruled by MSR_IA32_HWP_REQUEST_PKG (1), or exempt from MSR_IA32_HWP_REQUEST_PKG (0).
-p, –pkg

-p, –pkg Operate on the MSR_IA32_HWP_REQUEST_PKG for each package in the package-list. The list is a string of individual package numbers separated by commas, and or ranges of package numbers separated by a dash, or the string “all”. For example '–pkg 1,3' or '–pkg all'

値オプション

normal または default
性能とエネルギー効率が一般的なバランスのポリシーに設定します。プロセッサは、重大なエネルギー節約の潜在的な可能性に対し、いささかの性能妥協を容認します。これは大半のデスクトップやサーバマシンにとって合理的な初期設定です。“default”は“normal”の同義語です。
performance
最大性能ポリシーに設定します。エネルギー効率上の恩恵に対し、一切の性能上の犠牲を受け入れません。
balance-performance
性能優先ポリシーに設定します。性能を重視しますが、エネルギー効率の恩恵を受けるために、いくつかの性能ロスを許します。
balance-power
性能と電力がバランスしたポリシーに設定します。これがデフォルト設定です。
power
最大エネルギー効率ポリシーに設定します。エネルギー効率最大化のため、プロセッサは目に見える性能上のインパクトを受け入れます。

下表は上記設定値と実際のMSRの値の対応表です。このマッピングはLinuxカーネルのヘッダmsr-index.hで定義されています。

設定値 EPB EPP
performance 0 0
balance-performance 4 128
normal, default 6 128
balance-power 8 192
power 15 255

MSR_IA32_HWP_REQUEST性能フィールド(–hwp-min, –hwp-max, –hwp-desired)について、その値の単位は100MHzとなり、例えば12は1200MHzを示します。

フィールドオプション

-a, –all 値文字列
値文字列に対応する値で、すべてのEPBとEPP、およびHWPリミットフィールドを設定します。加えて、ターボモードとHWPモードが無効化されていた場合、有効にします。Thus “–all normal” will set a system without cpufreq into a well known configuration.
-B, -epb
コア単位またはパッケージ単位でEPBを設定します。前述の表の値文字列をご覧ください。
-d, –debug
デバッグ情報の冗長度を増やします。By default x86_energy_perf_policy is silent for updates, and verbose for read-only mode.
-P, –hwp-epp
コア単位またはパッケージ単位でHWP.EPPを設定しいます。前述の表の値文字列をご覧ください。
-m, –hwp-min
コア/バスレシオが指定値を下回らないようHWPに要求します。“default”指定時の値はIA32_HWP_CAPABILITIES.minの値です。
-M, –hwp-max
コア/バスレシオが指定値を超えないようHWPに要求します。“default”指定時の値はIA32_HWP_CAPABILITIES.maxの値です。
-D, –hwp-desired
request HWP 'desired' frequency. The “normal” setting is 0, which corresponds to 'full autonomous' HWP control. Non-zero performance values request a specific performance level on this processor, specified in multiples of 100 MHz.
-w, –hwp-window
specify integer number of microsec in the sliding window that HWP uses to maintain average frequency. This parameter is meaningful only when the “desired” field above is non-zero. Default is 0, allowing the HW to choose.

その他オプション

-f, –force
指定値を境界値チェックをせずに書き込みます。
-U, –hwp-use-pkg (0 | 1)
when used in conjunction with –cpu, indicates whether the per-CPU MSR_IA32_HWP_REQUEST should be overruled (1) or exempt (0) from per-Package MSR_IA32_HWP_REQUEST_PKG settings. The default is exempt.
-H, –hwp-enable
HardWare-P-state (HWP)モードを有効にします。一度有効にすると、無効にするにはシステムの再起動が必要です。
-t, –turbo-enable
ターボモードを有効(1)または無効(0)にします。
-v, –version
バージョンを表示し終了します。

ポリシー変更を伴わないリクエストが行われた場合、デフォルト能力を含むシステムの状態の読み取りと表示を行います。

WARNING

本ユーティリティはモデル固有レジスタを直接書き換えます。 There is no locking or coordination should this utility be used to modify HWP limit fields at the same time

that intel_pstate's sysfs attributes access the same MSRs. intel_pstateのsysfs属性が同じMSRSにアクセスする

–hwp-desiredと–hwp-windowは実験的扱いと見なされる点に留意してください。将来のバージョンのLinuxは、これらフィールドに内部的にアクセスする権利を有し、ユーザースペースからのアクセスと潜在的に競合するかもしれません。

EXAMPLE

# sudo x86_energy_perf_policy
cpu0: EPB 6
cpu0: HWP_REQ: min 6 max 35 des 0 epp 128 window 0x0 (0*10^0us) use_pkg 0
cpu0: HWP_CAP: low 1 eff 8 guar 27 high 35
cpu1: EPB 6
cpu1: HWP_REQ: min 6 max 35 des 0 epp 128 window 0x0 (0*10^0us) use_pkg 0
cpu1: HWP_CAP: low 1 eff 8 guar 27 high 35
cpu2: EPB 6
cpu2: HWP_REQ: min 6 max 35 des 0 epp 128 window 0x0 (0*10^0us) use_pkg 0
cpu2: HWP_CAP: low 1 eff 8 guar 27 high 35
cpu3: EPB 6
cpu3: HWP_REQ: min 6 max 35 des 0 epp 128 window 0x0 (0*10^0us) use_pkg 0
cpu3: HWP_CAP: low 1 eff 8 guar 27 high 35

NOTES

x86_energy_perf_policyはroot権限でのみ実行できます。

FILES

/dev/cpu/*/msr

SEE ALSO

msr(4) Intel(R) 64 and IA-32 Architectures Software Developer's Manual

AUTHORS

Len Brown