如何通过Linux pciehp sysfs接口控制PCIe Slot电源状态?-2

news2024/9/22 17:31:56

NVME SSD电源状态判断

通过pciehp sysfs接口对NVMe SSD所在的PCIe插槽进行Power On/Off操作时,确实会间接影响到NVMe SSD本身的电源状态。因为NVMe SSD是作为PCIe设备连接到特定插槽上的,插槽电源状态的变化通常会直接影响到与其相连的设备。

当对PCIe插槽执行Power Off操作时,实质上是向插槽发送了关闭电源的指令,这通常会导致插槽上的所有电源信号(如VccVaux等)被切断,从而使得连接在该插槽上的NVMe SSD失去供电,进入断电状态。断电后的NVMe SSD将无法进行任何读写操作,也无法响应系统请求,其状态与物理移除设备类似。

`echo 0 > /sys/bus/pci/slots/<slot_id>/power` 这个命令通常是通过ACPI接口来控制PCIe插槽的电源状态。这是因为Linux内核中,对PCIe插槽的电源管理通常由ACPI子系统负责,特别是对于支持热插拔(Hot-Plug)的插槽。`/sys/bus/pci/slots/<slot_id>/power` 这样的sysfs接口正是内核ACPI子系统暴露出来,供用户空间控制PCIe插槽电源状态的途径之一。

图片

在ACPI规范中,定义了针对PCIe设备的电源管理方法,包括通过ACPI控制方法(Control Methods)来操作设备的电源状态。当执行上述命令时,内核会通过ACPI机制向硬件发送适当的命令,指示对应的PCIe插槽断电或进入低功耗状态。

对于echo 0 > /sys/bus/pci/slots/<slot_id>/power命令的执行对应的结果是pcie设备断电还是设置待机状态,具体取决于所使用的Linux内核版本、内核配置、以及相关的PCIe设备驱动实现。

在Linux内核加载中通常会看到这个打印"PME# supported from D0 D3hot D3cold" ,是指设备支持在电源管理状态 D0、D3hot 和 D3cold 下产生和响应 Power Management Event(PME)信号。PMEs 是一种用于唤醒设备或系统从低功耗状态的技术,通常与ACPI(Advanced Configuration and Power Interface)相关联。

  • D0, D3hot, D3cold:这些是PCIe设备的电源管理状态。D0 表示设备处于全功率运行状态;D3hot 是一种低功耗状态,设备大部分功能关闭,但保留足够的电源以便快速唤醒;D3cold 是最深的低功耗状态,设备几乎完全断电,唤醒时间较长。

  • PME#:PME# 是一个信号线,用于通知系统或设备存在一个Power Management Event。当设备处于低功耗状态(如D3hot或D3cold)时,可以通过发送一个PME#信号来请求唤醒到更高功率状态(如D0)。同时,系统也可以通过发送PME#信号唤醒处于低功耗状态的设备以响应外部事件(如网络唤醒、键盘唤醒等)。

  • PME# supported from D0 D3hot D3cold:这句话意味着设备在 D0、D3hot 和 D3cold 三种电源管理状态下都能生成或响应 PME# 信号。具体来说:

    • 在D0状态:设备可能支持在D0状态下接收PME#信号并做出响应,比如响应系统发起的电源管理命令,如进入低功耗状态。

    • 在D3hot状态:设备能够在保持部分电源供应的情况下监测并响应PME#信号,从而快速从D3hot状态唤醒到D0状态。

    • 在D3cold状态:虽然设备处于几乎断电的状态,但如果硬件设计支持,它仍可能监测到PME#信号并启动唤醒过程。这通常需要设备在设计上保留足够的电源管理电路来监控和响应PME#,即使主电源已关闭。

"PME# supported from D0 D3hot D3cold"表示设备具备在不同电源管理状态下处理PME#事件的能力,这对于实现灵活的电源管理和设备唤醒功能至关重要。

