1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-04 12:52:15 +00:00
freebsd/sys
Konstantin Belousov 2832cd544f Speed up symbol lookup for the amd64 kernel modules.
Amd64 uses relocatable object files as the modules format.  It is good
WRT not having unneeded overhead for PIC code, in particular, due to
absence of useless GOT and PLT.  But the cost is that the module
linking process cannot use hash to speed up the symbol lookup, and
that each reference to the symbol requiring a relocation, instead of
single-place relocation in GOT.

Cache the successfull symbol lookup results in the module symbol
table, using the newly allocated SHN_FBSD_CACHED value from
SHN_LOOS-HIOS range as an indicator.  The SHN_FBSD_CACHED together
with the non-existent definition of the found symbol are reverted
after successfull relocations, which is done under kld_sx lock, so it
should not be visible to other consumers of the symbol table.

Submitted by:	Conrad Meyer
Differential Revision:  https://reviews.freebsd.org/D1718
MFC after:	3 weeks
2015-04-02 20:14:51 +00:00
..
amd64 Fix integer truncation bug in malloc(9) 2015-04-01 12:42:26 +00:00
arm Stop including machine/fdt.h, it's not needed. 2015-04-02 13:02:25 +00:00
arm64/include Add more arm64 machine dependent headers. With this we now have the minimum 2015-03-26 21:10:42 +00:00
boot Install newly added brand-*.4th and logo-*.4th files and reduce duplication. 2015-04-02 20:07:05 +00:00
bsm
cam Add some additional quirks for various Western Digital Caviar MHDDs 2015-03-30 09:05:20 +00:00
cddl Add the arm64 defines for cddl code. 2015-04-01 08:31:56 +00:00
compat Remove unused code. 2015-04-02 10:19:24 +00:00
conf Add necessary changes to support various Amlogic SoC devices 2015-03-31 11:50:46 +00:00
contrib o Use new function ip_fillid() in all places throughout the kernel, 2015-04-01 22:26:39 +00:00
crypto Add some new modes to OpenCrypto. These modes are AES-ICM (can be used 2014-12-12 19:56:36 +00:00
ddb ddb: ANSI-fy function declarations. 2014-10-12 18:01:52 +00:00
dev Handle multiple "gpio-leds"-compatible nodes 2015-04-02 02:43:48 +00:00
fs Refine r280308. Do not completely disable timestamping of devfs nodes 2015-04-01 08:25:40 +00:00
gdb
geom Remove extra semicolon. 2015-03-27 12:45:20 +00:00
gnu File names with commas in them cause issues for freebsd-update. We 2015-03-12 06:43:58 +00:00
i386 Fix integer truncation bug in malloc(9) 2015-04-01 12:42:26 +00:00
isa
kern Speed up symbol lookup for the amd64 kernel modules. 2015-04-02 20:14:51 +00:00
kgssapi Avoid dynamic syscall overhead for statically compiled modules. 2014-10-26 19:42:44 +00:00
libkern Implement asprintf in libkern 2015-03-01 00:22:16 +00:00
mips Fix integer truncation bug in malloc(9) 2015-04-01 12:42:26 +00:00
modules sym and cxgb build on arm, add them to the build. 2015-03-27 02:35:33 +00:00
net Fix a possible mbuf leak on interface departure. 2015-03-26 23:40:22 +00:00
net80211 Initialise the pps / packet tracking timestamp so 11n aggregation works again. 2015-03-22 17:54:00 +00:00
netgraph Change the callout to supply -1 to indicate we are not changing 2015-03-28 12:50:24 +00:00
netinet Extend fixes made in r278103 and r38754 by copying the complete packet 2015-04-02 15:47:37 +00:00
netinet6 Preserve IPv6 fragment IDs accross reassembly and refragmentation 2015-04-01 12:15:01 +00:00
netipsec o Use new function ip_fillid() in all places throughout the kernel, 2015-04-01 22:26:39 +00:00
netnatm
netpfil o Use new function ip_fillid() in all places throughout the kernel, 2015-04-01 22:26:39 +00:00
netsmb
nfs Avoid closing unallocated socket in case socreate fails. 2015-02-28 20:30:29 +00:00
nfsclient Remove the old NFS client and server from head, 2014-12-23 00:47:46 +00:00
nfsserver Use M_SIZE() instead of hand-crafted (and mostly correct) NFSMSIZ() macro 2015-01-07 17:22:56 +00:00
nlm Avoid dynamic syscall overhead for statically compiled modules. 2014-10-26 19:42:44 +00:00
ofed Fix variable casting: 2015-03-27 19:08:11 +00:00
opencrypto Add some new modes to OpenCrypto. These modes are AES-ICM (can be used 2014-12-12 19:56:36 +00:00
pc98 Factor out duplicated code from dumpsys() on each architecture into generic 2015-01-07 01:01:39 +00:00
powerpc Fix integer truncation bug in malloc(9) 2015-04-01 12:42:26 +00:00
rpc Fix overflow bugs in and remove obsolete limit from kernel RPC 2015-04-01 00:45:47 +00:00
security cred: add proc_set_cred helper 2015-03-16 00:10:03 +00:00
sparc64 Fix integer truncation bug in malloc(9) 2015-04-01 12:42:26 +00:00
sys Speed up symbol lookup for the amd64 kernel modules. 2015-04-02 20:14:51 +00:00
teken mdoc: improvements to SEE ALSO. 2014-12-27 07:07:37 +00:00
tools
ufs Fix build (with gcc). 2015-03-27 15:49:21 +00:00
vm Fix integer truncation bug in malloc(9) 2015-04-01 12:42:26 +00:00
x86 When mapping an allocated entry, use the entry size, instead of the 2015-03-24 12:48:51 +00:00
xdr
xen Use SYSCTL_OUT_STR() to return strings. 2015-03-14 21:40:24 +00:00
Makefile