0%

f2fs gc

vnote_backup_file_826537664 /home/mi/Documents/backup/VnoteBook/OTA相关/f2fs gc.md

1. f2fs gc

do_garbage_collect
-> gc_data_segment
-> move_data_page
-> f2fs_pin_file_control
-> stat_inc_seg_count

解密map

umi:/data/media/0/downloaded_rom # sha1sum /cache/recovery/block.map
a31f2e057e6a02fc64f55dedd3e69ed71c2c4821 /cache/recovery/block.map

初次解密后

umi:/data/media/0/downloaded_rom # sha1sum miui_UMI_9.11.18_6d674ad5a9_10.0.zip
631b3f61f9ea85911d354c277c98f9fcdb56b0bc miui_UMI_9.11.18_6d674ad5a9_10.0.zip

recovery会更改?
-rw-rw-r– 1 media_rw media_rw 2594048280 2019-11-18 10:14 miui_UMI_9.11.18_6d674ad5a9_10.0.zip
sha1sum miui_UMI_9.11.18_6d674ad5a9_10.0.zip
parse_ld_lib_path (null)
6fcdd51f751fe1a19af20c70302575b3fdb70086 miui_UMI_9.11.18_6d674ad5a9_10.0.zip

原始

[$] -> sha1sum ~/Downloads/miui_UMI_9.11.18_6d674ad5a9_10.0.zip
88abea31fe641216b7a2659a6e63f5c4d619efaa /home/mi/Downloads/miui_UMI_9.11.18_6d674ad5a9_10.0.zip

recovery 初始block.map
88abea31fe641216b7a2659a6e63f5c4d619efaa

Get package’s sha bay MemMapping.
sha1: 88abea31fe641216b7a2659a6e63f5c4d619efaa

pin_file 存到文件系统的扩展属性中
[ 34.256381] F2FS-fs (dm-4): f2fs_pin_file_control: Enable GC = ino 204c after 801 GC trials

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
unsigned int segno = start_segno;
unsigned int end_segno = start_segno + sbi->segs_per_sec;
for (segno = start_segno; segno < end_segno; segno++) {
...
unsigned char type = IS_DATASEG(get_seg_entry(sbi, segno)->type) ?
SUM_TYPE_DATA : SUM_TYPE_NODE;
if (type == SUM_TYPE_NODE)
submitted += gc_node_segment(sbi, sum->entries, segno,
gc_type);
else
submitted += gc_data_segment(sbi, sum->entries, gc_list,
segno, gc_type);

for (off = 0; off < sbi->blocks_per_seg; off++, entry++) {
inode = find_gc_inode(gc_list, dni.ino);
if(inode) {
if (f2fs_post_read_required(inode))
err = move_data_block(inode, start_bidx,
gc_type, segno, off);

}


}
}