History log of /src/sys/kern/sys_syscall.c |
Revision | | Date | Author | Comments |
1.16 |
| 01-Jun-2025 |
bad | update comment about where this file is included
sys_indirect.c is long gone. however sys_scdebug.c includes this file.
|
1.15 |
| 29-Jun-2022 |
hannken | branches: 1.15.10; Synchronize SYS_SYSCALL() with other syscall implementations and call trace_exit() even if trace_enter() returned an error.
PR kern/52166 "syscallemu does not work on sparc (32-bit)" PR toolchain/56117 "New test failures on amd64 since switch to gcc10"
|
1.14 |
| 14-Mar-2022 |
riastradh | syscall(2): Provide better attribution for biglock slippage.
This adds a small overhead to the syscall path, but only when invoked via the syscall(2) syscall, for which stack traces generally don't print the actual syscall number in question so the better attribution may make a difference.
|
1.13 |
| 08-Feb-2020 |
maxv | Retire KLEAK.
KLEAK was a nice feature and served its purpose; it allowed us to detect dozens of info leaks on the kernel->userland boundary, and thanks to it we tackled a good part of the infoleak problem 1.5 years ago.
Nowadays however, we have kMSan, which can detect uninitialized memory in the kernel. kMSan supersedes KLEAK: it can detect what KLEAK was able to detect, but in addition, (1) it operates in all of the kernel and not just the kernel->userland boundary, (2) it requires no user interaction, and (3) it is deterministic and not statistical.
That makes kMSan the feature of choice to detect info leaks nowadays; people interested in detecting info leaks should boot a kMSan kernel and just wait for the magic to happen.
KLEAK was a good ride, and a fun project, but now is time for it to go.
Discussed with several people, including Thomas Barabosch.
|
1.12 |
| 02-Dec-2018 |
maxv | branches: 1.12.6; Introduce KLEAK, a new feature that can detect kernel information leaks.
It works by tainting memory sources with marker values, letting the data travel through the kernel, and scanning the kernel<->user frontier for these marker values. Combined with compiler instrumentation and rotation of the markers, it is able to yield relevant results with little effort.
We taint the pools and the stack, and scan copyout/copyoutstr. KLEAK is supported on amd64 only for now, but it is not complicated to add more architectures (just a matter of having the address of .text, and a stack unwinder).
A userland tool is provided, that allows to execute a command in rounds and monitor the leaks generated all the while.
KLEAK already detected directly 12 kernel info leaks, and prompted changes that in total fixed 25+ leaks.
Based on an idea developed jointly with Thomas Barabosch (of Fraunhofer FKIE).
|
1.11 |
| 07-Mar-2015 |
christos | branches: 1.11.16; 1.11.18; regen
|
1.10 |
| 05-May-2012 |
christos | branches: 1.10.2; 1.10.16; use sy_call() so that l->l_sysent gets set, so that we can autoload modules that define new syscalls properly.
|
1.9 |
| 29-Apr-2008 |
martin | branches: 1.9.34; 1.9.38; Convert to new 2 clause license
|
1.8 |
| 06-Feb-2008 |
dsl | branches: 1.8.6; 1.8.8; 1.8.10; Remove the 'args' parameter to 'trace_exit()' it is no longer used. Instead of passing the (un)real system call code and syscall table pointer, just pass the number of arguments - which is what ktrace really wants. Ride forthcoming 4.99.53
|
1.7 |
| 05-Jan-2008 |
dsl | branches: 1.7.2; Don't pass 'curlwp' into trace_enter() and trace_exit().
|
1.6 |
| 31-Dec-2007 |
ad | Remove systrace. Ok core@.
|
1.5 |
| 22-Dec-2007 |
dsl | Further constification of the syscall args buffer. It will get __UNCONST() applied in the systrace code if/when systrace tries to change the arguments. This sucks since the syscall args might be in the trap frame, and the syscall might return ERESTART so the restarted call would use the wrong arguments. OTOH systrace() (as a security measure) is almost impossible to implement for a threaded app (validated filenames can be changed before namei() reads them into memory). The current code is just plain broken for threaded apps - data that needs to be lwp-specified is proc-specific. I believe ad is planning to nuke systrace ...
|
1.4 |
| 22-Dec-2007 |
dsl | Add a few buckets of 'const' and 'static' to the system call trace code. sys_trace() still needs to be able to update the syscall args.
|
1.3 |
| 20-Dec-2007 |
dsl | Convert all the system call entry points from: int foo(struct lwp *l, void *v, register_t *retval) to: int foo(struct lwp *l, const struct foo_args *uap, register_t *retval) Fixup compat code to not write into 'uap' and (in some cases) to actually pass a correctly formatted 'uap' structure with the right name to the next routine. A few 'compat' routines that just call standard ones have been deleted. All the 'compat' code compiles (along with the kernels required to test build it). 98% done by automated scripts.
|
1.2 |
| 11-Dec-2007 |
lukem | use __KERNEL_RCSID() instead of __RCSID()
|
1.1 |
| 09-Nov-2007 |
dsl | branches: 1.1.2; 1.1.4; 1.1.6; 1.1.8; 1.1.10; 1.1.12; 1.1.14; Add MI implementations of the indirect stystem call functions sys_syscall() and sys___syscall(). These functions are only used if the MI system call entry code doesn't special-case the relevant entries.
|
1.1.14.3 |
| 08-Jan-2008 |
bouyer | Sync with HEAD
|
1.1.14.2 |
| 02-Jan-2008 |
bouyer | Sync with HEAD
|
1.1.14.1 |
| 13-Dec-2007 |
bouyer | Sync with HEAD
|
1.1.12.1 |
| 11-Dec-2007 |
yamt | sync with head.
|
1.1.10.1 |
| 26-Dec-2007 |
ad | Sync with head.
|
1.1.8.4 |
| 18-Feb-2008 |
mjf | Sync with HEAD.
|
1.1.8.3 |
| 27-Dec-2007 |
mjf | Sync with HEAD.
|
1.1.8.2 |
| 19-Nov-2007 |
mjf | Sync with HEAD.
|
1.1.8.1 |
| 09-Nov-2007 |
mjf | file sys_syscall.c was added on branch mjf-devfs on 2007-11-19 00:48:54 +0000
|
1.1.6.4 |
| 11-Feb-2008 |
yamt | sync with head.
|
1.1.6.3 |
| 21-Jan-2008 |
yamt | sync with head
|
1.1.6.2 |
| 15-Nov-2007 |
yamt | sync with head.
|
1.1.6.1 |
| 09-Nov-2007 |
yamt | file sys_syscall.c was added on branch yamt-lazymbuf on 2007-11-15 11:44:52 +0000
|
1.1.4.2 |
| 13-Nov-2007 |
bouyer | Sync with HEAD
|
1.1.4.1 |
| 09-Nov-2007 |
bouyer | file sys_syscall.c was added on branch bouyer-xenamd64 on 2007-11-13 16:02:28 +0000
|
1.1.2.2 |
| 11-Nov-2007 |
joerg | Sync with HEAD.
|
1.1.2.1 |
| 09-Nov-2007 |
joerg | file sys_syscall.c was added on branch jmcneill-pm on 2007-11-11 16:48:13 +0000
|
1.7.2.3 |
| 23-Mar-2008 |
matt | sync with HEAD
|
1.7.2.2 |
| 09-Jan-2008 |
matt | sync with HEAD
|
1.7.2.1 |
| 05-Jan-2008 |
matt | file sys_syscall.c was added on branch matt-armv6 on 2008-01-09 01:56:23 +0000
|
1.8.10.1 |
| 16-May-2008 |
yamt | sync with head.
|
1.8.8.1 |
| 18-May-2008 |
yamt | sync with head.
|
1.8.6.1 |
| 02-Jun-2008 |
mjf | Sync with HEAD.
|
1.9.38.1 |
| 02-Jun-2012 |
mrg | sync to latest -current.
|
1.9.34.1 |
| 23-May-2012 |
yamt | sync with head.
|
1.10.16.1 |
| 06-Apr-2015 |
skrll | Sync with HEAD
|
1.10.2.1 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.11.18.2 |
| 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
1.11.18.1 |
| 10-Jun-2019 |
christos | Sync with HEAD
|
1.11.16.1 |
| 26-Dec-2018 |
pgoyette | Sync with HEAD, resolve a few conflicts
|
1.12.6.1 |
| 29-Feb-2020 |
ad | Sync with head.
|
1.15.10.1 |
| 02-Aug-2025 |
perseant | Sync with HEAD
|