On 2021/9/10 23:24, Daeho Jeong wrote:
On Fri, Sep 10, 2021 at 7:34 AM Daeho Jeong <daeh...@gmail.com> wrote:

On Thu, Sep 9, 2021 at 4:50 PM Chao Yu <c...@kernel.org> wrote:

On 2021/9/8 2:12, Daeho Jeong wrote:
On Fri, Sep 3, 2021 at 11:45 PM Chao Yu <c...@kernel.org> wrote:

On 2021/9/4 12:40, Daeho Jeong wrote:
As a per curseg field.

Maybe, we run into the same race condition issue you told before for
fragment_remained_chunk.
Could you clarify this more?

e.g.

F2FS_OPTION(sbi).fs_mode = FS_MODE_FRAGMENT_FIXED_BLK
fragment_chunk_size = 384
fragment_hole_size = 384

When creating hole:

- f2fs_allocate_data_block
     - __refresh_next_blkoff
       chunk locates in [0, 383] of current segment
       seg->next_blkoff = 384
       sbi->fragment_remained_chunk = 0
       then we will reset sbi->fragment_remained_chunk to 384
       and move seg->next_blkoff forward to 768 (384 + 384)
     - __has_curseg_space() returns false
     - allocate_segment() allocates new current segment

So, for such case that hole may cross two segments, hole size may be truncated
to left size of previous segment.

First, sbi->fragment_remained_chunk should be seg->fragment_remained_chunk.

Oh, correct.

I understand what you mean, so you mean we need to take the leftover
"hole" size over to the next segment?
In the example, the leftover hole size will be (384 - (512-384)). Do
you want to take this over to the next segment?

Yes, the left 256 block-sized hole should be created before next chunk
in next opened segment.


Chao,

Do you have any decent idea to pass the left hole size to the next
segment which will be allocated?

Daeho,

I guess we can record left hole size in seg->fragment_remained_hole.


I understand we need a new fragment_remained_hole variable in segment structure.
But, I mean.. How can we pass over the left hole size from the
previous segment to the next segment?


I mean we don't know which segment will be the next segment, do we?

Yeah, that's why I prefer to let __get_next_segno() return zero in fixed_block
fragment mode, then log header may have chance to allocate hole in contiguous
segments.

Thanks,


Thanks,

Thanks,


Thanks,

Thanks,




_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to