Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1315743 > unrolled thread
| Started by | Jaegeuk Kim <jaegeuk@kernel.org> |
|---|---|
| First post | 2016-01-23 21:20 +0100 |
| Last post | 2016-01-25 20:20 +0100 |
| Articles | 3 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
[PATCH 2/2] f2fs: fix to overcome inline_data floods Jaegeuk Kim <jaegeuk@kernel.org> - 2016-01-23 21:20 +0100
RE: [f2fs-dev] [PATCH 2/2] f2fs: fix to overcome inline_data floods Chao Yu <chao2.yu@samsung.com> - 2016-01-25 11:00 +0100
Re: [f2fs-dev] [PATCH 2/2] f2fs: fix to overcome inline_data floods Jaegeuk Kim <jaegeuk@kernel.org> - 2016-01-25 20:20 +0100
| From | Jaegeuk Kim <jaegeuk@kernel.org> |
|---|---|
| Date | 2016-01-23 21:20 +0100 |
| Subject | [PATCH 2/2] f2fs: fix to overcome inline_data floods |
| Message-ID | <qUcP7-81a-7@gated-at.bofh.it> |
The scenario is:
1. create lots of node blocks
2. sync
3. write lots of inline_data
-> got panic due to no free space
In that case, we should flush node blocks when writing inline_data in #3,
and trigger gc as well.
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
---
fs/f2fs/gc.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c
index 0204433..8686231 100644
--- a/fs/f2fs/gc.c
+++ b/fs/f2fs/gc.c
@@ -838,8 +838,15 @@ gc_more:
if (gc_type == BG_GC && has_not_enough_free_secs(sbi, sec_freed)) {
gc_type = FG_GC;
+ /*
+ * If there is no victim and no prefree segment but still not
+ * enough free sections, we should flush dent/node blocks and do
+ * garbage collections.
+ */
if (__get_victim(sbi, &segno, gc_type) || prefree_segments(sbi))
write_checkpoint(sbi, &cpc);
+ else if (has_not_enough_free_secs(sbi, 0))
+ write_checkpoint(sbi, &cpc);
}
if (segno == NULL_SEGNO && !__get_victim(sbi, &segno, gc_type))
--
2.6.3
[toc] | [next] | [standalone]
| From | Chao Yu <chao2.yu@samsung.com> |
|---|---|
| Date | 2016-01-25 11:00 +0100 |
| Subject | RE: [f2fs-dev] [PATCH 2/2] f2fs: fix to overcome inline_data floods |
| Message-ID | <qUM6g-20J-35@gated-at.bofh.it> |
| In reply to | #1315743 |
Hi Jaegeuk,
> -----Original Message-----
> From: Jaegeuk Kim [mailto:jaegeuk@kernel.org]
> Sent: Sunday, January 24, 2016 4:16 AM
> To: linux-kernel@vger.kernel.org; linux-fsdevel@vger.kernel.org;
> linux-f2fs-devel@lists.sourceforge.net
> Cc: Jaegeuk Kim
> Subject: [f2fs-dev] [PATCH 2/2] f2fs: fix to overcome inline_data floods
>
> The scenario is:
> 1. create lots of node blocks
> 2. sync
> 3. write lots of inline_data
> -> got panic due to no free space
>
> In that case, we should flush node blocks when writing inline_data in #3,
> and trigger gc as well.
>
> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
> ---
> fs/f2fs/gc.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c
> index 0204433..8686231 100644
> --- a/fs/f2fs/gc.c
> +++ b/fs/f2fs/gc.c
> @@ -838,8 +838,15 @@ gc_more:
>
> if (gc_type == BG_GC && has_not_enough_free_secs(sbi, sec_freed)) {
> gc_type = FG_GC;
> + /*
> + * If there is no victim and no prefree segment but still not
> + * enough free sections, we should flush dent/node blocks and do
> + * garbage collections.
> + */
> if (__get_victim(sbi, &segno, gc_type) || prefree_segments(sbi))
> write_checkpoint(sbi, &cpc);
> + else if (has_not_enough_free_secs(sbi, 0))
I think this condition make checkpoint been triggered more frequently,
could we trigger cp when dent/node block exceed some threshold?
Thanks,
> + write_checkpoint(sbi, &cpc);
> }
>
> if (segno == NULL_SEGNO && !__get_victim(sbi, &segno, gc_type))
> --
> 2.6.3
>
>
> ------------------------------------------------------------------------------
> Site24x7 APM Insight: Get Deep Visibility into Application Performance
> APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
> Monitor end-to-end web transactions and take corrective actions now
> Troubleshoot faster and improve end-user experience. Signup Now!
> http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140
> _______________________________________________
> Linux-f2fs-devel mailing list
> Linux-f2fs-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
[toc] | [prev] | [next] | [standalone]
| From | Jaegeuk Kim <jaegeuk@kernel.org> |
|---|---|
| Date | 2016-01-25 20:20 +0100 |
| Subject | Re: [f2fs-dev] [PATCH 2/2] f2fs: fix to overcome inline_data floods |
| Message-ID | <qUUQa-cl-27@gated-at.bofh.it> |
| In reply to | #1316364 |
Hi Chao,
On Mon, Jan 25, 2016 at 05:49:06PM +0800, Chao Yu wrote:
> Hi Jaegeuk,
>
> > -----Original Message-----
> > From: Jaegeuk Kim [mailto:jaegeuk@kernel.org]
> > Sent: Sunday, January 24, 2016 4:16 AM
> > To: linux-kernel@vger.kernel.org; linux-fsdevel@vger.kernel.org;
> > linux-f2fs-devel@lists.sourceforge.net
> > Cc: Jaegeuk Kim
> > Subject: [f2fs-dev] [PATCH 2/2] f2fs: fix to overcome inline_data floods
> >
> > The scenario is:
> > 1. create lots of node blocks
> > 2. sync
> > 3. write lots of inline_data
> > -> got panic due to no free space
> >
> > In that case, we should flush node blocks when writing inline_data in #3,
> > and trigger gc as well.
> >
> > Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
> > ---
> > fs/f2fs/gc.c | 7 +++++++
> > 1 file changed, 7 insertions(+)
> >
> > diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c
> > index 0204433..8686231 100644
> > --- a/fs/f2fs/gc.c
> > +++ b/fs/f2fs/gc.c
> > @@ -838,8 +838,15 @@ gc_more:
> >
> > if (gc_type == BG_GC && has_not_enough_free_secs(sbi, sec_freed)) {
> > gc_type = FG_GC;
> > + /*
> > + * If there is no victim and no prefree segment but still not
> > + * enough free sections, we should flush dent/node blocks and do
> > + * garbage collections.
> > + */
> > if (__get_victim(sbi, &segno, gc_type) || prefree_segments(sbi))
> > write_checkpoint(sbi, &cpc);
> > + else if (has_not_enough_free_secs(sbi, 0))
>
> I think this condition make checkpoint been triggered more frequently,
> could we trigger cp when dent/node block exceed some threshold?
This only happens when there is no victim, no prefree, and no enough free secs,
which is very corner case.
In addition, IMO, this condition is actually to resolve the inline_data issue.
Thanks,
>
> Thanks,
>
> > + write_checkpoint(sbi, &cpc);
> > }
> >
> > if (segno == NULL_SEGNO && !__get_victim(sbi, &segno, gc_type))
> > --
> > 2.6.3
> >
> >
> > ------------------------------------------------------------------------------
> > Site24x7 APM Insight: Get Deep Visibility into Application Performance
> > APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
> > Monitor end-to-end web transactions and take corrective actions now
> > Troubleshoot faster and improve end-user experience. Signup Now!
> > http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140
> > _______________________________________________
> > Linux-f2fs-devel mailing list
> > Linux-f2fs-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web