summaryrefslogtreecommitdiff
path: root/UPDATING
diff options
context:
space:
mode:
authorBjoern A. Zeeb <bz@FreeBSD.org>2019-06-08 17:44:42 +0000
committerBjoern A. Zeeb <bz@FreeBSD.org>2019-06-08 17:44:42 +0000
commit4c62bffef59acffcf122d952edda536c1c5e28d5 (patch)
tree472461a5634a9fe019157b8fce4dfb15d4d48428 /UPDATING
parent6e33e7e0f99e38d6b1111b1fd3153614c7efda8e (diff)
downloadsrc-test-4c62bffef59acffcf122d952edda536c1c5e28d5.tar.gz
src-test-4c62bffef59acffcf122d952edda536c1c5e28d5.zip
Fix dpcpu and vnet panics with complex types at the end of the section.
Apply a linker script when linking i386 kernel modules to apply padding to a set_pcpu or set_vnet section. The padding value is kind-of random and is used to catch modules not compiled with the linker-script, so possibly still having problems leading to kernel panics. This is needed as the code generated on certain architectures for non-simple-types, e.g., an array can generate an absolute relocation on the edge (just outside) the section and thus will not be properly relocated. Adding the padding to the end of the section will ensure that even absolute relocations of complex types will be inside the section, if they are the last object in there and hence relocation will work properly and avoid panics such as observed with carp.ko or ipsec.ko. There is a rather lengthy discussion of various options to apply in the mentioned PRs and their depends/blocks, and the review. There seems no best solution working across multiple toolchains and multiple version of them, so I took the liberty of taking one, as currently our users (and our CI system) are hitting this on just i386 and we need some solution. I wish we would have a proper fix rather than another "hack". Also backout r340009 which manually, temporarily fixed CARP before 12.0-R "by chance" after a lead-up of various other link-elf.c and related fixes. PR: 230857,238012 With suggestions from: arichardson (originally last year) Tested by: lwhsu Event: Waterloo Hackathon 2019 Reported by: lwhsu, olivier MFC after: 6 weeks Differential Revision: https://reviews.freebsd.org/D17512
Notes
Notes: svn path=/head/; revision=348808
Diffstat (limited to 'UPDATING')
-rw-r--r--UPDATING5
1 files changed, 5 insertions, 0 deletions
diff --git a/UPDATING b/UPDATING
index a2b702df5a1c8..93b99e5388321 100644
--- a/UPDATING
+++ b/UPDATING
@@ -31,6 +31,11 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW:
disable the most expensive debugging functionality run
"ln -s 'abort:false,junk:false' /etc/malloc.conf".)
+20190608:
+ A fix was applied to i386 kernel modules to avoid panics with
+ dpcpu or vnet. Users need to recompile i386 kernel modules
+ having pcpu or vnet sections or they will refuse to load.
+
20190513:
User-wired pages now have their own counter,
vm.stats.vm.v_user_wire_count. The vm.max_wired sysctl was renamed