2012-05-13 11:04:11

by Namjae Jeon

[permalink] [raw]
Subject: [PATCH 2/2] fat: use fat_msg_ratelimit in fat__get_entry.

When application tried to lookup(opendir/readdir/stat) 5000 files in plugging usb device formatted by FAT, If unplugging usb device while lookup files, so many message occured like the below log. and currently it make app slow.
So this patch use fat_msg_ratelimit function about this message to decrease this messages.

#> ./file_lookup_testcase ./files_directory/
[ 57.768000] usb 2-1.4: USB disconnect, device number 4
[ 57.812000] FAT-fs (sda1): FAT read failed (blocknr 2631)
stat failed
[ 57.816000] FAT-fs (sda1): Directory bread(block 396816) failed
[ 57.824000] FAT-fs (sda1): Directory bread(block 396817) failed
: No such file [ 57.832000] FAT-fs (sda1): Directory bread(block 396818) failed
or directory
[ 57.840000] FAT-fs (sda1): Directory bread(block 396819) failed
[ 57.848000] FAT-fs (sda1): Directory bread(block 396820) failed
[ 57.860000] FAT-fs (sda1): Directory bread(block 396821) failed
[ 57.876000] FAT-fs (sda1): Directory bread(block 396822) failed
[ 57.892000] FAT-fs (sda1): Directory bread(block 396823) failed
[ 57.904000] FAT-fs (sda1): Directory bread(block 406824) failed
[ 57.920000] FAT-fs (sda1): Directory bread(block 406825) failed
[ 57.932000] FAT-fs (sda1): Directory bread(block 406826) failed
[ 57.940000] FAT-fs (sda1): Directory bread(block 406827) failed
[ 57.952000] FAT-fs (sda1): Directory bread(block 406828) failed
[ 57.960000] FAT-fs (sda1): Directory bread(block 406829) failed
[ 57.964000] FAT-fs (sda1): Directory bread(block 406830) failed
[ 57.972000] FAT-fs (sda1): Directory bread(block 406831) failed
[ 57.976000] FAT-fs (sda1): Directory bread(block 417696) failed
[ 57.984000] FAT-fs (sda1): Directory bread(block 417697) failed
[ 57.988000] FAT-fs (sda1): Directory bread(block 417698) failed
[ 57.996000] FAT-fs (sda1): Directory bread(block 417699) failed
[ 58.000000] FAT-fs (sda1): Directory bread(block 417700) failed
[ 58.004000] FAT-fs (sda1): Directory bread(block 417701) failed
[ 58.012000] FAT-fs (sda1): Directory bread(block 417702) failed
[ 58.016000] FAT-fs (sda1): Directory bread(block 417703) failed
[ 58.024000] FAT-fs (sda1): FAT read failed (blocknr 2631)
stat[ 58.028000] FAT-fs (sda1): Directory bread(block 396816) failed
[ 58.036000] FAT-fs (sda1): Directory bread(block 396817) failed
[ 58.040000] FAT-fs (sda1): Directory bread(block 396818) failed
[ 58.048000] FAT-fs (sda1): Directory bread(block 396819) failed
[ 58.052000] FAT-fs (sda1): Directory bread(block 396820) failed
[ 58.060000] FAT-fs (sda1): Directory bread(block 396821) failed
....
...
.
Signed-off-by: Namjae Jeon <[email protected]>
Signed-off-by: Amit Sahrawat <[email protected]>
---
fs/fat/dir.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/fat/dir.c b/fs/fat/dir.c
index aca191b..b2cdbf4 100644
--- a/fs/fat/dir.c
+++ b/fs/fat/dir.c
@@ -98,8 +98,8 @@ next:

