【F2FS LFS SSR】华为如何打造智能终端的有趣灵魂?(上)

17 篇文章 1 订阅
订阅专栏

“智能终端产品的灵魂是它所依赖的软件平台以及与之相匹配的服务和生态”华为讲师方卫庆在安卓绿色联盟开发者大会中讲到。

华为如何打造智能终端的有趣灵魂系列分为(上)(下)两个篇章,本篇将对华为天生快·一生快技术产生的背景和一系列技术组合拳的打法进行详细解读。

每⼀次体验提升都是复杂系统⼯程

image

端侧的用户体验是一项非常复杂的系统性功能整合。上图右侧是安卓原生系统架构示意图,左侧是EMUI架构图,每一次系统侧的改进都是从底层贯穿到上层的全面提升,具体架构从下往上包括:

芯片层,由CPU、GPU、DSP、NPU、基带、传感器、多媒体器件等组成;

内核层包括驱动层、硬件抽象层。其中硬件抽象层又包括进程管理、内存管理、文件系统、网络管理等组件;

中间件主要包括大量的C和C++库,以及Java虚拟机;

再往上是跟开发者息息相关的框架层,这一层提供了大量的基础核心功能,并为上层应用提供API接口;

最上层是应用层,包括安卓的原生应用、EMUI应用、开发者第三方应用。

天生快·一生快

1.安卓系统卡顿的原因:

①安卓系统管理松散

应用缺少约束,应用质量参差不齐。

②系统资源不足

应用没有优先级,应用链加剧资源消耗。

③存储空间碎片化

经常保存、删除文件,导致存储空间碎片化,存取文件速度下降。

④数据日益庞大

图片、联系人等数据量越来越大,数据库查询、搜索速度缓慢。

2.一系列技术的组合

image

针对四个主要问题,通过一系列的技术组合拳,达成天生快·一生快解决方案。

F2FS新型文件系统

F2FS是为闪存设计的文件系统,相比原有的EXT4文件系统,F2FS的随机写入优化效率提升60%,磁片碎片化的情况也大大改善。

F2FS的关键技术:

①数据分配管理算法

image

上图中,数据管理分为两个区域,元数据区域和数据区域。

元数据区域主要写入的是SIT、NAT等,采用的是就地写入的方案。

数据区采用的是异地写入的方案,节点信息和真正的数据信息都被写入数据区域,同时由于在数据区域使用异地写入,所以会引入SSR和LFS多点写入技术。

a.SSR和LFS协同配合技术

image

传统的SSR异地写入方式随机写入效率比较低,所以引入了新的LFS技术,它把原来的数据块标为“脏”的同时并不需要直接做垃圾回收,而是直接在“脏”的数据块上写数据。之所以不直接全都采用SSR技术是因为大量的使用SSR会造成磁盘碎片的密集。

所以这是一个协同技术,在空闲块少的情况下采用SSR技术;空闲块多,大于5%的情况下使用LFS技术,这样可以在寿命和性能之间达成很好的平衡。

b.多点写入技术

数据区采用多点写入的方式,这种方式的优点是将不同类型、不同热度的数据写入不同的段,提高垃圾回收效率。

image

②引入NAT

image

此技术的英文全称是Node Address Table,它是一个映射表。

传统的LFS文件系统会带来一个非常有趣的现象——滚雪球效应。首先,一旦改变了任何一个数据,它便会连续不断的递归到树状结果根部,引起间接索引点、直接索引点以及Checkpoint的改变,带来大量资源的浪费,引起后期垃圾回收效率降低。所以引入索引表最大的目的是为了减少这些节点。

建立映射表后,只需更改数据文件、直接节点信息、NAT和CheckPoint就可以完成工作,而不需要占用大量磁盘空间,大大减轻GC的负担。但是这种二级指针的结构会造成一个问题:NAT的寻址比较慢。

所以通过将NAT信息写到原数据区,很大程度上缓解寻址效率底的问题。

③其他关键技术

a.垃圾回收算法

