自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 VirtIO与PCIe:讲讲我理解的PCIe

前面我们聊了VIrtio的数据结构,通知形式,不了解的同学可以翻翻之前的文章。今天我们一起来看看基于PCIe的VirtIO实现。

2024-03-10 21:40:13 637 1

原创 聊聊Vritio的数据结构——PACKED模式

我们看看Packed模式的vq和之前我们看的Split模式有何异同。

2024-03-07 22:51:04 988 1

原创 聊聊Virtio的前后端通知

讲讲Virtio前后端的Notify通知运行

2024-03-06 23:20:01 914

原创 Virtio的实际执行流程,以收包为例详细讲讲

其实整体的流程不是特别复杂,我们以Virtio1.0及以下的Split 模式的Virt queue来看看队列具体是如何进行工作的。driver提供buffer,放到desc table之中(如果是chain模式的话,可能是多个buffer组成的chain,简化来看我们不用管它)更新avail ring, driver 将已经放入buffer的desc ring的idx信息(如果是chain模式,则是chain的头部的idx)放入avail ring中以上步骤1和步骤2可能执行多次。

2024-03-02 23:03:46 961

原创 聊聊VirtIO的数据结构 —— Split virt queue

virtIO是Linux平台下的一种半虚拟化的实现方式,是一种实现出来的技术,并最终得到了标准化。为什么需要有VirtIO,本质上其实是虚拟化需要一个高效且标准的生产者-消费者队列实现。首先我们需要确认,我们所说的生产者和消费者,即虚拟device和driver是如何进行通信的。

2024-02-27 23:57:25 1013

原创 探究CPU等设备频率、电压、功耗的关系 —— Linux中的OPP_table与energy model

Operating Performance Points(OPP),SOC中允许一些域以较低的频率和电压运行,而其他的域运行在较高的电压和频率上。将域中每个设备支持的电压和频率的离散元组的集合称为Operating Performance Points。其实OPP_table存在的核心意义还是为了功耗和性能之间的平衡,否则我们都把SOC直接拉到满频率跑就完事儿了,哪儿来这么多事情呢?

2023-04-05 13:38:34 3225 2

原创 Linux内核中最牛逼的温控方案——IPA(三)

本篇文章主要专注在ipa的代码分析,拖更了三个月,我们还是花三篇文章的篇幅把整个thermal_governor中最复杂的governor —— IPA给讲完了,实际应用中我们可能会碰到更多的问题,像是移动设备的使用延迟、功耗模型的准确度等等,内核中的解决方案非常多,值得我们好好分析,好好学习。

2023-03-27 21:29:00 1061

原创 Linux内核中最牛逼的温控方案——IPA(二)

IPA(intelligence power allocator),从名字可以分成一部分,Intelligence是一部分,power allocator是另一部分。我们这次来先来说说intelligence的部分,这里本质上其实是一个基于闭环控制的系统。

2023-03-06 22:21:25 1841 4

原创 Linux内核中最牛逼的温控方案——IPA(一)

讲讲Linux内核强大的源生温控方案IPA(intelligence power allocator)的起源以及工作流程。这是第一篇,先讲讲CPU的发热原理以及内核的温度控制框架。

2022-12-18 16:24:26 2597 1

空空如也

空空如也

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

TA关注的人

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