> -----Original Message-----
> From: He YunLei [mailto:[email protected]]
> Sent: Wednesday, September 09, 2015 7:54 AM
> To: Chao Yu
> Cc: [email protected]; [email protected]; 
> [email protected]
> Subject: Re: [f2fs-dev] [PATCH] f2fs: add a judgment in add_discard_addrs
> 
> On 2015/9/8 19:14, Chao Yu wrote:
> > Hi Yunlei,
> >
> >> -----Original Message-----
> >> From: Yunlei He [mailto:[email protected]]
> >> Sent: Tuesday, September 08, 2015 6:51 PM
> >> To: [email protected]; [email protected]; 
> >> [email protected]
> >> Cc: [email protected]; Yunlei He
> >> Subject: [f2fs-dev] [PATCH] f2fs: add a judgment in add_discard_addrs
> >>
> >> CP_DISCARD traverse all segments in fstrim_range to add small discards,
> >> it is better to select entry->len bigger than trim_minlen.
> >
> > If we mount with 'discard' option, f2fs will trigger real-time discard
> > when do checkpoint. If we add judgment condition here, fragmented invalid
> > blocks will not be discarded since we stop adding them in pending list
> > through __add_discard_entry.
> 
> This judgment condition is only valid for cp reason CP_DISCARD, and has no 
> influence
> to other checkpoint. The process of fstrim adds all invalid blocks in pending 
> list and
> deletes entries which len < trim_minlen when issue discard. Can we do the 
> selection
> when added?

__add_discard_entry will try to merge small discards in pending list, and 
merged discard
may be the eligible candidate, so we'd better not skip that.

Thanks,

> 
> Thanks,
> 
> >
> > Thanks,
> >
> >>
> >> Signed-off-by: Yunlei He <[email protected]>
> >> ---
> >>   fs/f2fs/segment.c | 3 ++-
> >>   1 file changed, 2 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c
> >> index 78e6d06..a0dab7a 100644
> >> --- a/fs/f2fs/segment.c
> >> +++ b/fs/f2fs/segment.c
> >> @@ -599,7 +599,8 @@ static void add_discard_addrs(struct f2fs_sb_info 
> >> *sbi, struct cp_control
> >> *cpc)
> >>                    break;
> >>
> >>            end = __find_rev_next_zero_bit(dmap, max_blocks, start + 1);
> >> -          __add_discard_entry(sbi, cpc, se, start, end);
> >> +          if(force && cpc->trim_minlen >= (end - start))
> >> +                  __add_discard_entry(sbi, cpc, se, start, end);
> >>    }
> >>   }
> >>
> >> --
> >> 1.9.1
> >
> >
> >


------------------------------------------------------------------------------
Monitor Your Dynamic Infrastructure at Any Scale With Datadog!
Get real-time metrics from all of your servers, apps and tools
in one place.
SourceForge users - Click here to start your Free Trial of Datadog now!
http://pubads.g.doubleclick.net/gampad/clk?id=241902991&iu=/4140
_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to