对于F-GC直接使⽤ Greedy回收策略,选出需要回收的段 ;对于B-GC,如果空闲空间少,也会直接使用Greedy回收策略,而如果空闲空间多,则会使用CB策略。

b.异常掉电保护

使用Checkpoint机制来保证文件系统的一致性。F2FS维护了两份检查点:一个是稳定的,⼀个是正在使用。在恢复过程中,使用的是稳定版本。

3.FSTRIM上的优化解决原有设计的不足

image

FSTRIM是用户态触发的垃圾回收方案。它的触发机制是这样的:凌晨3点以后,设备充电并待机70分钟以上,就会触发垃圾回收的行为。

但有一个问题,比如有些中老年用户喜欢晚上关机充电,有些人喜欢白天充电,可能无法触发FSTRIM,磁盘碎片得不到清理,怎么解决这个问题? EMUI工程师调整了策略,在晚上11点之后,用户充电的同时待机半小时以上,就开始触发FSTRIM。

另外,针对习惯白天充电的用户,设计了另外一条机制:当手机72小时没有进行FSTRIM时,如果用户插上电源,待机半小时便开始FSTRIM。

而且工程师设计了实时可打断的机制,实现方式为:在Framework 层监控用户屏幕事件,一旦有屏幕idle结束,就会触发Stoptrim命令到Vold,然后Vold 发送Signal interrupt信号给trimtask来请求结束Trim,最后在kernel 层确认pending。

更精细的TRIM优化

image

LFSSR-ATO:“通过深组合几何嵌入和结构一致性规则化实现的光场空间超分辨率”存储库,CVPR 2020
05-25
LFSSR-ATO CVPR 2020论文的PyTorch实施:“通过深组合几何嵌入和结构一致性正则化实现的光场空间超分辨率”。 要求 Python 3.6 PyTorch 1.1 Matlab(用于培训/测试数据生成) 数据集 我们提供用于准备训练和测试数据的MATLAB代码。 请先下载光场数据集,然后将其放入LFData相应文件夹中。 演示版 要在本文中重现最终的SR重建结果,请运行: python demo_LFSSR.py --model_dir pretrained_models --save_dir results --scale 2 --test_dataset Kalantari --angular_num 7 --save_img 1 --crop 1 --feature_num 64 --layer_num 5 2 2 3 --layer_num_refine
F2FS技术拆解
内核工匠
01-22 6901
F2FS (Flash Friendly File System)是专门针对SSD、eMMC、UFS等闪存设备设计的文件系统。由三星工程师Jaegeuk Kim于2012年10月发布...
f2fs学习三: 文件系统初始化
guozhidixian的博客
04-04 1059
文件系统
标准卷积和可分离卷积_关于可分离卷积的介绍和文献综述
weixin_26749843的博客
10-07 1128
标准卷积和可分离卷积And why would you want to apply them in your machine learning projects.以及为什么要在机器学习项目中应用它们。 By Greta Elvestuen, PhD, Data Scientist consultant at Inmeta Inmeta数据科学家顾问Greta Elvestuen博士 Through...
f2fs系列文章——缓存summary写入磁盘的问题
WaterWin的博客
11-26 1316
    这篇文章讲述一下f2fs文件系统中缓存在内存中的f2fs_summary写入磁盘的问题,这个涉及到f2fs_summary写入磁盘的时机、位置以及curseg在do_checkpoint中的写入问题和mount的时候的恢复curseg的问题。     首先,对于curseg_info中的f2fs_summary_block有两种方式同步到page cache中。一种是在curseg_in...
