Commit Graph

487 Commits

Author SHA1 Message Date
reinoud 54e9432c0a Prevent recursive IO signals. This prevents crashes when pieces of text are
pasted in say an Xterm. Each char might create a SIGIO running out of
stackspace very quickly!
2012-02-15 15:20:53 +00:00
reinoud 7775733971 Add cpu_spawn_return() as per other archs to make it compile. No tests done
yet.
2012-02-13 19:15:59 +00:00
reinoud 5cbe80301b Fix /dev/kmem access and make vmstat(1) `work'. Not sure all the results are
indeed valid or correct but at least it shows them without coredumping or
coredumping the kernel.
2012-02-08 17:55:21 +00:00
reinoud cdd53821b4 regen 2012-02-05 17:40:08 +00:00
reinoud b2bd15f503 With the recent kmem changes, remove the `unlimited' maximum setting of
NKMEMPAGES from amd64 since it gets us into trouble.
2012-02-05 17:39:18 +00:00
reinoud b0130c6aff regen 2012-02-05 14:27:08 +00:00
reinoud ab30bde8c6 Bump UPAGES effectively bumping per-process (system) stack i.e. the stack on
which traps are taken. When it was 8 it could run out of space on big NFS
stack traces in combination with timer and memory paging.
2012-02-04 23:04:15 +00:00
reinoud 1c948e16f7 spl_intr() is not defined anymore so remove from the header file 2012-02-02 11:13:41 +00:00
reinoud f1858320d3 Regen 2012-02-02 11:12:40 +00:00
reinoud 1a5b67339c Add cdefs.h to usermode's genheaders.sh 2012-02-02 11:10:24 +00:00
reinoud 5d4c62d3c2 No need to explicitly use thunkbus at this place. thunkbus == mainbus on
NetBSD/usermode
2012-01-23 12:08:31 +00:00
reinoud ff987fe24b Fix compilation issue for target amd64. 2012-01-22 17:51:39 +00:00
reinoud 1ea95bd622 Complete rewrite of the signal and spl framework for NetBSD/usermode
Signals are now moved from the sigaltstack ASAP and stacked on a replacement
stack for each processes.

Preemption now works though could be enhanced a bit more
2012-01-21 22:09:56 +00:00
reinoud b74ba047d8 Add extra kasserts to make sure we dont derive paramters from zero ucp's 2012-01-21 22:05:06 +00:00
reinoud efe1d0c784 Add the complement to sigemptyset(), sigfillset()! 2012-01-21 19:17:33 +00:00
reinoud 1a01d66147 My fault, forgot that cpu_need_resched() is indeed already declared as a function 2012-01-19 12:14:49 +00:00
reinoud aacc91c6de Add macro cpu_need_resched 2012-01-19 12:10:00 +00:00
reinoud 20157f98bc Create an atomic switchto() that has SIGALRM and SIGIO signals blocked that
might otherwise disrupt the setting of curlwp to match the lwp context.
2012-01-18 19:17:02 +00:00
reinoud 3dd9fb8df0 Another step towards unification of the signal handers: separate the printing
of details usefull for debugging / porting from the main code.
2012-01-18 12:39:45 +00:00
reinoud 141ab8a064 Do init the astpending variable. 2012-01-17 20:50:38 +00:00
reinoud e6afed1597 Clean up userret/ast handling. Now called ONLY when its 100% clear that it is
returning to userland.
2012-01-17 19:46:55 +00:00
jmcneill bf48f3f746 close file descriptors at shutdown 2012-01-15 10:51:12 +00:00
jmcneill bd720a636c sync disks and unmount at shutdown, and run shutdownhooks + pmf shutdown
handlers
2012-01-15 10:45:03 +00:00
jmcneill 3253211708 if syscallemu returns -1 and sets errno = EACCES, it means it's already
enabled for this pid. don't treat this as a failure.
2012-01-15 10:35:08 +00:00
jmcneill 54fbc97dfe don't modify command-line parameters 2012-01-15 10:30:21 +00:00
jmcneill a60846ba16 allow specifing the root device with 'root=ldN' parameter 2012-01-15 10:18:58 +00:00
jmcneill e3566f5c30 Add options INSECURE, as sysinst requires it. Now I can boot an x86 install
CD image.
2012-01-15 00:25:33 +00:00
jmcneill ae49ab9d52 add cd9660 2012-01-15 00:15:23 +00:00
reinoud 7752740c40 Reimplement userret() to also include AST for preemption.
Note it would be nice if we could do the check "are we going to userland?" in
a less intrusive way.
2012-01-14 21:45:28 +00:00
reinoud 367a9d86d8 Revert back to IPL_SOFTCLOCK so its lower than IPL_SHED 2012-01-14 21:42:51 +00:00
reinoud 4d50950c67 Cleanup clock.c removing unneeded function 2012-01-14 21:24:52 +00:00
reinoud 58b54606c8 Define astpending flag and the aston() setter 2012-01-14 21:23:24 +00:00
reinoud cc4db17f03 Regen 2012-01-14 21:21:48 +00:00
reinoud 31abb16503 Bump UPAGES with one more to allow for AST processing. Somehow the space was a
bit tight OR i am checking too regorously on stack space needed.
2012-01-14 21:20:56 +00:00
reinoud cd980be679 Revamp the NetBSD/usermode pagefault and illegal instruction handing. It now
can handle recursive entry and is a lot more memory tight compared to the old
implementation. Performance wise:

* slightly less number of syscalls/sec possible though could be optimized
* a lot faster context creation / destruction making overall operation faster.
2012-01-14 17:42:51 +00:00
reinoud 48ba6a6d8f Update automatically generated headers 2012-01-14 17:36:32 +00:00
reinoud 2150949848 Add md_get_sp() for MI stack frame manipulation. Note that NetBSD/usermode
only works on decending stacks for now!
2012-01-14 17:31:09 +00:00
reinoud b56977fe32 Remove old comment about space not being freed; it is now done correctly so
remove it to avoid confusion later.
2012-01-12 13:28:54 +00:00
reinoud ddb6e0d8d8 Cleanup trap.c and add a stop_all_signal_handlers(void) i: bluntly stopping
all known usages of signal handlers, to be used in shutdown.
2012-01-11 12:40:26 +00:00
reinoud cf7b2e9156 Add thunk_close() 2012-01-11 12:37:50 +00:00
reinoud b008bd8cf7 Use thunk_madvise() on the memory space hinting the kernel we are using it in
a random order and hint the kernel that we we need the memory.i

No measured effect on a memory file on tmpfs /tmp though.
2012-01-10 12:07:17 +00:00
reinoud 82a0130cc0 Add thunk_madvise() for memory access hints to the host kernel. 2012-01-10 12:04:56 +00:00
reinoud f88a173e3d Clarify comment about PAGER_MAP_DEFAULT_SIZE 2012-01-10 10:19:38 +00:00
reinoud 77d1be9922 Explicitly protect the kernel image against tampering by marking it R-X 2012-01-10 10:09:49 +00:00
reinoud 9222cee124 If the spl list is full also notify on the ttycons since it might otherwise
not allways be possible to print the panic correctdue due to the spl level.
2012-01-09 22:20:53 +00:00
reinoud d74ce82ce1 Re-implement aio for ld_thunkbus. It seems to work fine though its not set by
default; define LD_USE_AIO or uncomment its setting at the top of the
sourcefile to enable it.
2012-01-09 21:01:31 +00:00
reinoud 8b9e5ff328 Don't directly call softint_shedule() when we might be in an SPL level too
high.
2012-01-09 20:39:39 +00:00
agc 02bc0c2173 also add union file system 2012-01-09 19:25:40 +00:00
reinoud c31558fc48 As ppn is a uintptr_t, it can never be negative so the check is invalid. 2012-01-09 14:58:15 +00:00
reinoud 453f61bbf1 sizeof_t is allways >=0 and the check for >=0 thus allways is true and amd64
complains about this. This might explain the odd write errors that could
sometimes be reported. Those are/were probably a side effect of this.
2012-01-09 14:56:35 +00:00