如果执行echo 1 > /sys/bus/pci/slots/<slot_id>/power命令后,如果PCIe设备无法正常恢复,有可能是因为设备进入了D3cold状态。D3cold是一种深度低功耗状态,设备在该状态下几乎完全断电,唤醒过程可能比其他低功耗状态(如D3hot)更为复杂,需要更长的时间和额外的复位步骤。以下是一些可能导致设备无法正常恢复的与D3cold相关的情况:

  1. 设备不支持D3cold唤醒:

    • 如果设备硬件或其驱动不支持从D3cold状态唤醒,即使设备进入D3cold,也无法正确恢复到工作状态。

  1. 唤醒信号未正确触发或处理:

    • 在某些情况下,即使设备支持D3cold唤醒,如果唤醒信号(如PCIe的WAKE#信号)未被正确触发或内核未能正确响应,设备可能无法成功恢复。

  1. 硬件故障或电源问题:

    • 设备进入D3cold后,其电源可能被完全断开。如果电源恢复过程中出现问题(如电源管理电路故障、供电不足等),设备可能无法正常上电。

  1. 驱动或系统软件问题:

    • 驱动可能未正确处理设备从D3cold恢复的过程,如未正确重新初始化设备、未重新分配资源等。

    • 内核或系统服务可能在设备恢复过程中出现问题,如未能正确识别恢复后的设备、未能重新加载驱动等。

虽然echo 1 > /sys/bus/pci/slots/<slot_id>/power命令可能导致设备进入D3cold状态,但设备无法正常恢复的原因可能多样,需要结合具体情况分析。如果怀疑与D3cold有关,应重点检查设备、驱动、电源以及系统对D3cold状态的支持和处理情况。

如果需要禁止PCIe设备进入D3cold状态,在常见的内核版本中,d3cold_allowed sysfs属性的完整路径,可以对其执行:

echo 0 > /sys/bus/pci/devices/<PCI_DEVICE_ID BDF>/d3cold_allowed

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1596668.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Css】table数据为空,以“-“形式展现

解决&#xff1a;class类名 它表示的是在一个名为class类名的元素内部&#xff0c;当该元素为空时&#xff0c;会在该元素的:before伪元素上应用一些样式。 这种写法通常用于在元素内容为空时&#xff0c;添加一些占位符或者提示文字

史上最全excel导入功能测试用例设计(以项目为例)

web系统关于excel的导入导出功能是很常见的&#xff0c;通常为了提高用户的工作效率&#xff0c;在维护系统中的一些数据的时候&#xff0c;批量导入往往比一个一个添加或者修改快很多。针对导入功能的测试&#xff0c;往往会有很多种情况&#xff0c;现在针对平时项目中遇到的…

五款靠谱平台,做地推网推赚钱的都不要错过

现在生活压力都很大&#xff0c;很多人的主业都已经满足不了生活的开支了&#xff0c;做副业增加收入成了大家的选择。对于没有特长的小伙伴来说&#xff0c;选择一个适合自己的副业非常重要。 在这种环境下&#xff0c;现在非常火爆的地推网推就成了很多人的选择。但对于不太…

【论文速读】| CovRL:基于覆盖引导的强化学习对LLM基础变异进行JavaScript引擎模糊测试

本次分享论文为&#xff1a;CovRL: Fuzzing JavaScript Engines with Coverage-Guided Reinforcement Learning for LLM-based Mutation 基本信息 原文作者&#xff1a;Jueon Eom, Seyeon Jeong, Taekyoung Kwon 作者单位&#xff1a;延世大学、苏瑞软科技公司 关键词&#…

SpringBoot + Vue实现的校园(接单跑腿)服务平台管理系统设计与实现+(12000字)毕业论文+开题报告+搭建视频​(包运行成功)

介绍 本系统包含管理员、接单员、普通用户三个角色。 管理员角色&#xff1a;管理员管理、基础数据管理、接单详情管理、接单员管理、公告信息管理、用户管理、用户投诉管理、余额变更记录管理。 接单员角色&#xff1a;接单详情管理、接单员管理、跑腿任务管理。 普通用户…

分类算法(数据挖掘)

目录 1. 逻辑回归&#xff08;Logistic Regression&#xff09; 2. 支持向量机&#xff08;Support Vector Machine, SVM&#xff09; 3. 决策树&#xff08;Decision Tree&#xff09; 4. 随机森林&#xff08;Random Forest&#xff09; 5. K近邻&#xff08;K-Nearest …

JavaScript(五)-正则表达式

文章目录 正则表达式正则表达式的介绍语法元字符修饰符 正则表达式 正则表达式的介绍 什么是正则表达式 正则表达式&#xff08;Regular expression&#xff09;是用于匹配字符串中字符组合的模式&#xff0c;在JavaScript中&#xff0c;正则表达式也是对象通常用来查找、替…

【Golang学习笔记】从零开始搭建一个Web框架(三)

文章目录 分组控制分组嵌套中间件 前情提示&#xff1a; 【Golang学习笔记】从零开始搭建一个Web框架&#xff08;一&#xff09;-CSDN博客 【Golang学习笔记】从零开始搭建一个Web框架&#xff08;二&#xff09;-CSDN博客 分组控制 分组控制(Group Control)是 Web 框架应提供…

传销?链动2+1模式 合法合规的商业模式!

大家好&#xff0c;我是吴军&#xff0c;来自一家深耕于软件开发领域的公司&#xff0c;担任产品经理的职务。 今天&#xff0c;我希望与大家共同探讨一个具有深刻意义的话题——链动21模式&#xff0c;并探究其如何有效应对用户留存与复购的挑战。 或许有人会说&#xff0c;链…

UE5学习日记——实现自定义输入及监听输入,组合出不同的按键输入~

UE5的自定义按键和UE4有所不同&#xff0c;在这里记录一下。 本文主要是记录如何设置UE5的自定义按键&#xff0c;重点是学会原理&#xff0c;实际开发时结合实际情况操作。 输入映射 1. 创建输入操作 输入操作并不是具体的按键映射&#xff0c;而是按键的激活方式&#xff0…

如何落地一个FaaS平台?

简介&#xff1a; 函数即服务&#xff08;FaaS&#xff09;作为云计算 2.0 时代重要的发展方向&#xff0c;能够从工程效率、可靠性、性能、成本等方面给开发者带来巨大的价值&#xff0c;尤其是能够极大地提升研发效率。因此&#xff0c;拥抱FaaS成为开发者关心的重要技术领域…

01-Git 之快速入门操作本地仓库

https://learngitbranching.js.org/?localezh_CN在线练习git 1. Git 安装好Git以后, 先检查是否已经绑定了用户名和邮箱 git config --list1.1 为什么要使用版本控制&#xff1f; 从个人角度&#xff1a; 在做项目时&#xff0c;如果一点点去改代码会很乱&#xff0c;不利…

华为云开年采购季:企业级市场的火爆营销炼成记

作者 | 曾响铃 文 | 响铃说 销售火爆&#xff0c;一单又一单&#xff0c;“生意好个不停”。 这一幕&#xff0c;常常发生在C端消费品市场上&#xff0c;要么是线上爆单&#xff0c;要么是线下人头攒动。 而现在&#xff0c;在B端企业级市场上也发生了类似的情景。 自3月1…

ZJJ-2A直流绝缘监视继电器额定电流3.1mA额定电压110VDCJOSEF约瑟

系列型号 JJJ-1绝缘监视继电器&#xff1b; ZJJ-1/A绝缘监视继电器&#xff1b; ZJJ-1A绝缘监视继电器&#xff1b; ZJJ-2型直流绝缘监视继电器 ZJJ-2直流绝缘监视继电器&#xff1b; ZJJ-2B直流绝缘监视继电器&#xff1b; ZJJ-2AC直流绝缘监视继电器&#xff1b; 用途…

Day 41:动态规划 LeedCode 343. 整数拆分 96.不同的二叉搜索树

343. 整数拆分 给定一个正整数 n &#xff0c;将其拆分为 k 个 正整数 的和&#xff08; k > 2 &#xff09;&#xff0c;并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 。 示例 1: 输入: n 2 输出: 1 解释: 2 1 1, 1 1 1。 思路: 1.确定dp数组&#xff0…

《TinyLlama: An Open-Source Small Language Model》全文翻译

【Title】 TinyLlama&#xff1a;开源小语言模型 【Abstract】 我们推出了 TinyLlama&#xff0c;这是一个紧凑的 1.1B 语言模型&#xff0c;在大约 1 万亿个令牌上进行了大约 3 个时期的预训练。 TinyLlama 基于 Llama 2&#xff08;Touvron 等人&#xff0c;2023b&#xff…

自定义Centos的终端的命令提示符

背景 当我们使用终端登陆Centos时&#xff0c;就自动打开了ssh终端。这个终端的命令提示符一般是这样的&#xff1a; 这个以#号结束的一行字&#xff0c;就是我们说的命令提示符了。 这个是腾讯云的服务器的提示符&#xff0c;可以看到主机名是VM-4-7-centos。 但是这个看起…

Python-GEE遥感云大数据分析、管理与可视化及多领域案例实践应用

随着航空、航天、近地空间遥感平台的持续发展&#xff0c;遥感技术近年来取得显著进步。遥感数据的空间、时间、光谱分辨率及数据量均大幅提升&#xff0c;呈现出大数据特征。这为相关研究带来了新机遇&#xff0c;但同时也带来巨大挑战。传统的工作站和服务器已无法满足大区域…

SD-WAN提升企业网络体验

在现代企业中&#xff0c;网络体验已成为提升工作效率与业务质量的关键因素。SD-WAN技术的出现&#xff0c;以其独特的优势&#xff0c;为企业提供了优化网络连接、加速数据传输、提升服务质量和应用访问体验&#xff0c;以及增强网络稳定性的解决方案。接下来&#xff0c;我们…

设计模式在芯片验证中的应用——策略

1. 策略模式 策略模式是一种行为设计模式&#xff0c; 它能让你定义一系列算法&#xff0c; 并将每种算法分别放入独立的类中&#xff0c; 以使算法的对象能够相互替换。 在RTL设计中可能包含了复杂的多个访问仲裁逻辑&#xff0c;使用了多种算法来确定访问内存优先级顺序&am…