用卷积滤波器matlab代码-LFSSR-SAS-PyTorch:“使用深度有效空间角可分离卷积的光场空间超分辨率”存储库,TIP2018
05-21
用卷积滤波器matlab代码LFSSR-SAS-PyTorch TIP 2018论文的PyTorch实施:“使用深度有效的空间角可分离卷积的光场空间超分辨率”。 您可以从找到原始的MATLAB代码。 用法 依存关系 Python 3.6 PyTorch 1.0 数据集 我们提供用于准备训练和测试数据的MATLAB代码。 请先下载光场数据集,然后将其放入LFData相应文件夹中。 注意:新的训练数据是通过双三次降采样生成的,而原始的训练数据是通过使用Box滤波器进行空间模糊然后进行抽取生成的。 演示版 usage: demo.py [-h] [--model_path MODEL_PATH] [--scale SCALE] [--test_dataset TEST_DATASET] [--angular_num ANGULAR_NUM] [--layer_num LAYER_NUM] [--save_img SAVE_IMG] optional arguments: -h, --help Show this help message and exit --model_path Model
【开源】F2FS技术拆解
Dayu_log的博客
01-11 1459
开源 FS
F2FS源码分析-1.1 [F2FS 元数据布局部分] F2FS文件系统的总体结构
Hubery的存储点滴
07-03 6867
总体介绍 F2FS全称为Flash Friendly File System,是专门为闪存设备设计的一个日志追加型文件系统(Append Logging File System)。相对于传统的日志型文件系统,F2FS在wandering tree和gc的高时间开销等问题,有一定的改进和优化。 wandering tree问题: 传统的LFS,在文件数据被更新或者写入到日志的末端的时候,指向文件...
横向对比EXT4,带你感受真实的Linux文件系统F2FS
热门推荐
Rethinking the Kernel
09-02 1万+
对于F2FS,官方文档和其他博主大都从原理和代码的角度来分析,我今天会从实战横向对比EXT4的视角,带你感受真实的F2FS
f2fs——新型flash友好文件系统gc部分源码分析
AO的博客
07-25 5529
1、F2FS数据布局   F2FS 将整个卷切分成大量的 Segments,每个 Segment 的大小是固定的2 MB。连续的若干个Segments 构成 Section,连续的若干个 Sections 构成 Zone。 F2FS 将整个卷切分成6个区域,除了超级块(Superblock,SB)外,其余每个区域都包含多个 Segments。 F2FS数据布局参考博客:http://blo
f2fs系列文章——do_checkpoint关于data summary的两种写入方式
WaterWin的博客
11-26 1104
    为了保存current segment的summary信息,f2fs在do_checkpoint的时候会调用会调用write_data_summaries和write_node_summaries将其sumamries信息写到page cache中然后随后同步到磁盘中,其中write_node_summaries也是只有在umount和fastboot的情况下才会调用。我们可以看到writ...
F2FS文件系统实现分析及其在移动设备上的优化
Fybon的专栏
12-16 2479
F2FS文件系统实现分析及其在移动设备上的优化
f2fs系列文章fsck(五)
WaterWin的博客
11-26 1642
    fsck_verify通过前面的检查结果来修正元数据。     首先是对nid的检查情况进行查看,f2fs_fsck中的nat_area_bitmap从开始的读取f2fs_nat_block中的所有的f2fs_nat_entry来记录所有有效的nid,但是在遍历的过程中在调用sanity_check_nid的时候已经将所有正常的nid都给clear掉了,所以在检查这个位图的时候,如果发现...
基于边缘计算的自动识别一体化结算电子秤(二)
最新发布
m0_62364527的博客
02-03 864
原来打算用esp32_cam来进行边缘计算,但这个方式另一个项目中用过有雷同,决定用imx6ull直接拍照片并进行base64编码并利用linux中的网络编程知识向百度果蔬识别接口发送图片数据并获取结果。目前分步骤实现了部分功能(尚未进行交叉编译与移植)。
f2fs系列文章gc
WaterWin的博客
11-26 2393
    这篇文章将讲述f2fs的gc,其主要的步骤应该是分为两步,首先select一个合适的section,然后将section中的数据全部迁移。       f2fs_gc:这个函数主要有两个函数调用gc线程和f2fs_balance_fs。首先检查super_block是否设置MS_ACTIVE,也就是super_block处于活动状态(目前不知道什么个状态),如果设置了就不做gc了。然后...
