linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/3] f2fs: avoid redundant call to has_not_enough_free_secs in f2fs_gc
@ 2013-01-30 13:47 Namjae Jeon
  2013-01-31  1:03 ` Jaegeuk Kim
  0 siblings, 1 reply; 3+ messages in thread
From: Namjae Jeon @ 2013-01-30 13:47 UTC (permalink / raw)
  To: jaegeuk.kim
  Cc: linux-fsdevel, linux-kernel, linux-f2fs-devel, Namjae Jeon,
	Namjae Jeon, Amit Sahrawat

From: Namjae Jeon <namjae.jeon@samsung.com>

After doing a write_checkpoint from garbage collection path if there is still
need to do more garbage collection, gc_more label is used to jump and start
the process again. And in that process, first step before getting victim is to
check if there are not enough free sections, which is already done before
doing a jump to gc_more. We can avoid the redundant call to check free
sections, by checking the gc_type flag which will remain FG_GC(value 1) under
this condition.

Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Signed-off-by: Amit Sahrawat <a.sahrawat@samsung.com>
---
 fs/f2fs/gc.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c
index 9b5d0aa..0dfdaa5 100644
--- a/fs/f2fs/gc.c
+++ b/fs/f2fs/gc.c
@@ -672,7 +672,7 @@ gc_more:
 	if (!(sbi->sb->s_flags & MS_ACTIVE))
 		goto stop;
 
-	if (has_not_enough_free_secs(sbi))
+	if (!gc_type && has_not_enough_free_secs(sbi))
 		gc_type = FG_GC;
 
 	if (!__get_victim(sbi, &segno, gc_type, NO_CHECK_TYPE))
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH 1/3] f2fs: avoid redundant call to has_not_enough_free_secs in f2fs_gc
  2013-01-30 13:47 [PATCH 1/3] f2fs: avoid redundant call to has_not_enough_free_secs in f2fs_gc Namjae Jeon
@ 2013-01-31  1:03 ` Jaegeuk Kim
  2013-01-31  1:10   ` Namjae Jeon
  0 siblings, 1 reply; 3+ messages in thread
From: Jaegeuk Kim @ 2013-01-31  1:03 UTC (permalink / raw)
  To: Namjae Jeon
  Cc: linux-fsdevel, linux-kernel, linux-f2fs-devel, Namjae Jeon,
	Amit Sahrawat

[-- Attachment #1: Type: text/plain, Size: 1348 bytes --]

2013-01-30 (수), 22:47 +0900, Namjae Jeon:
> From: Namjae Jeon <namjae.jeon@samsung.com>
> 
> After doing a write_checkpoint from garbage collection path if there is still
> need to do more garbage collection, gc_more label is used to jump and start
> the process again. And in that process, first step before getting victim is to
> check if there are not enough free sections, which is already done before
> doing a jump to gc_more. We can avoid the redundant call to check free
> sections, by checking the gc_type flag which will remain FG_GC(value 1) under
> this condition.
> 
> Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
> Signed-off-by: Amit Sahrawat <a.sahrawat@samsung.com>
> ---
>  fs/f2fs/gc.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c
> index 9b5d0aa..0dfdaa5 100644
> --- a/fs/f2fs/gc.c
> +++ b/fs/f2fs/gc.c
> @@ -672,7 +672,7 @@ gc_more:
>  	if (!(sbi->sb->s_flags & MS_ACTIVE))
>  		goto stop;
>  
> -	if (has_not_enough_free_secs(sbi))
> +	if (!gc_type && has_not_enough_free_secs(sbi))

I applied this patch with the following change:
	if (gc_type == BG_GC && has_not_enough_free_secs(sbi))

Thank you. :)

>  		gc_type = FG_GC;
>  
>  	if (!__get_victim(sbi, &segno, gc_type, NO_CHECK_TYPE))

-- 
Jaegeuk Kim
Samsung

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH 1/3] f2fs: avoid redundant call to has_not_enough_free_secs in f2fs_gc
  2013-01-31  1:03 ` Jaegeuk Kim
@ 2013-01-31  1:10   ` Namjae Jeon
  0 siblings, 0 replies; 3+ messages in thread
From: Namjae Jeon @ 2013-01-31  1:10 UTC (permalink / raw)
  To: jaegeuk.kim
  Cc: linux-fsdevel, linux-kernel, linux-f2fs-devel, Namjae Jeon,
	Amit Sahrawat

2013/1/31, Jaegeuk Kim <jaegeuk.kim@samsung.com>:
> 2013-01-30 (수), 22:47 +0900, Namjae Jeon:
>> From: Namjae Jeon <namjae.jeon@samsung.com>
>>
>> After doing a write_checkpoint from garbage collection path if there is
>> still
>> need to do more garbage collection, gc_more label is used to jump and
>> start
>> the process again. And in that process, first step before getting victim
>> is to
>> check if there are not enough free sections, which is already done before
>> doing a jump to gc_more. We can avoid the redundant call to check free
>> sections, by checking the gc_type flag which will remain FG_GC(value 1)
>> under
>> this condition.
>>
>> Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
>> Signed-off-by: Amit Sahrawat <a.sahrawat@samsung.com>
>> ---
>>  fs/f2fs/gc.c |    2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c
>> index 9b5d0aa..0dfdaa5 100644
>> --- a/fs/f2fs/gc.c
>> +++ b/fs/f2fs/gc.c
>> @@ -672,7 +672,7 @@ gc_more:
>>  	if (!(sbi->sb->s_flags & MS_ACTIVE))
>>  		goto stop;
>>
>> -	if (has_not_enough_free_secs(sbi))
>> +	if (!gc_type && has_not_enough_free_secs(sbi))
>
> I applied this patch with the following change:
> 	if (gc_type == BG_GC && has_not_enough_free_secs(sbi))
>
> Thank you. :)

Right!, Thanks Jaegeuk :)
>
>>  		gc_type = FG_GC;
>>
>>  	if (!__get_victim(sbi, &segno, gc_type, NO_CHECK_TYPE))
>
> --
> Jaegeuk Kim
> Samsung
>
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2013-01-31  1:10 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-01-30 13:47 [PATCH 1/3] f2fs: avoid redundant call to has_not_enough_free_secs in f2fs_gc Namjae Jeon
2013-01-31  1:03 ` Jaegeuk Kim
2013-01-31  1:10   ` Namjae Jeon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).