freebsd-dev/sys/conf
Hans Petter Selasky ca2ad6bd77 LinuxKPI workqueue cleanup.
This change makes the workqueue implementation behave more like in
Linux, both functionality wise and structure wise.

All workqueue code has been moved to linux_work.c

Add an atomic based statemachine to the work_struct to ensure proper
operation. Prior to this change struct_work was directly mapped to a
FreeBSD task. When a taskqueue has multiple threads the same task may
end up being executed on more than one worker thread simultaneously.
This might cause problems with code coming from Linux, which expects
serial behaviour, similar to Linux tasklets.

Move all global workqueue function names into the linux_xxx domain to
avoid symbol name clashes in the future.

Implement a few more workqueue related functions and macros.

Create two multithreaded taskqueues for the LinuxKPI during module
load, one for time-consuming callbacks and one for non-time consuming
callbacks.

MFC after:		1 week
Sponsored by:		Mellanox Technologies
2017-03-07 12:09:14 +00:00
..
config.mk Move inclusion of opt_printf.h around so that we can compile all the 2017-02-25 22:11:10 +00:00
dtb.mk Honor LINKS=x y in dtb modules. We need this for compatibility links 2017-01-28 05:07:53 +00:00
files LinuxKPI workqueue cleanup. 2017-03-07 12:09:14 +00:00
files.amd64 Exclude -flto when building *genassym.o 2017-02-21 18:59:17 +00:00
files.arm Merge projects/ipsec into head/. 2017-02-06 08:49:57 +00:00
files.arm64 Port the Linux AMX 10G network driver to FreeBSD as axgbe. It is unlikely 2017-02-15 13:56:04 +00:00
files.i386 Remove SVR4 (System V Release 4) binary compatibility support. 2017-02-28 05:14:42 +00:00
files.mips Merge projects/ipsec into head/. 2017-02-06 08:49:57 +00:00
files.powerpc Add a driver for the RouterBoard RB800 User LED 2017-02-19 19:56:12 +00:00
files.riscv Merge projects/ipsec into head/. 2017-02-06 08:49:57 +00:00
files.sparc64 Merge projects/ipsec into head/. 2017-02-06 08:49:57 +00:00
kern.mk Merge ^/head r312968 through r313054. 2017-02-01 21:21:01 +00:00
kern.opts.mk Remove EISA build option 2017-02-17 06:13:49 +00:00
kern.post.mk Use "build" instead of "all" when building ports modules 2017-02-28 04:48:30 +00:00
kern.pre.mk Don't compute MPATH during install. 2017-01-17 21:12:21 +00:00
kmod_syms.awk
kmod.mk Exclude -flto when building *genassym.o 2017-02-21 18:59:17 +00:00
ldscript.amd64 Introduce __read_mostly and __exclusive_cache_line macros. 2017-01-27 14:53:09 +00:00
ldscript.arm remove CONSTRUCTORS from kernel linker scripts 2016-07-28 13:54:46 +00:00
ldscript.arm64 Explicitly include all .rodata.* sections in the kernel .rodata. This 2016-09-03 17:23:24 +00:00
ldscript.i386 remove CONSTRUCTORS from kernel linker scripts 2016-07-28 13:54:46 +00:00
ldscript.mips remove CONSTRUCTORS from kernel linker scripts 2016-07-28 13:54:46 +00:00
ldscript.mips.cfe remove CONSTRUCTORS from kernel linker scripts 2016-07-28 13:54:46 +00:00
ldscript.mips.mips64 remove CONSTRUCTORS from kernel linker scripts 2016-07-28 13:54:46 +00:00
ldscript.mips.octeon1 remove CONSTRUCTORS from kernel linker scripts 2016-07-28 13:54:46 +00:00
ldscript.powerpc remove CONSTRUCTORS from kernel linker scripts 2016-07-28 13:54:46 +00:00
ldscript.powerpc64 remove CONSTRUCTORS from kernel linker scripts 2016-07-28 13:54:46 +00:00
ldscript.powerpcspe Create a new MACHINE_ARCH for Freescale PowerPC e500v2 2016-10-22 01:57:15 +00:00
ldscript.riscv o Remove operation in machine mode. 2016-08-10 12:41:36 +00:00
ldscript.sparc64 remove CONSTRUCTORS from kernel linker scripts 2016-07-28 13:54:46 +00:00
Makefile.amd64 Clang's 3.5 integrated assembler now handles these files correctly (it 2015-01-05 12:28:22 +00:00
Makefile.arm Use MACHINE_ARCH rather than TARGET_ARCH which has no meaning outside 2016-10-20 20:12:34 +00:00
Makefile.arm64 Build changes that allow the modules on arm64. 2015-10-08 17:42:08 +00:00
Makefile.i386 Clang's 3.5 integrated assembler now handles these files correctly (it 2015-01-05 12:28:22 +00:00
Makefile.mips Compile trampoline with soft-float on MIPS, to match the rest of the kernel 2016-11-16 03:24:20 +00:00
Makefile.powerpc Don't pass -Wa,-many through clang, the integrated as doesn't support it. 2017-01-22 06:00:05 +00:00
Makefile.riscv Set dependencies for genassym.c. 2016-05-24 16:30:05 +00:00
Makefile.sparc64 Bump the version of config to the latest (3 year old, so upgrade 2014-02-04 18:24:25 +00:00
makeLINT.mk Migrate e1000 to the IFLIB framework: 2017-01-10 03:23:22 +00:00
makeLINT.sed
newvers.sh newvers.sh: consider as modified SVN mixed revision and other cases 2016-12-19 17:31:34 +00:00
NOTES Remove EISA bus support for add-in cards. Remove related kernel and 2017-02-16 21:57:35 +00:00
options Remove EISA bus support for add-in cards. Remove related kernel and 2017-02-16 21:57:35 +00:00
options.amd64 Remove SVR4 (System V Release 4) binary compatibility support. 2017-02-28 05:14:42 +00:00
options.arm Add SOC_ALTERA_* kernel options per each SoC and use it to 2017-02-28 16:20:33 +00:00
options.arm64 Make BRCM2837 port conform FreeBSD/ARM64 guidelines 2016-10-14 22:23:03 +00:00
options.i386 Remove SVR4 (System V Release 4) binary compatibility support. 2017-02-28 05:14:42 +00:00
options.mips Support mips[*]hf variants in config files 2016-12-30 00:34:52 +00:00
options.powerpc Create a new MACHINE_ARCH for Freescale PowerPC e500v2 2016-10-22 01:57:15 +00:00
options.riscv Add full softfloat and hardfloat support for RISC-V. 2016-11-16 15:21:32 +00:00
options.sparc64
systags.sh Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
WITHOUT_SOURCELESS
WITHOUT_SOURCELESS_HOST Retire the nve(4) driver; nfe(4) has been the default driver for NVIDIA 2014-02-16 12:22:43 +00:00
WITHOUT_SOURCELESS_UCODE rtwn(4), urtwn(4): merge common code, add support for 11ac devices. 2016-10-17 20:38:24 +00:00