f2fs——FG_GC优化之从GREEDY算法修改为CAT算法并测试
AO的博客
08-01 1875
f2fs模块单独编译命令:make CONFIG_F2FS_FS=m -C /root/linux-3.14 M=/root/linux-3.14/fs/f2fs modules   原来编译kernel时直接将f2fs文件系统buildin了,重新将f2fs选择为module,再编译kernel。   sec_usage_check: section的使用时间检查,若是当前sectio
F2FS的sysfs调整文件系统参数
qq_36059308的博客
01-27 1392
F2FS的sysfs调整文件系统参数 在f2fs文件系统中,可以通过sysfs自定义文件系统的配置参数,例如gc_min_sleep_time(gc睡眠的最短时间),min_ipu_util(就地更新的最低文件系统利用率阈值)等等。这些参数在目录下linux\Documentation\ABI\testing\sysfs-fs-f2fs 有详细介绍。 启动f2fs文件系统后,会在系统目录 /sys/fs/f2fs/<disk>/ 下现实这些配置参数,用户可以通过cat 命令查看默认的参数值,并且
[原创] f2fs文件系统源代码分析 —— 基于3.8内核 (一)
weixin_30587025的博客
12-11 264
作者:高翔 <esxgx@163.com>本文著作权归作者所有,请在转载引用时保留原文网址。在全文开始,首先记录f2fs被3.8主线merge的mailing list:[GIT PULL] f2fs: request for tree inclusionhttps://lkml.org/lkml/2012/12/15/156让我们来看看这一个提交都有哪些内容https://git.k...
F2FS源码分析-4.2 [F2FS GC部分] Victim Segment的选择策略
Hubery的存储点滴
09-03 1281
victim segment的选择 在垃圾回收流程分析这一节提及到了gc会通过__get_victim函数去选择一个需要被gc的segment。怎么样的segment才适合被gc,而F2FS是如何实现这一个流程的呢? 本节对这部分源码进行分析。 我们首先分析__get_victim函数,如下所示: static int __get_victim(struct f2fs_sb_info *sbi, ...
Linux阅码场 - Linux内核月报(2020年07月)
宋宝华
08-10 1885
关于Linux内核月报Linux阅码场Linux阅码场内核月报栏目,是汇总当月Linux内核社区最重要的一线开发动态,方便读者们更容易跟踪Linux内核的最前沿发展动向。限于篇幅,只会对...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • python 之 with-as 5041
  • 【linux numa】 NUMA 绑核 4600
  • 【sed】sed命令详解+示例 4320
  • 【linux 绑核】CPU 绑核 3390
  • 【cmake】cmake使用教程(实操版) 3366

分类专栏

  • linux 17篇
  • c++11 10篇
  • ssd 1篇
  • SPDK 4篇
  • 计算机通用 4篇
  • C++开源 2篇
  • 工具类 4篇
  • raft 3篇
  • 数据库 1篇
  • 云存储 2篇
  • ceph 1篇
  • python 1篇

最新评论

  • mutex跟spinlock的区别

    mengnalisha_csdn: 最后一句总结给力,在还不能深刻体会二者区别的时候,就靠这句总结指引我coding了表情包

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • top命令中VIRT、RES和SHR的含义
  • C++ auto类型推导
  • c++中vector的用法详解
2023年14篇
2022年34篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

深圳SEO优化公司揭阳企业网站改版推荐青岛SEO按天收费推荐黔南如何制作网站报价泉州网站建设哪家好镇江外贸网站建设哪家好宿州企业网站制作南联关键词排名哪家好定西百姓网标王哪家好合肥网站seo优化推荐抚州百度爱采购哪家好上饶网站优化软件报价吕梁模板网站建设价格天水推广网站推荐三明SEO按天计费报价哈密阿里店铺托管哪家好菏泽网站优化按天扣费公司六安百度竞价哪家好徐州网站制作多少钱焦作网站推广方案多少钱贺州设计公司网站哪家好深圳网站设计报价兰州网站优化按天收费玉树推广网站报价遵义建设网站哪家好鹤壁seo网站优化公司威海网站推广报价鸡西百度竞价邢台网站改版晋城SEO按效果付费公司迪庆seo排名价格歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化