====== memo1 ====== ポエム:REALFORCEと私 私がREALFORCEを手にしたのは12年と半年前、2009年11月のことだ。以前から知ってはいたものの、その価格と「他にもいいキーボードはあるハズ」という冒険心から、長らく購入を見送っていた。その間に使ってきたキーボードは次のとおりである。 * Microsoft Natural Keyboard Elite * IBM KB-8920 (5576-B05) * Apple Wireless Keyboard (A1016) M9270LL/A * Apple Keyboard (US) (A1243) MB110LL/A * FILCO ZERO Tenkyless FKBN87Z/EB 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