*bh = sb_bread(sb, phys);
if (*bh == NULL) {
- fat_msg(sb, KERN_ERR, "Directory bread(block %llu) failed",
- (llu)phys);
+ fat_msg_ratelimit(sb, KERN_ERR, "Directory bread(block %llu) "
+ "failed", (llu)phys);
/* skip this block */
*pos = (iblock + 1) << sb->s_blocksize_bits;
goto next;
--
1.7.5.4


2012-05-13 14:24:41

by OGAWA Hirofumi

[permalink] [raw]
Subject: Re: [PATCH 2/2] fat: use fat_msg_ratelimit in fat__get_entry.

Namjae Jeon <[email protected]> writes:

> [ 58.052000] FAT-fs (sda1): Directory bread(block 396820) failed
> [ 58.060000] FAT-fs (sda1): Directory bread(block 396821) failed
> ....
> ...
> .
> Signed-off-by: Namjae Jeon <[email protected]>
> Signed-off-by: Amit Sahrawat <[email protected]>

Looks fine.

Acked-by: OGAWA Hirofumi <[email protected]>

Thanks.

> ---
> fs/fat/dir.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/fs/fat/dir.c b/fs/fat/dir.c
> index aca191b..b2cdbf4 100644
> --- a/fs/fat/dir.c
> +++ b/fs/fat/dir.c
> @@ -98,8 +98,8 @@ next:
>
> *bh = sb_bread(sb, phys);
> if (*bh == NULL) {
> - fat_msg(sb, KERN_ERR, "Directory bread(block %llu) failed",
> - (llu)phys);
> + fat_msg_ratelimit(sb, KERN_ERR, "Directory bread(block %llu) "
> + "failed", (llu)phys);
> /* skip this block */
> *pos = (iblock + 1) << sb->s_blocksize_bits;
> goto next;

--
OGAWA Hirofumi <[email protected]>

2012-05-13 15:46:54

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH 2/2] fat: use fat_msg_ratelimit in fat__get_entry.

On Sun, 2012-05-13 at 07:03 -0400, Namjae Jeon wrote:
> So this patch use fat_msg_ratelimit function about this message to decrease this messages.
[]
> diff --git a/fs/fat/dir.c b/fs/fat/dir.c
> index aca191b..b2cdbf4 100644
> --- a/fs/fat/dir.c
> +++ b/fs/fat/dir.c
> @@ -98,8 +98,8 @@ next:
>
> *bh = sb_bread(sb, phys);
> if (*bh == NULL) {
> - fat_msg(sb, KERN_ERR, "Directory bread(block %llu) failed",
> - (llu)phys);
> + fat_msg_ratelimit(sb, KERN_ERR, "Directory bread(block %llu) "
> + "failed", (llu)phys);

Please don't split format strings.
It's much harder to grep.

2012-05-13 16:07:16

by OGAWA Hirofumi

[permalink] [raw]
Subject: Re: [PATCH 2/2] fat: use fat_msg_ratelimit in fat__get_entry.

Joe Perches <[email protected]> writes:

> On Sun, 2012-05-13 at 07:03 -0400, Namjae Jeon wrote:
>> So this patch use fat_msg_ratelimit function about this message to decrease this messages.
> []
>> diff --git a/fs/fat/dir.c b/fs/fat/dir.c
>> index aca191b..b2cdbf4 100644
>> --- a/fs/fat/dir.c
>> +++ b/fs/fat/dir.c
>> @@ -98,8 +98,8 @@ next:
>>
>> *bh = sb_bread(sb, phys);
>> if (*bh == NULL) {
>> - fat_msg(sb, KERN_ERR, "Directory bread(block %llu) failed",
>> - (llu)phys);
>> + fat_msg_ratelimit(sb, KERN_ERR, "Directory bread(block %llu) "
>> + "failed", (llu)phys);
>
> Please don't split format strings.
> It's much harder to grep.

Please fight with 80 columns guys before requesting it.
--
OGAWA Hirofumi <[email protected]>

2012-05-13 16:21:59

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH 2/2] fat: use fat_msg_ratelimit in fat__get_entry.

On Mon, 2012-05-14 at 01:07 +0900, OGAWA Hirofumi wrote:
> Joe Perches <[email protected]> writes:
>
> > On Sun, 2012-05-13 at 07:03 -0400, Namjae Jeon wrote:
> >> So this patch use fat_msg_ratelimit function about this message to decrease this messages.
> > []
> >> diff --git a/fs/fat/dir.c b/fs/fat/dir.c
> >> index aca191b..b2cdbf4 100644
> >> --- a/fs/fat/dir.c
> >> +++ b/fs/fat/dir.c
> >> @@ -98,8 +98,8 @@ next:
> >>
> >> *bh = sb_bread(sb, phys);
> >> if (*bh == NULL) {
> >> - fat_msg(sb, KERN_ERR, "Directory bread(block %llu) failed",
> >> - (llu)phys);
> >> + fat_msg_ratelimit(sb, KERN_ERR, "Directory bread(block %llu) "
> >> + "failed", (llu)phys);
> >
> > Please don't split format strings.
> > It's much harder to grep.
>
> Please fight with 80 columns guys before requesting it.

That battle is long over.

from Documentation/CodingStyle:

Chapter 2: Breaking long lines and strings

[]

The limit on the length of lines is 80 columns and this is a strongly
preferred limit.
[]
However, never break user-visible strings such as
printk messages, because that breaks the ability to grep for them.

2012-05-13 16:39:17

by OGAWA Hirofumi

[permalink] [raw]
Subject: Re: [PATCH 2/2] fat: use fat_msg_ratelimit in fat__get_entry.

Joe Perches <[email protected]> writes:

>> > Please don't split format strings.
>> > It's much harder to grep.
>>
>> Please fight with 80 columns guys before requesting it.
>
> That battle is long over.
>
> from Documentation/CodingStyle:
>
> Chapter 2: Breaking long lines and strings
>
> []
>
> The limit on the length of lines is 80 columns and this is a strongly
> preferred limit.
> []
> However, never break user-visible strings such as
> printk messages, because that breaks the ability to grep for them.

Oh, I see. Namjae, can you adjust the patches to adjust for this?
I don't care either one, so you can add the following if you tweaked
patches.

Acked-by: OGAWA Hirofumi <[email protected]>

Thanks.
--
OGAWA Hirofumi <[email protected]>

2012-05-13 23:03:18

by Namjae Jeon

[permalink] [raw]
Subject: Re: [PATCH 2/2] fat: use fat_msg_ratelimit in fat__get_entry.

2012/5/14, OGAWA Hirofumi <[email protected]>:
> Joe Perches <[email protected]> writes:
>
>>> > Please don't split format strings.
>>> > It's much harder to grep.
>>>
>>> Please fight with 80 columns guys before requesting it.
>>
>> That battle is long over.
>>
>> from Documentation/CodingStyle:
>>
>> Chapter 2: Breaking long lines and strings
>>
>> []
>>
>> The limit on the length of lines is 80 columns and this is a strongly
>> preferred limit.
>> []
>> However, never break user-visible strings such as
>> printk messages, because that breaks the ability to grep for them.
>
> Oh, I see. Namjae, can you adjust the patches to adjust for this?
> I don't care either one, so you can add the following if you tweaked
> patches.
Hi. Ogawa.
Okay, I will send you v2 patches for this.
Thanks for your help.
>
> Acked-by: OGAWA Hirofumi <[email protected]>
>
> Thanks.
> --
> OGAWA Hirofumi <[email protected]>
>