从存储UFS角度梳理Linux系统框架,包括文件系统层、Block层、驱动层

1、总体框图

1.1、Android Architecture的Flash Memory Driver

Android Architecture - Detailed Explanation - InterviewBit

1.2、IO栈

https://www.thomas-krenn.com/en/wikiEN/images/8/83/Linux-storage-stack-diagram_v6.2.png

1.2.1、文件系统层

1.2.1.1、F2FS

F2FS: A New File System for Flash Storage | USENIX

1.2.1.2、ext4

XXX

1.2.2、Block层(承上启下)

blk_mq多队列块设备浅析_blk-mq-CSDN博客

https://www.cs.cornell.edu/courses/cs4410/2021fa/assets/material/lecture24_blk_layer.pdf

1.2.3、驱动层

1.2.4、器件层

1.3、IO请求的生命周期

XXX

1.4、Android启动流程

XXX

1.4.1、深入MTK平台bootloader启动

XXX

1.4.2、UFS启动分析

XXX

1.4.3、kernel启动流程

XXX

1.4.4、高通8996启动流程

XXX

1.5、Linux PM(待机S1、休眠S4)

休眠、唤醒

2、与UFS相关的内容是什么?

3、上层对UFS做的操作是什么?

1.link startup

2.NOP OUT

3.Query Request(SET FLAG fDeviceInit)

4.Query Request(READ FLAG fDeviceInit)

5.配置不同的分区进行操作

4、不同平台的host日志整理

4.1、Qcom

4.2、Unisoc

4.3、MTK

4.4、kirin

5、Write Booster(UFS 2.2新增)

XXX

6、UFS Hibernate系统上的行为

1.Auto-Hibernate

2.Clk-gate with hiberate

3.suspend with hiberate(runtime/system/shutdown)

4.Clock gating/scale

为什么有auto h8后还会有clock gating?

这种对UFS的影响是什么?如何与UFS进行交互的?

7、HPB

8、Linux代码研究

9、参考资料

9.1、cnblogs、csdn等

https://kernel.dk/systor13-final18.pdficon-default.png?t=N7T8https://kernel.dk/systor13-final18.pdf

WHAT IS Flash-Friendly File System (F2FS)? — The Linux Kernel documentationicon-default.png?t=N7T8https://www.kernel.org/doc/html/latest/filesystems/f2fs.html

https://www.cnblogs.com/Linux-tech/p/12961293.htmlicon-default.png?t=N7T8https://www.cnblogs.com/Linux-tech/p/12961293.html

https://www.cnblogs.com/Linux-tech/p/12961286.htmlicon-default.png?t=N7T8https://www.cnblogs.com/Linux-tech/p/12961286.html

UFS Power Management 介绍_ufs驱动_果汁底线的博客-CSDN博客文章浏览阅读1.7k次。UFS Power Management介绍,从System PM 和 Runtime PM两个角度来介绍UFS Power Management。_ufs驱动https://blog.csdn.net/guozhidixian/article/details/125364022clock Gating-CSDN博客文章浏览阅读1w次,点赞25次,收藏240次。一、为什么要做clock gating?芯片中的功耗可以广义的定义为动态功耗和静态功耗。静态功耗通常包含芯片在不翻转的状态下产生漏电功耗(关不紧产生的功耗)、衬底电流产生的功耗、热电子效应导致的电流效应而产生的功耗等及部分组成。通常情况下,静态功耗在前端设计阶段很难做出一些优化(可以做电源关断处理)。而是一般要基于ME/BE的流程或者工艺方面的改善才能够达到更好的结果。静态功耗如下图:动..._clock gatinghttps://blog.csdn.net/weixin_43727437/article/details/104966528linux runtime pm机制的深入理解_pm_runtime_get_noresume-CSDN博客文章浏览阅读1.2w次,点赞8次,收藏20次。一:runtime机制说明 何为runtime机制?也就是系统在非睡眠状态,设备在空闲时可以进入runtime suspend状态同时不依赖系统wake_lock机制,非空闲时执行runtime resume使得设备进入正常工作状态。 主要代码放在Runtime.c (drivers\base\power)中,同时附带的Runtime_pm.txt (documentati_pm_runtime_get_noresumehttps://blog.csdn.net/linux_devices_driver/article/details/38092115BLOCK层代码分析(0)存储IO框架介绍_linux解码者的博客-CSDN博客文章浏览阅读2.6k次,点赞6次,收藏33次。更新了BLOCK层代码分析(1)(2)后,觉得有必要对存储IO框架层次做介绍,因此增加了本小节。1.存储IO框架存储IO内核框架如下图所示:以上列出几种驱动的存储软件框架,包含NVME驱动/SAS驱动/SATA驱动。IO依次经过系统调用层、文件系统层、BLOCK层、SCSI层、LIBSAS/LIBATA层以及LLDD。但并不是所有的这些层都经过,比如对于NVME驱动,对接BLOCK层,并不会经过SCSI层等。并且上图只是简单的描述,每层...https://blog.csdn.net/flyingnosky/article/details/121341392VFS基础学习笔记 - 1.概述_inode i_private-CSDN博客文章浏览阅读647次。目录1. 前言2. Linux文件系统分层架构3. Linux VFS各对象之间的关系4. VFS的构建|- -init_rootfs|- -init_mount_tree参考文档1. 前言本专题我们开始学习虚拟文件系统VFS的相关内容。本专题主要参考了《存储技术原理分析》、ULA、ULK的相关内容。本文是概述部分,主要介绍VFS基本框架,各对象之间的关联,以及VFS最初的模型是如何构建起来的。kernel版本:5.10平台:arm64注:为方便阅读,正文标题采用分级结构标识,每一级用一个"-_inode i_privatehttps://blog.csdn.net/jasonactions/article/details/115869530

