From: "Maíra Canal" <maira.canal@usp.br>
To: David Gow <davidgow@google.com>, Daniel Latypov <dlatypov@google.com>
Cc: Brendan Higgins <brendanhiggins@google.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
KUnit Development <kunit-dev@googlegroups.com>,
"open list:KERNEL SELFTEST FRAMEWORK"
<linux-kselftest@vger.kernel.org>,
Shuah Khan <skhan@linuxfoundation.org>
Subject: Re: [PATCH 2/2] kunit: add coverage_uml.config to enable GCOV on UML
Date: Fri, 24 Jun 2022 11:12:24 -0300 [thread overview]
Message-ID: <6e46976d-bcf3-e7fd-cd30-bc25c67c5518@usp.br> (raw)
In-Reply-To: <CABVgOSn_v8p2nRaioz2MK0FEV6UmzfHHFipiqy05d54y73XFzQ@mail.gmail.com>
On 6/24/22 04:55, 'David Gow' via KUnit Development wrote:
> On Fri, Jun 24, 2022 at 8:12 AM 'Daniel Latypov' via KUnit Development
> <kunit-dev@googlegroups.com> wrote:
>>
>> Now that kunit.py's --kunitconfig is repeatable, let's create a file to
>> hold the various options needed to enable coverage under UML.
>>
>> This can be used like so:
>> $ ./tools/testing/kunit/kunit.py run \
>> --kunitconfig=tools/testing/kunit/configs/all_tests_uml.config \
>> --kunitconfig=tools/testing/kunit/configs/coverage_uml.config \
>> --make_options=CC=/usr/bin/gcc-6
>>
>> which on my system is enough to get coverage working [1].
>>
It's great to see this coming to KUnit! As I was testing this series, I
wasn't able to generate the coverage stats with GCC11. I got a linking
error from ld:
ERROR:root:/usr/bin/ld:
/usr/lib/gcc/x86_64-redhat-linux/11/libgcov.a(_gcov.o): in function
`mangle_path':
(.text+0x19f0): multiple definition of `mangle_path';
fs/seq_file.o:/home/mairacanal/linux/.kunit/../fs/seq_file.c:441: first
defined here
collect2: error: ld returned 1 exit status
By changing the name of the function to `seq_mangle_path`, it is
possible to solve the linking error and run the tests. But, anyway, no
.gcda files are generated.
I checked out, and this is a known issue that was already discussed in
this series [1] (but I guess it didn't move on).
Is there any hope to see better UM support for gcov as using GCC6 is
quite uncommon nowadays?
[1]
https://lore.kernel.org/all/20210312095526.197739-1-johannes@sipsolutions.net/
Best regards,
- Maíra Canal
>> This is still a clunky command, but far better than before.
>>
>> [1] at the time of this commit, I get:
>> Overall coverage rate:
>> lines......: 11.6% (34112 of 295033 lines)
>> functions..: 15.3% (3721 of 24368 functions)
>>
>> Signed-off-by: Daniel Latypov <dlatypov@google.com>
>> ---
>
> Looks good to me: depending on whether or not we do something like
> [1], we should add a pci_uml.config as well.
>
> Alas, I don't have a working gcc 6 install anymore, so I wasn't able
> to test the coverage here, but I at least got an encouraging-looking
> error, and the change looks very sensible, so:
>
> Reviewed-by: David Gow <davidgow@google.com>
>
> Cheers,
> -- David
>
> [1] https://lore.kernel.org/linux-kselftest/20220622035326.759935-1-davidgow@google.com/
>
>
>> Documentation/dev-tools/kunit/running_tips.rst | 3 +--
>> tools/testing/kunit/configs/coverage_uml.config | 11 +++++++++++
>> 2 files changed, 12 insertions(+), 2 deletions(-)
>> create mode 100644 tools/testing/kunit/configs/coverage_uml.config
>>
>> diff --git a/Documentation/dev-tools/kunit/running_tips.rst b/Documentation/dev-tools/kunit/running_tips.rst
>> index c36f6760087d..205ea21c9cca 100644
>> --- a/Documentation/dev-tools/kunit/running_tips.rst
>> +++ b/Documentation/dev-tools/kunit/running_tips.rst
>> @@ -123,8 +123,7 @@ Putting it together into a copy-pastable sequence of commands:
>> .. code-block:: bash
>>
>> # Append coverage options to the current config
>> - $ echo -e "CONFIG_DEBUG_KERNEL=y\nCONFIG_DEBUG_INFO=y\nCONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y\nCONFIG_GCOV=y" >> .kunit/.kunitconfig
>> - $ ./tools/testing/kunit/kunit.py run
>> + $ ./tools/testing/kunit/kunit.py run --kunitconfig=.kunit/ --kunitconfig=tools/testing/kunit/configs/coverage_uml.config
>> # Extract the coverage information from the build dir (.kunit/)
>> $ lcov -t "my_kunit_tests" -o coverage.info -c -d .kunit/
>>
>> diff --git a/tools/testing/kunit/configs/coverage_uml.config b/tools/testing/kunit/configs/coverage_uml.config
>> new file mode 100644
>> index 000000000000..bacb77664fa8
>> --- /dev/null
>> +++ b/tools/testing/kunit/configs/coverage_uml.config
>> @@ -0,0 +1,11 @@
>> +# This config fragment enables coverage on UML, which is different from the
>> +# normal gcov used in other arches (no debugfs).
>> +# Example usage:
>> +# ./tools/testing/kunit/kunit.py run \
>> +# --kunitconfig=tools/testing/kunit/configs/all_tests_uml.config \
>> +# --kunitconfig=tools/testing/kunit/configs/coverage_uml.config
>> +
>> +CONFIG_DEBUG_KERNEL=y
>> +CONFIG_DEBUG_INFO=y
>> +CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y
>> +CONFIG_GCOV=y
>> --
>> 2.37.0.rc0.104.g0611611a94-goog
>>
>> --
>> You received this message because you are subscribed to the Google Groups "KUnit Development" group.
>> To unsubscribe from this group and stop receiving emails from it, send an email to kunit-dev+unsubscribe@googlegroups.com.
>> To view this discussion on the web visit https://groups.google.com/d/msgid/kunit-dev/20220624001247.3255978-2-dlatypov%40google.com.
>
next prev parent reply other threads:[~2022-06-24 14:13 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-24 0:12 [PATCH 1/2] kunit: tool: make --kunitconfig repeatable, blindly concat Daniel Latypov
2022-06-24 0:12 ` [PATCH 2/2] kunit: add coverage_uml.config to enable GCOV on UML Daniel Latypov
2022-06-24 7:55 ` David Gow
2022-06-24 14:12 ` Maíra Canal [this message]
2022-06-24 16:13 ` Daniel Latypov
2022-06-24 7:55 ` [PATCH 1/2] kunit: tool: make --kunitconfig repeatable, blindly concat David Gow
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=6e46976d-bcf3-e7fd-cd30-bc25c67c5518@usp.br \
--to=maira.canal@usp.br \
--cc=brendanhiggins@google.com \
--cc=davidgow@google.com \
--cc=dlatypov@google.com \
--cc=kunit-dev@googlegroups.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=skhan@linuxfoundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.