Repository navigation
Fix Intel cache unit and V4L2 IPU6 camera list - #309
Merged
Merged
Conversation
- Fix `format_cpu_cache_entries` in `crates/sysinfo/src/fetch.rs` where
fractional MiB cache sizes (`kb >= 1024 && !kb.is_multiple_of(1024)`)
formatted `"{:.2}M"` before `.trim_end_matches('0')` and then appended
`+ "M"`, producing `"1.25MM"` on Intel Golden Cove / Raptor Cove / Lion
Cove P-cores (`1280` KB = 1.25 MiB).
- Filter V4L2 ISP DMA capture queues (`Intel IPU6 ISYS Capture 0..31`),
CSI-2 receivers (`Intel IPU6 CSI2 0..3`), and MEI CSI bridges
(`Intel IVSC CSI`, `ipu3-*`) in `is_real_camera()`, expand V4L2 I2C
sensor names (`"<model> <bus>-<4-hex-addr>"`) to `"<Vendor> <MODEL>"`
(`"ov01a10 17-0036"` -> `"OmniVision OV01A10"`), append panel location
(`(Front)` / `(Back)`) from `device/physical_location/panel`, and sort
`/sys/class/video4linux` entries deterministically in `detect_camera()`.
- Bump `retch-cli` to 0.20.34 and `retch-sysinfo` to 0.1.99, regenerate
`docs/retch.1`, and update `NOTES.md`.
Assisted-By: Claude Opus 4.6
l1a
force-pushed
the
fix/intel-cache-and-cameras
branch
from
October 30, 2026 21:32
d38e54e to
a09e218
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit a09e218. Configure here.
| && !name_lower.contains("isys capture") | ||
| && !name_lower.contains(" csi2") | ||
| && !name_lower.contains("ivsc csi") | ||
| && !name_lower.starts_with("ipu3-") |
There was a problem hiding this comment.
IPU6 BE SOC nodes unfiltered
Medium Severity
The new is_real_camera denylist matches isys capture, csi2, ivsc csi, and ipu3-, but out-of-tree IPU6 drivers register pipeline video nodes named Intel IPU6 BE SOC capture. Those names miss every substring, so they still appear as cameras on Ubuntu OEM IPU6 systems.
Reviewed by Cursor Bugbot for commit a09e218. Configure here.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Summary
"M"unit in fractional MiB CPU cache sizes (L2: 1.25MM->L2: 1.25M):format_cpu_cache_entriesincrates/sysinfo/src/fetch.rsformatted fractional MiB cache sizes (kb >= 1024 && !kb.is_multiple_of(1024)) withformat!("{:.2}M", kb as f64 / 1024.0)before calling.trim_end_matches('0').trim_end_matches('.'), and then appended+ "M". Because AMD and Apple CPUs have power-of-2 L2 cache sizes (512K,1024K,2048K), they take the exact-multiple branch; Intel Golden Cove / Raptor Cove / Lion Cove P-cores have1280K(1.25 MiB) or2560K(2.5 MiB) L2 caches and hit the fractional branch."{:.2}"), strip trailing zeros/dot, and append"M"once (1280K->"1.25M",1536K->"1.5M").Camera:):rabban, Dell XPS 13 Plus 9320, 12th Gen Intel Core i7-1260P),/sys/class/video4linuxexposes 32 ISP DMA multiplex capture queues (Intel IPU6 ISYS Capture 0..31), 4 CSI-2 receiver subdevices (Intel IPU6 CSI2 0..3), and 1 MEI CSI bridge (Intel IVSC CSI) alongside the physical I2C camera sensor (ov01a10 17-0036).isys capture,csi2,ivsc csi,ipu3-) inis_real_camera(), expandv4l2_i2c_subdev_set_namestrings ("<model> <bus>-<4-hex-addr>") into"<Vendor> <MODEL>"(OmniVision OV01A10,Sony IMX258,SK Hynix HI556, etc.), append(Front)/(Back)whendevice/physical_location/panelisfrontorbackviacollect_v4l2_cameras_with_panel(), and sort/sys/class/video4linuxdirectory entries deterministically in Linuxdetect_camera().retch-clito0.20.34andretch-sysinfoto0.1.99, updateCargo.lock, regeneratedocs/retch.1, and updateNOTES.md.Test Plan
cargo test --workspacepasses (includingtest_format_cpu_cache_entries_fractional_mib,test_is_real_camera,test_clean_camera_name,test_collect_v4l2_cameras_filters_intel_ipu6_pipeline, andtest_collect_v4l2_cameras_deduplicates_and_cleans_uvc_nodes, verified by mutation).just checkpasses.retch --ascii-logo --color neveroutput onrabban(12th Gen Intel Core i7-1260P, Fedora 44) showsCPU Cache: L1d: 48K, L1i: 32K, L2: 1.25M, L3: 18MandCamera: OmniVision OV01A10 (Front).