diff mbox series

[1/1] btrfs: tests: remove unnecessary oom message

Message ID 20210617083053.1064-1-thunder.leizhen@huawei.com (mailing list archive)
State New, archived
Headers show
Series [1/1] btrfs: tests: remove unnecessary oom message | expand

Commit Message

Zhen Lei June 17, 2021, 8:30 a.m. UTC
Fixes scripts/checkpatch.pl warning:
WARNING: Possible unnecessary 'out of memory' message

Remove it can help us save a bit of memory.

Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
---
 fs/btrfs/tests/extent-io-tests.c | 1 -
 1 file changed, 1 deletion(-)

Comments

David Sterba June 17, 2021, 8:35 p.m. UTC | #1
On Thu, Jun 17, 2021 at 04:30:53PM +0800, Zhen Lei wrote:
> Fixes scripts/checkpatch.pl warning:
> WARNING: Possible unnecessary 'out of memory' message
> 
> Remove it can help us save a bit of memory.

Well, we have a few more messages in tests regarding failed memory
allocations.  Though I've never seen one in practice, I think it's not
a big deal to have that one here as well. The failures in the testsuite
are intentionally verbose and saving a few bytes in optional development
feature hardly bothers anyone.

Where bytes can be saved are error messages for the same type of error,
that I've implemented in the past, see file fs/btrfs/tests/btrfs-tests.c
array test_error that maps enums to strings.
Zhen Lei June 18, 2021, 2:33 a.m. UTC | #2
On 2021/6/18 4:35, David Sterba wrote:
> On Thu, Jun 17, 2021 at 04:30:53PM +0800, Zhen Lei wrote:
>> Fixes scripts/checkpatch.pl warning:
>> WARNING: Possible unnecessary 'out of memory' message
>>
>> Remove it can help us save a bit of memory.
> 
> Well, we have a few more messages in tests regarding failed memory
> allocations.  Though I've never seen one in practice, I think it's not
> a big deal to have that one here as well. The failures in the testsuite
> are intentionally verbose and saving a few bytes in optional development
> feature hardly bothers anyone.

The calltrace of the OOM message contains all the information printed by
test_err() here. I don't think anyone wants to see a bunch of unhelpful tips
when locating an OOM problem.

> 
> Where bytes can be saved are error messages for the same type of error,

It also saves a dozen bytes of binary code.

> that I've implemented in the past, see file fs/btrfs/tests/btrfs-tests.c
> array test_error that maps enums to strings.

As mentioned above, I don't think these "no memory" strings are necessary,
unless the rest of the test can continue to run healthy. Otherwise, no one trusts
the test results in the OOM situation. They're going to locate the OOM problem
first, and these information are pointless.

> 
> .
>
Qu Wenruo June 18, 2021, 5:58 a.m. UTC | #3
On 2021/6/18 上午10:33, Leizhen (ThunderTown) wrote:
>
>
> On 2021/6/18 4:35, David Sterba wrote:
>> On Thu, Jun 17, 2021 at 04:30:53PM +0800, Zhen Lei wrote:
>>> Fixes scripts/checkpatch.pl warning:
>>> WARNING: Possible unnecessary 'out of memory' message
>>>
>>> Remove it can help us save a bit of memory.
>>
>> Well, we have a few more messages in tests regarding failed memory
>> allocations.  Though I've never seen one in practice, I think it's not
>> a big deal to have that one here as well. The failures in the testsuite
>> are intentionally verbose and saving a few bytes in optional development
>> feature hardly bothers anyone.
>
> The calltrace of the OOM message contains all the information printed by
> test_err() here. I don't think anyone wants to see a bunch of unhelpful tips
> when locating an OOM problem.

This only get enabled for btrfs developers, in production environment
would enable CONFIG_BTRFS_FS_RUN_SANITY_TESTS=y.

Thus this error message are only for btrfs developers.

And I'm 100% sure you won't need to investigate such OOM problem, nor
even see it.

>
>>
>> Where bytes can be saved are error messages for the same type of error,
>
> It also saves a dozen bytes of binary code.

It won't make any different as you won't enable that config.

