feat(diarization): проверен Intel-профиль CPU-диаризации #43

Merged
ddmitry merged 4 commits from issue-41-intel-cpu-experiment into master 2026-08-31 17:14:42 +03:00
2 changed files with 32 additions and 1 deletions
Showing only changes of commit 0ea4d56c9d - Show all commits

No files matched your search

+19 -1
View File
@@ -931,6 +931,24 @@ def _runtime_supply() -> str | None:
return None
def _runtime_profile() -> str | None:
profile = _read_optional_text(Path("/sys/firmware/acpi/platform_profile"))
if profile is not None:
return profile
try:
completed = subprocess.run(
["powerprofilesctl", "get"],
capture_output=True,
text=True,
check=False,
timeout=5,
)
except (OSError, subprocess.TimeoutExpired):
return None
value = completed.stdout.strip()
return value or None if completed.returncode == 0 else None
def _runtime_governor() -> str | None:
values = {
value
@@ -1006,7 +1024,7 @@ def runtime_guard_snapshot() -> dict[str, Any]:
swap = psutil.swap_memory()
return {
"supply": _runtime_supply(),
"profile": _read_optional_text(Path("/sys/firmware/acpi/platform_profile")),
"profile": _runtime_profile(),
"governor": _runtime_governor(),
"turbo": _runtime_turbo(),
"power_limits": _runtime_power_limits(),
+13
View File
@@ -593,6 +593,19 @@ def test_schedule_preserves_raw_repeats_and_resumes_only_success(tmp_path):
assert all(item["guard"]["attempts"][0]["valid"] for item in second["cells"])
def test_runtime_profile_falls_back_to_powerprofilesctl(monkeypatch):
monkeypatch.setattr(experiment, "_read_optional_text", lambda _path: None)
monkeypatch.setattr(
experiment.subprocess,
"run",
lambda *args, **kwargs: experiment.subprocess.CompletedProcess(
args[0], 0, stdout="balanced\n", stderr=""
),
)
assert experiment._runtime_profile() == "balanced"
def test_runtime_guard_retries_once_and_persists_transition_evidence(tmp_path):
manifest = _manifest(tmp_path)
manifest["cells"][1]["enabled"] = False