自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(3)
  • 收藏
  • 关注

原创 openbmc 之 entity-manager 是如何工作的(3)

接下来,我们开始进入 PerformScan 的内部逻辑。其之所以复杂,是因为存在着“明线”和“暗线”。“明线”是 perfScan->run() 以及其能够调用到的所有函数。“暗线”是基于 RAII 的析构时序,说白了就是上面的 finalCallback。“明线”不会直接调用到“暗线”,“暗线”的触发时机完全取决于何时异步调用全部结束。总的来说,“明线”所做的事情是上面的 1 ,代码几乎全部在 perform_scan.cpp 中。

2024-12-01 15:49:51 1382

原创 openbmc 之 entity-manager 是如何工作的(2)

这个复制的过程意味着,其值捕获的 finalCallback 也会被复制,于是这会同步反映到智能指针的引用计数上:已经发起、还没结束的异步请求数量越多,finalCallback 的引用计数值也就越高,当异步请求逐个拿到结果后,复制到 systemBus 中的 callback 会逐个析构,值捕获的 finalCallback 会被逐个释放,于是 finalCallback 的引用计数会不断降低,直到归零触发 GuardCallback 的析构,从而造成 do something 2 的调用。

2024-10-17 20:48:58 1585 1

原创 openbmc 之 entity-manager 是如何工作的(1)

先来概况一下这个可执行文件的工作内容:它需要在没有设备驱动的情况下扫描所有 i2c 总线下的每一个地址(实际上是指定范围的地址),如果发现地址上存在 FRU ,则解析 FRU 的内容并将其推到 dbus 上。什么是 FRU?说白了,它就是一种电子标签,用以存储部件信息。在物理上,它一般存储在板卡上的特有 EEPROM 里,与 BMC 通过 i2c 的方式取得连接。fru-device 在根本上所做的事,便是通过 i2c 来寻找 FRU ,从而发现各种各样的板卡。

2024-10-16 21:01:52 2706 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除