mmu: implement madvise for MADV_DONTNEED

The jemalloc memory allocator will make intense use of MADV_DONTNEED to flush
pages it is no longer using. Respect that advice.

Let's keep returning -1 for the remaining cases so we don't fool anybody

Signed-off-by: Glauber Costa <glommer@cloudius-systems.com>
limits: provide alias for *limit64 functions

Signed-off-by: Glauber Costa <glommer@cloudius-systems.com>
sched: make current inline

We are heavily using this function to grab the address of the current thread.
That means a function call will be issued every time that is done, where a
simple mov instruction would do.

Signed-off-by: Glauber Costa <glommer@cloudius-systems.com>
elf: use rcu for tls loading

While looking at perf kvm guest for a redis run, I see mutex lock/unlock
appearing quite heavily in the profile. That seems mostly to come from
_module_index_list_mutex, because a lot of TLS variables are used. Even if our
uncontended case is quite fast, it still requires an atomic operation. If we
use RCU instead, we can make the read operations faster.

Signed-off-by: Glauber Costa <glommer@cloudius-systems.com>
sched: make preempt functions inline

Again, we are currently calling a function everytime we disable/enable preemption
(actually a pair of functions), where simple mov instructions would do.

Signed-off-by: Glauber Costa <glommer@cloudius-systems.com>
get tls experiment