lkml.org 
[lkml]   [2021]   [Mar]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH v2] f2fs: fix to avoid touching checkpointed data in get_victim()
From
Date
On 2021/3/25 7:49, Jaegeuk Kim wrote:
> On 03/24, Chao Yu wrote:
>> In CP disabling mode, there are two issues when using LFS or SSR | AT_SSR
>> mode to select victim:
>>
>> 1. LFS is set to find source section during GC, the victim should have
>> no checkpointed data, since after GC, section could not be set free for
>> reuse.
>>
>> Previously, we only check valid chpt blocks in current segment rather
>> than section, fix it.
>>
>> 2. SSR | AT_SSR are set to find target segment for writes which can be
>> fully filled by checkpointed and newly written blocks, we should never
>> select such segment, otherwise it can cause panic or data corruption
>> during allocation, potential case is described as below:
>>
>> a) target segment has 128 ckpt valid blocks
>> b) GC migrates 'n' (n < 512) valid blocks to other segment (segment is
>> still in dirty list)

I missed to change 128 to n, so comments should be updated as below:

a) target segment has 'n' (n < 512) ckpt valid blocks
b) GC migrates 'n' valid blocks to other segment (segment is still
in dirty list)

Thanks,

>> c) GC migrates '512 - n' blocks to target segment (segment has 'n'
>> cp_vblocks and '512 - n' vblocks)
>> d) If GC selects target segment via {AT,}SSR allocator, however there
>> is no free space in targe segment.

\
 
 \ /
  Last update: 2021-03-26 08:34    [W:0.120 / U:1.276 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site