linux block layer第一篇bio 子系统数据结构及初始化_geshifei的博客-CSDN博客文章浏览阅读3.7k次,点赞9次,收藏54次。介绍:block layer在内核中起着承上(文件系统层)启下(设备驱动层)的作用,struct bio是block层的基本数据结构,可以理解成将bio输入block层,由block layer对其加工处理,然后再输出给底层。与bio相关的代码涉及bio内存管理、提交、合并拆分、完成时的回调处理等内容,是内核中一个很小的子系统,该文对其中涉及的代码进行分析,作为笔记,以备查阅。内核源码:linux-5.10.3bio数据结构bio是block层最基本的结构,用来描述io请求属性及状态。从内_block layerhttps://blog.csdn.net/geshifei/article/details/119959905SCSI子系统基础学习笔记 (之UFS子系统) - 3. UFS命令处理_ufshcd_pltfrm_init -19-CSDN博客文章浏览阅读3.5k次。目录1. 前言2. scsi_queue_rq|- -ufshcd_queuecommand3. ufshcd_intr1. 前言本专题我们开始学习SCSI子系统的相关内容。本专题主要参考了《存储技术原理分析》、ULA、ULK的相关内容。本专题主要以硬件UFS为例,记录SCSI子系统的框架流程。前面主要讲述了UFS的初始化过程,通过ufshcd_pltfrm_init负责获取IO资源,中断号,通过scsi_host_alloc为Scsi_host及私有数据空间hba分配空间,同时通过解析DTS中的属性_ufshcd_pltfrm_init -19https://blog.csdn.net/jasonactions/article/details/116749869

f2fs学习笔记 - 1. f2fs概述-CSDN博客文章浏览阅读5.4k次,点赞9次,收藏34次。1. 前言本文主要通过回答几个问题来概要了解f2fs,这几个问题包括:f2fs是什么?为何引入f2fs?f2fs如何工作?f2fs如何做到随机写入顺序化?f2fs如何解决雪崩问题?2. f2fs是什么?F2FS (Flash Friendly File System) 是专门针对SSD、eMMC、UFS等闪存设备设计的文件系统。基于LFS,同时解决了LFS的一些问题。由三星工程师Jaegeuk Kim于2012年10月发布到Linux社区,并于2012年12月进入Linux 3.8 内核_f2fshttps://blog.csdn.net/jasonactions/article/details/122403935

Linux Storage Stack Diagram - Thomas-Krenn-Wiki-enThe Linux Storage Stack Diagram shows the layout of the the Linux storage stack.icon-default.png?t=N7T8https://www.thomas-krenn.com/en/wiki/Linux_Storage_Stack_Diagram

UFS Host Controller工作流程-CSDN博客文章浏览阅读4.3k次,点赞6次,收藏80次。contentsUFS架构图HCI接口架构传输请求接口(Transfer Request Interface)UFS 主机控制器寄存器接口(host controller Interface)UTP 层数据传输Host Software与Host Controller的交互Host Controller初始化配置与控制CRYPTOCFG 配置过程该文档描述了UFS Host Controller的主要运作流程以及在开源内核代码hisi平台中的host controller的接口函数设计文档大部分内容参_ufs hosthttps://blog.csdn.net/Frank_sample/article/details/119039577

手机主流存储器件的分析与发展-CSDN博客文章浏览阅读116次。一、前言存储器件作为系统中存储数据的物理单元,承担着非常重要的责任,它的运行状态时刻影响着整个系统的运行效率,存储容量和数据安全。所以整个产业针对存储器件的寿命,稳定性,容量,性能以及价格等方面进行着长期持续的探索与改进,进而衍生出了多种多样的存储器件应用于不同阶段和不同场景需求的系统。而手机系统场景尤其复杂,对存储性能(包括IO的带宽,延迟和稳定性)的要求更加严苛。那么应对如此高要求的手机系统,...https://blog.csdn.net/feelabclihu/article/details/133956571

block io生命历程-CSDN博客文章浏览阅读2.5k次,点赞4次,收藏28次。作为存储业务的一个重要组成部分,block IO是非易失存储的唯一路径,它的生命历程每个阶段都直接关乎我们手机的性能、功耗、甚至寿命。本文试图通过block IO的产生、调度、下发、返回的..._block iohttps://blog.csdn.net/feelabclihu/article/details/121867779

linux内核block层Multi queue多队列核心点分析_blk_mq_tag_set-CSDN博客文章浏览阅读7.3k次,点赞35次,收藏99次。内核块设备层单队列时代,我们IO传输的底层函数是一切从submit_bio开始 submit_bio->generic_make_request-> blk_queue_bio。如果看多相关源码,会发现经常用到q->queue_lock自旋锁,在IO发送过程、IO传输完成、IO合并都有。多核多进程IO传输时,会在q->queue_lock锁上自旋等待浪费不少时间,内核引入Multi queue多队列架构应该就是为了解决这个问题。Multi queue多队列架构主要有两个数据结构:每个_blk_mq_tag_sethttps://blog.csdn.net/hu1610552336/article/details/111464548

9.2、其它IO栈

XXX

10、学习总结

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值