Skip to content

fix(cpu): hide CPU cache information display#645

Merged
deepin-bot[bot] merged 1 commit intolinuxdeepin:masterfrom
add-uos:fix-357397-hide-cache-info
Apr 21, 2026
Merged

fix(cpu): hide CPU cache information display#645
deepin-bot[bot] merged 1 commit intolinuxdeepin:masterfrom
add-uos:fix-357397-hide-cache-info

Conversation

@add-uos
Copy link
Copy Markdown
Contributor

@add-uos add-uos commented Apr 20, 2026

Comment out L1d, L1i, L2, L3, L4 cache information to avoid displaying incorrect or unavailable cache data.

注释掉 CPU 缓存信息显示,避免显示不正确或不可用的缓存数据。

Log: 隐藏 CPU 缓存信息显示
PMS: BUG-357397
Influence: CPU 信息页面不再显示 L1-L4 缓存信息,避免显示不准确的数据。

Comment out L1d, L1i, L2, L3, L4 cache information to avoid
displaying incorrect or unavailable cache data.

注释掉 CPU 缓存信息显示,避免显示不正确或不可用的缓存数据。

Log: 隐藏 CPU 缓存信息显示
PMS: BUG-357397
Influence: CPU 信息页面不再显示 L1-L4 缓存信息,避免显示不准确的数据。
Copy link
Copy Markdown

@sourcery-ai sourcery-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @add-uos, you have reached your weekly rate limit of 500000 diff characters.

Please try again later or upgrade to continue using Sourcery

@deepin-ci-robot
Copy link
Copy Markdown

deepin pr auto review

这段代码的 git diff 主要展示了在 DeviceCpu.cpp 文件中,关于 CPU 缓存信息(L1, L2, L3, L4)处理的变更。开发者将多处设置和加载缓存信息的代码行进行了注释。

以下是对这段代码变更的审查意见,分为语法逻辑、代码质量、代码性能和代码安全四个方面:

1. 语法逻辑

  • 功能缺失风险:代码将 setAttributesetTomlAttributeaddOtherDeviceInfo 中关于 L1-L4 缓存的设置全部注释掉了。
    • 问题:如果这是为了修复某个 Bug(例如某些系统上 lscpu 输出格式不统一导致解析崩溃),那么仅仅注释掉会导致这些信息在界面上完全消失,造成功能缺失。
    • 建议:需要确认是否有替代的逻辑在别处重新获取这些信息。如果没有,应该考虑使用更健壮的解析方式(例如增加异常处理或默认值),而不是直接移除功能。

2. 代码质量

  • 注释的规范性
    • 问题:使用了 // 进行单行注释。如果这是一个临时性的调试手段(为了验证问题是否出在缓存解析上),通常建议使用 #if 0 ... #endif 块。这样不仅更清晰地表明这是一段被"禁用"的代码块,而且便于后续通过简单的修改(改为 #if 1)来恢复代码,同时也防止了代码格式化工具可能带来的问题。
    • 示例
      #if 0
      setAttribute(mapInfo, "L1d cache", m_CacheL1Data);
      // ...
      #endif
  • 版权年份更新
    • 观察:文件头部的版权年份从 "2022" 更新为 "2022 - 2026"。
    • 意见:这是一个正常的维护操作,表示项目预计维护到 2026 年。逻辑上没有问题。

3. 代码性能

  • 影响评估
    • 分析:从性能角度看,移除了这几行代码实际上减少了少量的字符串查找(QMapoperator[])和赋值操作。
    • 结论:虽然性能有微小的提升,但这并不是性能优化的关键路径。如果这些信息是用户需要的,那么牺牲这些微小的性能来换取信息的完整性是值得的。因此,这种性能"提升"是以功能缺失为代价的,通常不建议。

4. 代码安全

  • 数据一致性
    • 问题m_CacheL1Data, m_CacheL2 等成员变量在此次变更中不再被赋值。
    • 风险:如果这些成员变量在类的其他地方被使用(例如在 UI 上显示),而没有在构造函数中被初始化为默认值(如空字符串或 "Unknown"),那么它们将包含未初始化的内存数据(如果是栈上对象且未初始化)或旧值。这可能导致显示乱码或错误信息。
    • 建议:检查 DeviceCpu 的构造函数,确保这些缓存相关的成员变量被显式初始化。例如:
      DeviceCpu::DeviceCpu() : m_CacheL1Data(""), m_CacheL2(""), ... {}

总结与改进建议

这段代码变更看起来像是为了规避某个特定的解析错误而进行的"热修复"(Hotfix),直接禁用了缓存信息的读取。

改进建议:

  1. 恢复功能并增强健壮性:不要直接注释掉代码。应该保留代码,但增加对键值是否存在的检查,或者使用 QMap::value() 方法并提供默认值,防止解析错误。

    • 修改前setAttribute(mapInfo, "L1d cache", m_CacheL1Data);
    • 修改建议:确保 setAttribute 内部处理了 key 不存在的情况,或者在外部包裹判断:
      if (mapInfo.contains("L1d cache")) {
          setAttribute(mapInfo, "L1d cache", m_CacheL1Data);
      }
  2. 初始化成员变量:确保 DeviceCpu 类的构造函数中,所有显示相关的成员变量(特别是被注释掉赋值逻辑的变量)都有默认的初始值,防止显示未定义内容。

  3. 代码提交意图:如果这确实是最终需求(即不再显示 L1-L4 缓存),建议在提交信息中明确说明"移除缓存信息显示功能",而不是仅仅通过代码变更来隐式表达。如果是为了修复 Bug 而临时禁用,建议添加 TODO 注释,说明后续需要修复解析逻辑并恢复功能。

  4. 使用预处理指令:如代码质量部分所述,如果必须暂时禁用,使用 #if 0// 更易于管理和恢复。

@deepin-ci-robot
Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: add-uos, lzwind

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@add-uos
Copy link
Copy Markdown
Contributor Author

add-uos commented Apr 21, 2026

/merge

@deepin-bot deepin-bot Bot merged commit ed57ce3 into linuxdeepin:master Apr 21, 2026
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants