> -----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
