ubi 文件系统的fastmap启用

news/2025/2/10 22:06:30/

fastmap是一项实验性和可选的UBI功能,可以启用 通过将CONFIG_MTD_UBI_FASTMAP设置为“y”。启用后,UBI将评估模块 参数“fm_autoconvert”。如果设置为 1(默认值为 0),则自动 UBI 为任何附加的图像启用fatmap。这意味着UBI创建了一个新的内部 具有fatmap数据的卷,以便下次附加图像时, 可以使用快速连接模式。

在默认配置中,UBI将使用存储在此 fatmap卷以加速附加过程。如果你想测试 fatmap,将fm_autoconvert设置为 1 并附加卷。

可以进行以下设置:

CONFIG_MTD_UBI_FASTMAPfm_autoconvert结果
n0fastmap已完全禁用
y0UBI将使用fastmap数据(如果图像上存在), 但不会在尚未安装fastmap的图像上安装
y1UBI 将使用fastmap数据(如果图像上存在)和fastmap 在所有附加的图像上自动创建

1.1 向后兼容性

fatmap磁盘数据结构利用删除兼容卷, 因此,启用fastmap的图像与UBI完全向后兼容 不支持fatmap的实现。内核将删除 fatmap卷并继续扫描。这不仅包括内核 版本 v3.6- 但也是禁用此选项的 v3.7+。

1.2 fastmap 的存储过程

磁盘上的fastmap包含附加整个映像所需的所有信息,
包括:
所有擦除计数器值、
所有 PEB 及其状态的列表、
所有卷及其当前 EBA(eraseblock address) 列表
等…
为了避免fatmap过多的写入,它还包含一个可能已经更改并需要完全扫描的 PEB 列表。 此列表称为“fastmap池”,固定大小为总数的 5% PEB 的数量。根据设计,UBI 仅在池中不包含空闲的 PEB才需要写入fastmap数据 。否则,它必须每次EBA发生改变时,就必须写入fastmap。

fatmap由超级块(也称为锚点 PEB)和可在任何PEB上存储的有效数据组成。 锚点 PEB 必须位于 MTD 设备上的前 64 个 PEB 内。 它包含指向带有实际的fastmap 数据其余PEB的指针。在现代 NAND 芯片上,整个fatmap适合单个 PEB。 因此,锚点 PEB 指向自身。 加载fastmap数据后,从中将创建 UBI 附加信息结构 。

附加过程的工作方式如下:

  1. UBI试图找到fastmap锚点PEB, 如果未找到锚点 PEB,UBI 将执行传统的完全扫描
  2. 它遵循存储在锚点 PEB 中的指针并读取 fastmap有效负载数据
  3. 然后,它仅对池中的 PEB 执行传统扫描 而不是所有 PEB
  4. 如果UBI检测到fastmap数据无效或损坏 自动回退到扫描模式并执行完全扫描。使用 内部UBI结构的CRC32校验和和一致性检查UBI是 能够检测fastmap数据是否无效。

fastmap数据写入设备:每次fastmap池已满时 (即没有可用的免费 PEB)、卷布局更改或图像被取消挂载,就会写入。如果您想知道为什么需要在取消挂载时将fastmap数据写入,这是因为否则,自上次fatmap写入以来的所有擦除计数器修改将丢失。

1.3 fastmap 的时间和控件开销

支持fastmap的UBI将保留足够的PEB来携带两个完整的PEB fastmap。在实践中,在现代NAND芯片上,需要为fatmap保留两个PEB。

还有一些运行时开销。为了保证新的fastmap有效 并且一致,UBI需要确保在附加过程中阻止所有可能导致EBA更改的I / O。 连接时被阻止。可能长达1s。因此,fastmap仅在快速和大型闪存设备上有意义 否则完全扫描会花费太长时间。例如:在 4GiB NAND 上 芯片 完全扫描需要几秒钟,而快速连接需要不到 一秒钟。

备注

启用fatmap并不能保证每个附加过程都会在最佳时间内完成 。在某些情况下,仍然需要完全扫描。 这可能在两种情况下发生:
(i) 如果在fastmap时发生意外重新启动 写入闪存
(ii) UBI 在写入fatmap时用完 PEB。 如果写入时发生大量 I/O 错误,则可能会发生后一种情况, UBI找不到足够的可用PEB。


http://www.ppmy.cn/news/73110.html

相关文章

Mybatis Plus实现乐观锁

文章目录 1 概念2 实现思路3 实现步骤步骤1:数据库表添加列步骤2:在模型类中添加对应的属性步骤3:添加乐观锁的拦截器步骤4:执行更新操作 1 概念 在讲解乐观锁之前,我们还是先来分析下问题: 业务并发现象带来的问题 : 秒杀 假如有100个商品或者票在出售&#xff…

腾讯出行服务,让你见证城市出行跃迁

代驾行业市场有多大?随着疫情防控进入新常态,代驾行业也随之回暖,代驾需求呈现“V”型反弹,单月总订单量已经超过疫前水平,并有望创历史新高。 为什么这样说呢?下面就跟指针跃动来聊聊,腾讯出行服务&#…

plan路径优化,路径平滑

plan路径优化,路径平滑 //欧氏距离double global_planner::euclidean_distance(const geometry_msgs::Point& p1, const geometry_msgs::Point& p2) {double dx = p1.x - p2.x;double dy = p1.y - p2.y;return std::sqrt(dx * dx + dy * dy);} //插入中间点void glob…

如何在海量、庞杂、混合的数据中发现价值?

数字时代,数据上升为国家战略,数据成为重要的生产要素和资产,得到了越来越多企业的重视,也成为企业数字化转型的重要抓手。据IDC中国预测,2025年中国大数据生产量有望增长至48.6ZB。 随着越来越大的数据量&#xff0c…

Java --- redis7的缓存淘汰策略

目录 一、redis内存查看与设置 二、redis的数据删除方式 三、redis缓存淘汰策略 一、redis内存查看与设置 查看redis最大占用内存: redis默认内存使用: 不设置最大内存大小或设置为0,在64位操作系统下不限制内存大小,32位操作系…

【渗透测试】web日志、linux命令、常用知识

文章目录 web日志分析基础知识1. 编码2. 解码工具3. 数据提交方式4. 常见脚本语言5. 日志还原 分析日志1. 分析日志的目的2. 攻击出现的位置3. 攻击常见的语句4. 攻击常见的特点5. 攻击日志分析流程 相关linux命令常用命令系统状态检测命令工作目录切换命令文本文件编辑命令文件…

可持续能源技术具有改变世界的潜力,并且已经在多个方面展现出积极的影响。

可持续能源技术的发展在当今全球面临的气候变化和能源安全挑战中扮演着至关重要的角色。我认为可持续能源技术具有改变世界的潜力,并且已经在多个方面展现出积极的影响。以下是我对此的观点: 1,可持续能源技术有助于减少对化石燃料的依赖 化…

【MFAC】基于紧格式动态线性化的无模型自适应控制(Matlab代码)

例题来源:侯忠生教授的《无模型自适应控制:理论与应用》(2013年科学出版社)。 👉对应书本 4.2 单输入单输出系统(SISO)紧格式动态线性化(CFDL)的无模型自适应控制(MFAC) 例题4.1 题目要求 matlab代码 clc; clear al…