[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 2/2] xen: update CONFIG_DEBUG_INFO help text
On 07.03.23 16:14, Jan Beulich wrote: On 07.03.2023 16:02, Juergen Gross wrote:On 07.03.23 15:34, Jan Beulich wrote:On 07.03.2023 15:23, Juergen Gross wrote:On 07.03.23 15:18, Jan Beulich wrote:On 07.03.2023 15:04, Juergen Gross wrote:On 07.03.23 11:41, Jan Beulich wrote:On 07.03.2023 07:32, Juergen Gross wrote:--- a/xen/Kconfig.debug +++ b/xen/Kconfig.debug @@ -15,8 +15,11 @@ config DEBUG_INFO bool "Compile Xen with debug info" default DEBUG ---help--- - If you say Y here the resulting Xen will include debugging info - resulting in a larger binary image. + Say Y here if you want to build Xen with debug information. This + information is needed e.g. for doing crash dump analysis of the + hypervisor via the "crash" tool. + Saying Y will increase the size of xen-syms and the built EFI + binary.Largely fine with me, just one question: Why do you mention xen-syms by name, but then verbally describe xen.efi? And since, unlike for xen-syms,For xen-syms I couldn't find an easily understandable wording. I'd be fine with just saying "xen.efi".this affects the installed binary actually used for booting (which may be placed on a space constrained partition), it may be prudent to mention INSTALL_EFI_STRIP here (as a way to reduce the binary size of what ends up on the EFI partition, even if that wouldn't affect the "normal" way of putting the binary on the EFI partition - people would still need to take care of that in their distros).What about adding a related Kconfig option instead?How would a Kconfig option possibly affect this? You want debug info in the xen.efi in its standard install location (outside of the EFI partition); or else if you don't want it there why would you want it in xen-syms? It is the step of populating the EFI partition from the standard install location where some equivalent of INSTALL_EFI_STRIP would come into play. That step is done outside of Xen's build system and hence outside of any Kconfig control.We have 2 binaries for the non-EFI hypervisor (xen-syms and xen[.gz]). Why can't we have the same for EFI? E.g. xen-syms.efi and xen.efi. The former would have the debug-info, the latter could be installed into the EFI partition.I view the two-binaries model of the non-EFI case as merely an implementation detail;The ability to do crash dump analysis is more than an implementation detail IMHO. It is a feature and as such the availability of xen-syms should be seen as an interface which functionality should be kept.That you're looking the opposite way at things: The oddity is that we can't use xen-syms directly for booting (which is also why it has this specific name; otherwise "xen" would be what the linker produces).it just so happens that there's little point in mkelf32 retaining debug info. I therefore don't view it as very reasonable to artificially introduce yet another binary.In case there is no other way to enable hypervisor crash dump analysis I don't see this as an unreasonable approach. It should be verified that this approach is really enabling the crash dump analysis of a crash dump from a xen.efi booted system, of course.Right. First question would be whether they manage to consume Dwarf debug info from a PE/COFF executable. Possibly the way to go is to separate Dwarf data out of xen.efi into an ELF "container"; I have no idea whether objcopy could be used for something like that. I tried:> objcopy --remove-section=.text --remove-section=.rodata --remove-section=.init.* --remove-section=.data --remove-section=.data.* --remove-section=.bss --output-target=elf64-x86-64 xen.efi xen-debug and the result was: > objdump -h xen-debug xen-debug: file format elf64-x86-64 Sections: Idx Name Size VMA LMA File off Algn 0 .buildid 00000035 ffff82d040486fb8 ffff82d040486fb8 00000fb8 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 1 .init 000a2340 ffff82d040600000 ffff82d040600000 00001000 2**2 CONTENTS, ALLOC, LOAD, CODE 2 .reloc 00001658 ffff82d04094d5a0 ffff82d04094d5a0 000a35a0 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 3 .debug_abbrev 00091f6b ffff82d04094ebf8 ffff82d04094ebf8 000a4bf8 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 4 .debug_info 00fd7af4 ffff82d0409e0b63 ffff82d0409e0b63 00136b63 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 5 .debug_str 00843395 ffff82d0419b8657 ffff82d0419b8657 0110e657 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 6 .debug_line 0011dba5 ffff82d0421fb9ec ffff82d0421fb9ec 019519ec 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 7 .debug_frame 0003fd7c ffff82d042319594 ffff82d042319594 01a6f591 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 8 .debug_loc 0047fcfd ffff82d042359310 ffff82d042359310 01aaf30d 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 9 .debug_ranges 000d2650 ffff82d0427d9010 ffff82d0427d9010 01f2f00a 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 10 .debug_aranges 00015bd0 ffff82d0428ab660 ffff82d0428ab660 0200165a 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS This seems to be a reasonable output. Whether crash is happy with that file is another question, of course. Juergen Attachment:
OpenPGP_0xB0DE9DD628BF132F.asc Attachment:
OpenPGP_signature
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |