Re: [f2fs-dev] [PATCH] Revert "f2fs: stop allocating pinned sections if EAGAIN happens"

From: Jaegeuk Kim
Date: Fri Sep 06 2024 - 18:53:00 EST


On 09/06, Chao Yu wrote:
> On 2024/9/6 16:31, Wu Bo wrote:
> > On Tue, Feb 20, 2024 at 02:50:11PM +0800, Chao Yu wrote:
> > > On 2024/2/8 16:11, Wu Bo wrote:
> > > > On 2024/2/5 11:54, Chao Yu wrote:
> > > > > How about calling f2fs_balance_fs() to double check and make sure there is
> > > > > enough free space for following allocation.
> > > > >
> > > > >         if (has_not_enough_free_secs(sbi, 0,
> > > > >             GET_SEC_FROM_SEG(sbi, overprovision_segments(sbi)))) {
> > > > >             f2fs_down_write(&sbi->gc_lock);
> > > > >             stat_inc_gc_call_count(sbi, FOREGROUND);
> > > > >             err = f2fs_gc(sbi, &gc_control);
> > > > >             if (err == -EAGAIN)
> > > > >                 f2fs_balance_fs(sbi, true);
> > > > >             if (err && err != -ENODATA)
> > > > >                 goto out_err;
> > > > >         }
> > > > >
> > > > > Thanks,
> > > >
> > > > f2fs_balance_fs() here will not change procedure branch and may just trigger another GC.
> > > >
> > > > I'm afraid this is a bit redundant.
> > >
> > > Okay.
> > >
> > > I guess maybe Jaegeuk has concern which is the reason to commit
> > > 2e42b7f817ac ("f2fs: stop allocating pinned sections if EAGAIN happens").
> >
> > Hi Jaegeuk,
> >
> > We occasionally receive user complaints about OTA failures caused by this issue.
> > Please consider merging this patch.

What about adding a retry logic here, as it's literally EAGAIN?

>
> I'm fine w/ this patch, but one another quick fix will be triggering
> background GC via f2fs ioctl after fallocate() failure, once
> has_not_enough_free_secs(, ovp_segs) returns false, fallocate() will
> succeed.

>
> Reviewed-by: Chao Yu <chao@xxxxxxxxxx>
>
> Thanks,
>
> >
> > Thanks
> >
> > >
> > > Thanks,
> > >
> > > >
> > > > >
> > >
> > >
> > > _______________________________________________
> > > Linux-f2fs-devel mailing list
> > > Linux-f2fs-devel@xxxxxxxxxxxxxxxxxxxxx
> > > https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel