From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 8D6BF72368 for ; Tue, 15 Jun 2021 13:27:39 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 817262D7B6 for ; Tue, 15 Jun 2021 13:27:39 +0200 (CEST) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS id 839252D7AB for ; Tue, 15 Jun 2021 13:27:38 +0200 (CEST) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 5D63744027 for ; Tue, 15 Jun 2021 13:27:38 +0200 (CEST) From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= To: pve-devel@lists.proxmox.com Date: Tue, 15 Jun 2021 13:27:24 +0200 Message-Id: <20210615112729.1099797-2-f.gruenbichler@proxmox.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210615112729.1099797-1-f.gruenbichler@proxmox.com> References: <20210615112729.1099797-1-f.gruenbichler@proxmox.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.845 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment KAM_SHORT 0.001 Use of a URL Shortener for very short URL SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [control.in, gnu.org] Subject: [pve-devel] [PATCH kernel 1/6] build: keep unstripped kernel and module files X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jun 2021 11:27:39 -0000 and put them into a new -dbgsym package for usage with crash/kdump-tools/... fixes #3465, and now allows to do the following (after installing and configuring kdump-tools to collect kernel crash dumps) when the system crashes: $ apt install pve-kernel-5.11.21-1-dbgsym $ crash /usr/lib/debug/boot/vmlinux-5.11.21-1-pve /var/crash/202106151236/dump.202106151236 crash 7.2.9 Copyright (C) 2002-2020 Red Hat, Inc. Copyright (C) 2004, 2005, 2006, 2010 IBM Corporation Copyright (C) 1999-2006 Hewlett-Packard Co Copyright (C) 2005, 2006, 2011, 2012 Fujitsu Limited Copyright (C) 2006, 2007 VA Linux Systems Japan K.K. Copyright (C) 2005, 2011 NEC Corporation Copyright (C) 1999, 2002, 2007 Silicon Graphics, Inc. Copyright (C) 1999, 2000, 2001, 2002 Mission Critical Linux, Inc. This program is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Enter "help copying" to see the conditions. This program has absolutely no warranty. Enter "help warranty" for details. GNU gdb (GDB) 7.6 Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-unknown-linux-gnu"... WARNING: kernel relocated [812MB]: patching 136336 gdb minimal_symbol values KERNEL: /usr/lib/debug/boot/vmlinux-5.11.21-1-pve DUMPFILE: /var/crash/202106151236/dump.202106151236 [PARTIAL DUMP] CPUS: 4 DATE: Tue Jun 15 12:36:38 CEST 2021 UPTIME: 00:06:21 LOAD AVERAGE: 0.04, 0.11, 0.08 TASKS: 272 NODENAME: test RELEASE: 5.11.21-1-pve VERSION: #1 SMP PVE 5.11.21-1 (Tue, 01 Jun 2021 16:38:57 +0200) MACHINE: x86_64 (3696 Mhz) MEMORY: 8 GB PANIC: "Kernel panic - not syncing: sysrq triggered crash" PID: 3167 COMMAND: "bash" TASK: ffff9220c8f5be00 [THREAD_INFO: ffff9220c8f5be00] CPU: 3 STATE: TASK_RUNNING (PANIC) crash> bt PID: 3167 TASK: ffff9220c8f5be00 CPU: 3 COMMAND: "bash" #0 [ffffa24ec0bfbc80] machine_kexec at ffffffffb3c751f3 #1 [ffffa24ec0bfbce0] __crash_kexec at ffffffffb3d61092 #2 [ffffa24ec0bfbdb0] panic at ffffffffb47b769d #3 [ffffa24ec0bfbe30] sysrq_handle_crash at ffffffffb434da4a #4 [ffffa24ec0bfbe40] __handle_sysrq.cold at ffffffffb47e2cdc #5 [ffffa24ec0bfbe78] write_sysrq_trigger at ffffffffb434e3f8 #6 [ffffa24ec0bfbe90] proc_reg_write at ffffffffb3fc09ea #7 [ffffa24ec0bfbeb0] vfs_write at ffffffffb3f143b6 #8 [ffffa24ec0bfbee8] ksys_write at ffffffffb3f16b97 #9 [ffffa24ec0bfbf28] __x64_sys_write at ffffffffb3f16c2a #10 [ffffa24ec0bfbf38] do_syscall_64 at ffffffffb480e868 #11 [ffffa24ec0bfbf50] entry_SYSCALL_64_after_hwframe at ffffffffb4a0008c RIP: 00007f367f7baf33 RSP: 00007ffe6175dc98 RFLAGS: 00000246 RAX: ffffffffffffffda RBX: 0000000000000002 RCX: 00007f367f7baf33 RDX: 0000000000000002 RSI: 0000560510e640b0 RDI: 0000000000000001 RBP: 0000560510e640b0 R8: 000000000000000a R9: 0000000000000001 R10: 0000560510e5f800 R11: 0000000000000246 R12: 0000000000000002 R13: 00007f367f88b6a0 R14: 0000000000000002 R15: 00007f367f88b8a0 ORIG_RAX: 0000000000000001 CS: 0033 SS: 002b as well as lots of other fun things (see 'help' after opening a crash dump). Signed-off-by: Fabian Grünbichler --- Notes: requires a recent enough version of kdump-tools/makedumpfile, so bullseye+ unless we provide our own backport for buster.. the resulting package is obviously quite large, so we don't want to install it automatically debian/control.in | 8 ++++++++ debian/rules | 11 +++++++++++ 2 files changed, 19 insertions(+) diff --git a/debian/control.in b/debian/control.in index 1f235f0..a9c8dd8 100644 --- a/debian/control.in +++ b/debian/control.in @@ -71,6 +71,14 @@ Recommends: grub-pc | grub-efi-amd64 | grub-efi-ia32 | grub-efi-arm64, Description: The Proxmox PVE Kernel Image This package contains the linux kernel and initial ramdisk used for booting +Package: pve-kernel-@KVNAME@-dbgsym +Architecture: any +Provides: linux-debug +Section: devel +Priority: optional +Description: The Proxmox PVE Kernel debug image + This package provides the kernel debug image for version @KVNAME@. The debug kernel image contained in this package is NOT meant to boot from - it is uncompressed, and unstripped, and suitable for use with crash/kdump-tools/.. to analyze kernel crashes. This package also contains the pve-kernel modules in their unstripped version. + Package: pve-kernel-libc-dev Section: devel Priority: optional diff --git a/debian/rules b/debian/rules index 7b1b251..ec22136 100755 --- a/debian/rules +++ b/debian/rules @@ -14,6 +14,7 @@ include debian/rules.d/${DEB_BUILD_ARCH}.mk CHANGELOG_DATE:=$(shell dpkg-parsechangelog -SDate) PVE_KERNEL_PKG=pve-kernel-${KVNAME} +PVE_DEBUG_KERNEL_PKG=pve-kernel-${KVNAME}-dbgsym PVE_HEADER_PKG=pve-headers-${KVNAME} PVE_USR_HEADER_PKG=pve-kernel-libc-dev LINUX_TOOLS_PKG=linux-tools-${KERNEL_MAJMIN} @@ -132,6 +133,16 @@ binary: install install -m 644 $(addprefix ${MODULES}/,zfs.ko zavl.ko znvpair.ko zunicode.ko zcommon.ko icp.ko zlua.ko spl.ko zzstd.ko) debian/${PVE_KERNEL_PKG}/lib/modules/${KVNAME}/zfs # remove firmware rm -rf debian/${PVE_KERNEL_PKG}/lib/firmware + + # debug package + mkdir -p debian/${PVE_DEBUG_KERNEL_PKG}/usr/lib/debug/lib/modules/${KVNAME} + mkdir debian/${PVE_DEBUG_KERNEL_PKG}/usr/lib/debug/boot + install -m 644 ${KERNEL_SRC}/vmlinux debian/${PVE_DEBUG_KERNEL_PKG}/usr/lib/debug/boot/vmlinux-${KVNAME} + cp -r debian/${PVE_KERNEL_PKG}/lib/modules/${KVNAME} debian/${PVE_DEBUG_KERNEL_PKG}/usr/lib/debug/lib/modules/ + rm -f debian/${PVE_DEBUG_KERNEL_PKG}/usr/lib/debug/lib/modules/${KVNAME}/source + rm -f debian/${PVE_DEBUG_KERNEL_PKG}/usr/lib/debug/lib/modules/${KVNAME}/build + rm -f debian/${PVE_DEBUG_KERNEL_PKG}/usr/lib/debug/lib/modules/${KVNAME}/modules.* + # strip debug info find debian/${PVE_KERNEL_PKG}/lib/modules -name \*.ko -print | while read f ; do strip --strip-debug "$$f"; done # finalize -- 2.30.2