Hello,
Sorry for the images on the ML.
If I wanted to change my setup instead, is there a tested and working version of gcc for xencov features on xen stable-4.16?
(I read GCC 3.4 or later in the documentation).
Cheers,
Carmine Cesarano
(moving the discussion to xen-devel)
On 28/06/2022 16:32, Carmine Cesarano wrote:
> Hi,
Hello,
Please refrain to top-post and/or post images on the ML. If you need to
share an image, then please upload them somewhere else.
> I made two further attempts, first by compiling xen and xen-tools with gcc 10 and second with gcc 7, getting the same problem.
>
> By running “xencov reset”, with with both compilers, the line of code associated with the crash is:
Discussing with Andrew Cooper on IRC, it looks like the problem is
because Xen and GCC disagrees on the format. There are newer format that
Xen doesn't understand.
If you are interested to support GCOV on your setup, then I would
suggest to look at the documentation and/or look at what Linux is doing
for newer compiler.
>
> * /xen/xen/common/coverage/gcc_4_7.c:123
> By running “xencov read”, I get two different behaviors with the two compilers:
>
> * /xen/xen/common/coverage/gcc_4_7.c:165 [GCC 11]
> * /xen/xen/common/coverage/gcov.c:131 [GCC 7]
>
> Attached are the logs captured with a serial port.
>
> Cheers,
>
> Carmine Cesarano
> Da: Julien Grall<mailto:julien@xxxxxxx>
> Inviato: lunedì 27 giugno 2022 14:42
> A: Carmine Cesarano<mailto:c.cesarano@xxxxxxxxxx>
> Oggetto: Re: R: Crash when using xencov
>
> Hello,
>
> You seemed to have removed xen-users from the CC list. Please keep it in
> CC unless the discussion needs to private.
>
> Also, please avoid top-posting.
>
> On 27/06/2022 13:36, Carmine Cesarano wrote:
>> Yes, i mean stable-4.16. Below the logs after running "xencov reset". The situation for "xencov read" is similar.
>>
>> (XEN) ----[ Xen-4.16.2-pre x86_64 debug=y gcov=y Not tainted ]----
>> (XEN) CPU: 0
>> (XEN) RIP: e008:[<ffff82d040257bd2>] gcov_info_reset+0x87/0xa9
>> (XEN) RFLAGS: 0000000000010202 CONTEXT: hypervisor (d0v0)
>> (XEN) rax: 0000000000000000 rbx: ffff82d04056bdc0 rcx: 00000000000c000b
>> (XEN) rdx: 0000000000000000 rsi: 0000000000000001 rdi: ffff82d04056bdc0
>> (XEN) rbp: ffff83023a7e7cb0 rsp: ffff83023a7e7c88 r8: 7fffffffffffffff
>> (XEN) r9: deadbeefdeadf00d r10: 0000000000000000 r11: 0000000000000000
>> (XEN) r12: 0000000000000001 r13: ffff82d04056be28 r14: 0000000000000000
>> (XEN) r15: ffff82d04056bdc0 cr0: 0000000080050033 cr4: 0000000000172620
>> (XEN) cr3: 000000017ea0b000 cr2: 0000000000000000
>> (XEN) fsb: 00007fc0fb0ca200 gsb: ffff88807b400000 gss: 0000000000000000
>> (XEN) ds: 0000 es: 0000 fs: 0000 gs: 0000 ss: e010 cs: e008
>> (XEN) Xen code around <ffff82d040257bd2> (gcov_info_reset+0x87/0xa9):
>> (XEN) 1d 44 89 f0 49 8b 57 70 <4c> 8b 24 c2 49 83 c4 18 48 83 05 a6 81 4c 00 01
>> (XEN) Xen stack trace from rsp=ffff83023a7e7c88:
>> (XEN) ffff82d04056bdc0 0000000000000001 ffff82d04070f180 0000000000000001
>> (XEN) 0000000000000000 ffff83023a7e7cc8 ffff82d040257a6a ffff83023a7e7db0
>> (XEN) ffff83023a7e7ce8 ffff82d040257547 ffff83023a7e7fff ffff83023a7e7fff
>> (XEN) ffff83023a7e7e58 ffff82d040255d5f ffff83023a7e7d68 ffff82d0403b5e8b
>> (XEN) 000000000017d5b2 0000000000000000 ffff83023a6b5000 0000000000000000
>> (XEN) 00007fc0fb348010 800000017ea0e127 0000000000000202 ffff82d040399fd8
>> (XEN) 0000000000005a40 ffff83023a7e7d68 0000000000000206 ffff82e002fab640
>> (XEN) ffff83023a7e7e58 ffff82d0403bb29d ffff83023a69f000 000000003a7e7fff
>> (XEN) 000000017ea0f067 0000000000000000 000000000017d5b2 000000000017d5b2
>> (XEN) 0000001400000014 0000000000000002 ffffffffffffffff 0000000000000000
>> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000
>> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000
>> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000
>> (XEN) 0000000000000000 ffff83023a7e7ef8 0000000000000001 ffff83023a69f000
>> (XEN) deadbeefdeadf00d ffff82d04025579d ffff83023a7e7ee8 ffff82d040387f62
>> (XEN) 00007fc0fb348010 deadbeefdeadf00d deadbeefdeadf00d deadbeefdeadf00d
>> (XEN) deadbeefdeadf00d ffff83023a7e7fff ffff82d0403b2c99 ffff83023a7e7eb8
>> (XEN) ffff82d04038214c ffff83023a69f000 ffff83023a7e7ed8 ffff83023a69f000
>> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000
>> (XEN) 00007cfdc58180e7 ffff82d0404392ae 0000000000000000 ffff88800f484c00
>> (XEN) Xen call trace:
>> (XEN) [<ffff82d040257bd2>] R gcov_info_reset+0x87/0xa9
>
> Thanks! There are multiple versions of gcov_info_reset() in the tree.
> The one used will depend on the compiler you are using.
>
> Can you use addr2line (or gdb) to find out the file and line of code
> associated with the crash?
>
> For addr2line you could do:
>
> addr2line -e xen-syms 0xffff82d040257bd2
Cheers,
--
Julien Grall