Upstream: https://github.com/proxmox/pve-kernel
bec104985e
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 <http://gnu.org/licenses/gpl.html> 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 <f.gruenbichler@proxmox.com> |
||
---|---|---|
debian | ||
patches/kernel | ||
submodules | ||
.gitignore | ||
.gitmodules | ||
abi-blacklist | ||
abi-prev-5.11.21-1-pve | ||
fwlist-previous | ||
Makefile | ||
README |
KERNEL SOURCE: ============== We currently use the Ubuntu kernel sources, available from: http://kernel.ubuntu.com/git/ubuntu/ubuntu-hirsute.git/ Ubuntu will maintain those kernels till: https://wiki.ubuntu.com/Kernel/Dev/ExtendedStable Additional/Updated Modules: --------------------------- - include native OpenZFS filesystem kernel modules for Linux * https://github.com/zfsonlinux/ For licensing questions, see: http://open-zfs.org/wiki/Talk:FAQ SUBMODULE ========= We track the current upstream repository as submodule. Besides obvious advantages over tracking binary tar archives this also has some implications. For building the submodule directory gets copied into build/ and a few patches get applied with the `patch` tool. From a git point-of-view, the copied directory remains clean even with extra patches applied since it does not contain a .git directory, but a reference to the (still pristine) submodule: $ cat build/ubuntu-hirsute/.git If you mistakenly cloned the upstream repo as "normal" clone (not via the submodule mechanics) this means that you have a real .git directory with its independent objects and tracking info when copying for building, thus git operates on the copied directory - and "sees" that it was dirtied by `patch`, and thus the kernel buildsystem sees this too and will add a '+' to the version as a result. This changes the output directories for modules and other build artefacts and let's then the build fail on packaging. So always ensure that you really checked it out as submodule, not as full "normal" clone. You can also explicitly set the LOCALVERSION variable to undefined with: `export LOCALVERSION= but that should only be done for test builds. RELATED PACKAGES: ================= proxmox-ve ---------- top level meta package, depends on current default kernel series meta package. git clone git://git.proxmox.com/git/proxmox-ve.git pve-kernel-meta --------------- depends on latest kernel and header package within a certain kernel series, e.g., pve-kernel-4.15 / pve-headers-4.15 git clone git://git.proxmox.com/git/pve-kernel-meta.git pve-firmware ------------ contains the firmware for all released PVE kernels. git clone git://git.proxmox.com/git/pve-firmware.git NOTES: ====== ABI versions, package versions and package name: ------------------------------------------------ We follow debian's versioning w.r.t ABI changes: https://kernel-team.pages.debian.net/kernel-handbook/ch-versions.html https://wiki.debian.org/DebianKernelABIChanges The debian/rules file has a target comparing the build kernel's ABI against the version stored in the repository and indicates when an ABI bump is necessary. An ABI bump within one upstream version consists of incrementing the KREL variable in the Makefile, rebuilding the packages and running 'make abiupdate' (the 'abiupdate' target in 'Makefile' contains the steps for consistently updating the repository). Watchdog blacklist ------------------ By default, all watchdog modules are black-listed because it is totally undefined which device is actually used for /dev/watchdog. We ship this list in /lib/modprobe.d/blacklist_pve-kernel-<VERSION>.conf The user typically edit /etc/modules to enable a specific watchdog device. Additional information ---------------------- We use the default configuration provided by Ubuntu, and apply the following modifications: NOTE: For the exact and current list see debian/rules (PVE_CONFIG_OPTS) - enable INTEL_MEI_WDT=m (to allow disabling via patch) - disable CONFIG_SND_PCM_OSS (enabled by default in Ubuntu, not needed) - switch CONFIG_TRANSPARENT_HUGEPAGE to MADVISE from ALWAYS - enable CONFIG_CEPH_FS=m (request from user) - enable common CONFIG_BLK_DEV_XXX to avoid hardware detection problems (udev, update-initramfs have serious problems without that) CONFIG_BLK_DEV_SD=y CONFIG_BLK_DEV_SR=y CONFIG_BLK_DEV_DM=y - add workaround for Debian bug #807000 (see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=807000) CONFIG_BLK_DEV_NVME=y - compile NBD and RBD modules CONFIG_BLK_DEV_NBD=m CONFIG_BLK_DEV_RBD=m - enable IBM JFS file system as module enable it as requested by users (bug #64) - enable apple HFS and HFSPLUS as module enable it as requested by users - enable CONFIG_BCACHE=m (requested by user) - enable CONFIG_BRIDGE=y Else we get warnings on boot, that net.bridge.bridge-nf-call-iptables is an unknown key - enable CONFIG_DEFAULT_SECURITY_APPARMOR We need this for lxc - set CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y because if not set, it can give some dynamic memory or cpu frequencies change, and vms can crash (mainly windows guest). see http://forum.proxmox.com/threads/18238-Windows-7-x64-VMs-crashing-randomly-during-process-termination?p=93273#post93273 - use 'deadline' as default scheduler This is the suggested setting for KVM. We also measure bad fsync performance with ext4 and cfq. - disable CONFIG_INPUT_EVBUG Module evbug is not blacklisted on debian, so we simply disable it to avoid key-event logs (which is a big security problem) - enable CONFIG_MODVERSIONS (needed for ABI tracking) - switch default UNWINDER to FRAME_POINTER the recently introduced ORC_UNWINDER is not 100% stable yet, especially in combination with ZFS - enable CONFIG_PAGE_TABLE_ISOLATION (Meltdown mitigation)