Thanks,
Qu
>
>> that I've implemented in the past, see file fs/btrfs/tests/btrfs-tests.c
>> array test_error that maps enums to strings.
>
> As mentioned above, I don't think these "no memory" strings are necessary,
> unless the rest of the test can continue to run healthy. Otherwise, no one trusts
> the test results in the OOM situation. They're going to locate the OOM problem
> first, and these information are pointless. >
>>
>> .
>>
>
Qu Wenruo June 18, 2021, 6:05 a.m. UTC | #4
On 2021/6/18 下午1:58, Qu Wenruo wrote:
>
>
> On 2021/6/18 上午10:33, Leizhen (ThunderTown) wrote:
>>
>>
>> On 2021/6/18 4:35, David Sterba wrote:
>>> On Thu, Jun 17, 2021 at 04:30:53PM +0800, Zhen Lei wrote:
>>>> Fixes scripts/checkpatch.pl warning:
>>>> WARNING: Possible unnecessary 'out of memory' message
>>>>
>>>> Remove it can help us save a bit of memory.
>>>
>>> Well, we have a few more messages in tests regarding failed memory
>>> allocations.  Though I've never seen one in practice, I think it's not
>>> a big deal to have that one here as well. The failures in the testsuite
>>> are intentionally verbose and saving a few bytes in optional development
>>> feature hardly bothers anyone.
>>
>> The calltrace of the OOM message contains all the information printed by
>> test_err() here. I don't think anyone wants to see a bunch of
>> unhelpful tips
>> when locating an OOM problem.
>
> This only get enabled for btrfs developers, in production environment
> would enable CONFIG_BTRFS_FS_RUN_SANITY_TESTS=y.
>
> Thus this error message are only for btrfs developers.
>
> And I'm 100% sure you won't need to investigate such OOM problem, nor
> even see it.
>
>>
>>>
>>> Where bytes can be saved are error messages for the same type of error,
>>
>> It also saves a dozen bytes of binary code.
>
> It won't make any different as you won't enable that config.
>
> Thanks,
> Qu
>>
>>> that I've implemented in the past, see file fs/btrfs/tests/btrfs-tests.c
>>> array test_error that maps enums to strings.
>>
>> As mentioned above, I don't think these "no memory" strings are
>> necessary,
>> unless the rest of the test can continue to run healthy. Otherwise, no
>> one trusts
>> the test results in the OOM situation. They're going to locate the OOM
>> problem
>> first, and these information are pointless. >

And nope, it's not only OOM can cause the selftest to fail, but also
error injection.

I guess you never ran error injection tests for filesystems.

Under most case, we inject error with specific call chain, but sometimes
without any call chain specification, error injection may find some
corner cases we're unaware of.

If by chance the injected memory allocation failure happens during
selftest, there will be *NO* OOM dump at all.

In that case, have a good luck investigating why selftest fails.


Your words make sense for common path, but next time before sending such
patches to earn your KPI, please dig a little deeper to understand the
context.

Thanks,
Qu

>>>
>>> .
>>>
>>
David Sterba June 23, 2021, 8:41 p.m. UTC | #5
On Fri, Jun 18, 2021 at 02:05:59PM +0800, Qu Wenruo wrote:
> On 2021/6/18 下午1:58, Qu Wenruo wrote:
> > On 2021/6/18 上午10:33, Leizhen (ThunderTown) wrote:
> >> On 2021/6/18 4:35, David Sterba wrote:
> >>> On Thu, Jun 17, 2021 at 04:30:53PM +0800, Zhen Lei wrote:
> >>>> Fixes scripts/checkpatch.pl warning:
> >>>> WARNING: Possible unnecessary 'out of memory' message
> >>>>
> >>>> Remove it can help us save a bit of memory.
> >>>
> >>> Well, we have a few more messages in tests regarding failed memory
> >>> allocations.  Though I've never seen one in practice, I think it's not
> >>> a big deal to have that one here as well. The failures in the testsuite
> >>> are intentionally verbose and saving a few bytes in optional development
> >>> feature hardly bothers anyone.
> >>
> >> The calltrace of the OOM message contains all the information printed by
> >> test_err() here. I don't think anyone wants to see a bunch of
> >> unhelpful tips
> >> when locating an OOM problem.
> >
> > This only get enabled for btrfs developers, in production environment
> > would enable CONFIG_BTRFS_FS_RUN_SANITY_TESTS=y.
> >
> > Thus this error message are only for btrfs developers.
> >
> > And I'm 100% sure you won't need to investigate such OOM problem, nor
> > even see it.
> >
> >>> Where bytes can be saved are error messages for the same type of error,
> >>
> >> It also saves a dozen bytes of binary code.
> >
> > It won't make any different as you won't enable that config.
> >
> >>> that I've implemented in the past, see file fs/btrfs/tests/btrfs-tests.c
> >>> array test_error that maps enums to strings.
> >>
> >> As mentioned above, I don't think these "no memory" strings are
> >> necessary,
> >> unless the rest of the test can continue to run healthy. Otherwise, no
> >> one trusts
> >> the test results in the OOM situation. They're going to locate the OOM
> >> problem
> >> first, and these information are pointless. >
> 
> And nope, it's not only OOM can cause the selftest to fail, but also
> error injection.
> 
> I guess you never ran error injection tests for filesystems.
> 
> Under most case, we inject error with specific call chain, but sometimes
> without any call chain specification, error injection may find some
> corner cases we're unaware of.
> 
> If by chance the injected memory allocation failure happens during
> selftest, there will be *NO* OOM dump at all.

Yeah, a hard OOM won't probably happen and the allocations can fail for
other valid reasons.  The error message in the logs, with the ERROR
message level is clear and helpful. Saving a few bytes here does not
make much sense.
diff mbox series

Patch

diff --git a/fs/btrfs/tests/extent-io-tests.c b/fs/btrfs/tests/extent-io-tests.c
index 99b791b931d7..7655672752ad 100644
--- a/fs/btrfs/tests/extent-io-tests.c
+++ b/fs/btrfs/tests/extent-io-tests.c
@@ -393,7 +393,6 @@  static int test_eb_bitmaps(u32 sectorsize, u32 nodesize)
 
 	bitmap = kmalloc(nodesize, GFP_KERNEL);
 	if (!bitmap) {
-		test_err("couldn't allocate test bitmap");
 		ret = -ENOMEM;
 		goto out;
 	}