History log of /src/tests/rump |
Revision | Date | Author | Comments |
1.6 | 13-Jul-2010 |
jmmv | Get rid of static Atffiles and let bsd.test.mk generate them on the fly.
|
1.5 | 17-Jun-2010 |
pooka | tp_glob -> tp-glob (i.e. better use correct keywords ..)
|
1.4 | 16-Jun-2010 |
pooka | Add simple etfs test which almost tests for bug fixed yesterday (the yesterday bug was against an emulated block device, so slighlty different). But at least this test uncovered a few bugs already.
|
1.3 | 09-Jun-2010 |
pooka | Add a test which checks autoloading modules from the host's /stand/arch/vers/kmods works in rump (and that the result is usable ;).
On i386 this "just works". For amd64, due to -mcmodel=kernel, things are a little more complicated. We must have the entire rump kernel loaded in the lower 2GB. Currently, this can be done either by using the non-PIC version for the rump kernel compiled with -mcmodel=small, or, as njoly pointed out, using netbsd32, which causes vm_default_addr() to give something in the lower 2GB and therefore shared libs "magically" getting loaded there. I guess it would be possible to put a suggested vaddr into the rump kernel libs and make ld.elf_so map memory from the suggested address if present ... but that's another show.
Also thanks to tron for access to an amd64 so that I could verify the test works.
|
1.2 | 31-May-2010 |
pooka | Add some kernel namespace (i.e. _KERNEL) helpers for regression tests.
|
1.1 | 02-May-2009 |
pooka | branches: 1.1.2; add regression test for module init/fini in rump
|
1.1.2.2 | 13-May-2009 |
jym | Sync with HEAD.
Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
|
1.1.2.1 | 02-May-2009 |
jym | file Atffile was added on branch jym-xensuspend on 2009-05-13 19:19:34 +0000
|
1.6 | 10-Mar-2011 |
pooka | Add a test checks that 16 rump kernels on one shmif bus can ping each other.
|
1.5 | 13-Jul-2010 |
jmmv | Get rid of static Atffiles and let bsd.test.mk generate them on the fly.
|
1.4 | 16-Jun-2010 |
pooka | Add simple etfs test which almost tests for bug fixed yesterday (the yesterday bug was against an emulated block device, so slighlty different). But at least this test uncovered a few bugs already.
|
1.3 | 09-Jun-2010 |
pooka | Add a test which checks autoloading modules from the host's /stand/arch/vers/kmods works in rump (and that the result is usable ;).
On i386 this "just works". For amd64, due to -mcmodel=kernel, things are a little more complicated. We must have the entire rump kernel loaded in the lower 2GB. Currently, this can be done either by using the non-PIC version for the rump kernel compiled with -mcmodel=small, or, as njoly pointed out, using netbsd32, which causes vm_default_addr() to give something in the lower 2GB and therefore shared libs "magically" getting loaded there. I guess it would be possible to put a suggested vaddr into the rump kernel libs and make ld.elf_so map memory from the suggested address if present ... but that's another show.
Also thanks to tron for access to an amd64 so that I could verify the test works.
|
1.2 | 31-May-2010 |
pooka | Add some kernel namespace (i.e. _KERNEL) helpers for regression tests.
|
1.1 | 02-May-2009 |
pooka | branches: 1.1.2; add regression test for module init/fini in rump
|
1.1.2.2 | 13-May-2009 |
jym | Sync with HEAD.
Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
|
1.1.2.1 | 02-May-2009 |
jym | file Makefile was added on branch jym-xensuspend on 2009-05-13 19:19:34 +0000
|
1.2 | 23-Jan-2016 |
christos | Define _KERNTYPES for things that need it.
|
1.1 | 03-Nov-2010 |
christos | add Makefile.inc everywhere so that we can set WARNS=4 by default. Amazing how many bugs this found :-)
|
1.7 | 24-Dec-2018 |
thorpej | Add rump-based test cases for threadpool(9).
|
1.6 | 29-Sep-2017 |
maya | branches: 1.6.2; 1.6.4; Add simple test for workqueue(9)
|
1.5 | 14-Jan-2011 |
pooka | branches: 1.5.38; elementary tests for rump sigmodels
|
1.4 | 06-Jan-2011 |
pooka | Add some tests for lock errors. Notably, some of them fare nicely with just the pthread consistency checks (which are enabled by default in rumpuser), but others require real LOCKDEBUG.
|
1.3 | 14-Jun-2010 |
pooka | add a vm allocator test which tests that: * RUMP_MEMLIMIT works * allocating memory with PR_NOWAIT will fail immediately if no memory is available and PR_WAITOK will wait for memory to be available
|
1.2 | 31-May-2010 |
pooka | need bsd.own.mk to avoid the "NETBSDSRCDIR is nothing" syndrome
|
1.1 | 31-May-2010 |
pooka | Add some kernel namespace (i.e. _KERNEL) helpers for regression tests.
|
1.5.38.1 | 16-Jan-2018 |
martin | Pull up following revision(s) (requested by ozaki-r in ticket #497): tests/rump/rumpkern/Makefile: revision 1.16 tests/rump/kernspace/Makefile: revision 1.6 tests/rump/kernspace/workqueue.c: revision 1.1 tests/rump/kernspace/workqueue.c: revision 1.2 tests/rump/kernspace/workqueue.c: revision 1.3 tests/rump/kernspace/workqueue.c: revision 1.4 tests/rump/kernspace/workqueue.c: revision 1.5 tests/rump/kernspace/workqueue.c: revision 1.6 tests/rump/rumpkern/t_workqueue.c: revision 1.1 sys/sys/workqueue.h: revision 1.10 tests/rump/rumpkern/t_workqueue.c: revision 1.2 tests/rump/kernspace/kernspace.h: revision 1.5 tests/rump/kernspace/kernspace.h: revision 1.6 sys/net/if_bridge.c: revision 1.147 distrib/sets/lists/debug/mi: revision 1.225 sys/kern/subr_workqueue.c: revision 1.34 share/man/man9/workqueue.9: revision 1.12 sys/net/if_spppsubr.c: revision 1.178 distrib/sets/lists/tests/mi: revision 1.763 Add simple test for workqueue(9) Add declaration. build fix sorry, I forgot to commit this file. Tweak use of cv_timedwait - Handle its return value - Specify more appropriate time-out periods (2 ticks is too short) Fix a race condition on taking the mutex The workqueue worker can take the mutex before the tester tries to take it after calling workqueue_enqueue. If it happens, the worker calls cv_broadcast before the tester calls cv_timedwait and the tester will wait until the cv timed out Take the mutex before calling workqueue_enqueue so that the tester surely calls cv_timedwait before the worker calls cv_broadcast. The fix stabilizes the test, t_workqueue/workqueue1. Add workqueue_wait that waits for a specific work to finish The caller must ensure that no new work is enqueued before calling workqueue_wait. Note that Note that if the workqueue is WQ_PERCPU, the caller can enqueue a new work to another queue other than the waiting queue. Discussed on tech-kern@ Ensure the timer isn't running by using workqueue_wait Functionalize some routines to add new tests easily (NFC) Add a test case for workqueue_wait Fix build
|
1.6.4.1 | 10-Jun-2019 |
christos | Sync with HEAD
|
1.6.2.1 | 26-Dec-2018 |
pgoyette | Sync with HEAD, resolve a few conflicts
|
1.1 | 14-Jun-2010 |
pooka | add a vm allocator test which tests that: * RUMP_MEMLIMIT works * allocating memory with PR_NOWAIT will fail immediately if no memory is available and PR_WAITOK will wait for memory to be available
|
1.8 | 17-Mar-2020 |
ad | Tweak the March 14th change to make page waits interlocked by pg->interlock. Remove unneeded changes and only deal with the PQ_WANTED flag, to exclude possible bugs.
|
1.7 | 14-Mar-2020 |
ad | Catch up with reality.
|
1.6 | 23-Feb-2020 |
ad | UVM locking changes, proposed on tech-kern:
- Change the lock on uvm_object, vm_amap and vm_anon to be a RW lock. - Break v_interlock and vmobjlock apart. v_interlock remains a mutex. - Do partial PV list locking in the x86 pmap. Others to follow later.
|
1.5 | 07-Aug-2011 |
rmind | branches: 1.5.42; Rename slightly misleading KTHREAD_JOINABLE to KTHREAD_MUSTJOIN.
|
1.4 | 12-Jun-2011 |
mrg | vmobjlock is now a pointer to kmutex_t. use it as one.
|
1.3 | 09-Sep-2010 |
pooka | branches: 1.3.4; hold object lock across page unbusy
|
1.2 | 08-Sep-2010 |
pooka | vm object must be locked during page allocation.
|
1.1 | 31-May-2010 |
pooka | Add some kernel namespace (i.e. _KERNEL) helpers for regression tests.
|
1.3.4.1 | 23-Jun-2011 |
cherry | Catchup with rmind-uvmplock merge.
|
1.5.42.1 | 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
1.9 | 09-Aug-2023 |
riastradh | workqueue(9) tests: Add test for PR kern/57574.
XXX pullup-10 XXX pullup-9 XXX pullup-8
|
1.8 | 28-Dec-2018 |
thorpej | branches: 1.8.2; 1.8.10; Add a test case that exercises repeated sceduling and cancelling of a job, with periodic dropping of the interlock.
|
1.7 | 24-Dec-2018 |
thorpej | Add rump-based test cases for threadpool(9).
|
1.6 | 28-Dec-2017 |
ozaki-r | branches: 1.6.2; 1.6.4; Add a test case for workqueue_wait
|
1.5 | 29-Sep-2017 |
maya | Add declaration. build fix
sorry, I forgot to commit this file.
|
1.4 | 14-Jan-2011 |
pooka | branches: 1.4.38; elementary tests for rump sigmodels
|
1.3 | 06-Jan-2011 |
pooka | Add some tests for lock errors. Notably, some of them fare nicely with just the pthread consistency checks (which are enabled by default in rumpuser), but others require real LOCKDEBUG.
|
1.2 | 14-Jun-2010 |
pooka | add a vm allocator test which tests that: * RUMP_MEMLIMIT works * allocating memory with PR_NOWAIT will fail immediately if no memory is available and PR_WAITOK will wait for memory to be available
|
1.1 | 31-May-2010 |
pooka | Add some kernel namespace (i.e. _KERNEL) helpers for regression tests.
|
1.4.38.1 | 16-Jan-2018 |
martin | Pull up following revision(s) (requested by ozaki-r in ticket #497): tests/rump/rumpkern/Makefile: revision 1.16 tests/rump/kernspace/Makefile: revision 1.6 tests/rump/kernspace/workqueue.c: revision 1.1 tests/rump/kernspace/workqueue.c: revision 1.2 tests/rump/kernspace/workqueue.c: revision 1.3 tests/rump/kernspace/workqueue.c: revision 1.4 tests/rump/kernspace/workqueue.c: revision 1.5 tests/rump/kernspace/workqueue.c: revision 1.6 tests/rump/rumpkern/t_workqueue.c: revision 1.1 sys/sys/workqueue.h: revision 1.10 tests/rump/rumpkern/t_workqueue.c: revision 1.2 tests/rump/kernspace/kernspace.h: revision 1.5 tests/rump/kernspace/kernspace.h: revision 1.6 sys/net/if_bridge.c: revision 1.147 distrib/sets/lists/debug/mi: revision 1.225 sys/kern/subr_workqueue.c: revision 1.34 share/man/man9/workqueue.9: revision 1.12 sys/net/if_spppsubr.c: revision 1.178 distrib/sets/lists/tests/mi: revision 1.763 Add simple test for workqueue(9) Add declaration. build fix sorry, I forgot to commit this file. Tweak use of cv_timedwait - Handle its return value - Specify more appropriate time-out periods (2 ticks is too short) Fix a race condition on taking the mutex The workqueue worker can take the mutex before the tester tries to take it after calling workqueue_enqueue. If it happens, the worker calls cv_broadcast before the tester calls cv_timedwait and the tester will wait until the cv timed out Take the mutex before calling workqueue_enqueue so that the tester surely calls cv_timedwait before the worker calls cv_broadcast. The fix stabilizes the test, t_workqueue/workqueue1. Add workqueue_wait that waits for a specific work to finish The caller must ensure that no new work is enqueued before calling workqueue_wait. Note that Note that if the workqueue is WQ_PERCPU, the caller can enqueue a new work to another queue other than the waiting queue. Discussed on tech-kern@ Ensure the timer isn't running by using workqueue_wait Functionalize some routines to add new tests easily (NFC) Add a test case for workqueue_wait Fix build
|
1.6.4.1 | 10-Jun-2019 |
christos | Sync with HEAD
|
1.6.2.2 | 18-Jan-2019 |
pgoyette | Synch with HEAD
|
1.6.2.1 | 26-Dec-2018 |
pgoyette | Sync with HEAD, resolve a few conflicts
|
1.8.10.1 | 04-Sep-2023 |
martin | Pull up following revision(s) (requested by riastradh in ticket #342):
sys/kern/subr_workqueue.c: revision 1.42 sys/kern/subr_workqueue.c: revision 1.43 sys/kern/subr_workqueue.c: revision 1.44 sys/kern/subr_workqueue.c: revision 1.45 sys/kern/subr_workqueue.c: revision 1.46 tests/rump/kernspace/workqueue.c: revision 1.7 sys/kern/subr_workqueue.c: revision 1.47 tests/rump/kernspace/workqueue.c: revision 1.8 tests/rump/kernspace/workqueue.c: revision 1.9 tests/rump/rumpkern/t_workqueue.c: revision 1.3 tests/rump/rumpkern/t_workqueue.c: revision 1.4 tests/rump/kernspace/kernspace.h: revision 1.9 tests/rump/rumpkern/Makefile: revision 1.20
tests/rump/rumpkern: Use PROGDPLIBS, not explicit -L/-l.
This way we relink the t_* test programs whenever changes under tests/rump/kernspace change libkernspace.a.
workqueue(9) tests: Nix trailing whitespace.
workqueue(9) tests: Destroy struct work immediately on entry.
workqueue(9) tests: Add test for PR kern/57574.
workqueue(9): Avoid touching running work items in workqueue_wait.
As soon as the workqueue function has called, it is forbidden to touch the struct work passed to it -- the function might free or reuse the data structure it is embedded in.
So workqueue_wait is forbidden to search the queue for the batch of running work items. Instead, use a generation number which is odd while the thread is processing a batch of work and even when not.
There's still a small optimization available with the struct work pointer to wait for: if we find the work item in one of the per-CPU _pending_ queues, then after we wait for a batch of work to complete on that CPU, we don't need to wait for work on any other CPUs. PR kern/57574
workqueue(9): Sprinkle dtrace probes for workqueue_wait edge cases.
Let's make it easy to find out whether these are hit.
workqueue(9): Stop violating queue(3) internals.
workqueue(9): Avoid unnecessary mutex_exit/enter cycle each loop.
workqueue(9): Sort includes. No functional change intended.
workqueue(9): Factor out wq->wq_flags & WQ_FPU in workqueue_worker. No functional change intended. Makes it clearer that s is initialized when used.
|
1.8.2.1 | 18-Apr-2024 |
martin | Pull up following revision(s) (requested by riastradh in ticket #1830):
sys/kern/subr_workqueue.c: revision 1.40 sys/kern/subr_workqueue.c: revision 1.41 sys/kern/subr_workqueue.c: revision 1.42 sys/kern/subr_workqueue.c: revision 1.43 sys/kern/subr_workqueue.c: revision 1.44 sys/kern/subr_workqueue.c: revision 1.45 sys/kern/subr_workqueue.c: revision 1.46 tests/rump/kernspace/workqueue.c: revision 1.7 sys/kern/subr_workqueue.c: revision 1.47 tests/rump/kernspace/workqueue.c: revision 1.8 tests/rump/kernspace/workqueue.c: revision 1.9 tests/rump/rumpkern/t_workqueue.c: revision 1.3 tests/rump/rumpkern/t_workqueue.c: revision 1.4 tests/rump/kernspace/kernspace.h: revision 1.9 tests/rump/rumpkern/Makefile: revision 1.20 sys/kern/subr_workqueue.c: revision 1.39 share/man/man9/workqueue.9: revision 1.15 (all via patch)
workqueue: Lift unnecessary restriction on workqueue_wait.
Allow multiple concurrent waits at a time, and allow enqueueing work at the same time (as long as it's not the work we're waiting for).
This way multiple users can use a shared global workqueue and safely wait for individual work items concurrently, while the workqueue is still in use for other items (e.g., wg(4) peers).
This has the side effect of taking away a diagnostic measure, but I think allowing the diagnostic's false positives instead of rejecting them is worth it. We could cheaply add it back with some false negatives if it's important. workqueue(9): workqueue_wait and workqueue_destroy may sleep.
But might not, so assert sleepable up front. workqueue(9): Sprinkle dtrace probes. tests/rump/rumpkern: Use PROGDPLIBS, not explicit -L/-l.
This way we relink the t_* test programs whenever changes under tests/rump/kernspace change libkernspace.a.
workqueue(9) tests: Nix trailing whitespace.
workqueue(9) tests: Destroy struct work immediately on entry.
workqueue(9) tests: Add test for PR kern/57574.
workqueue(9): Avoid touching running work items in workqueue_wait.
As soon as the workqueue function has called, it is forbidden to touch the struct work passed to it -- the function might free or reuse the data structure it is embedded in.
So workqueue_wait is forbidden to search the queue for the batch of running work items. Instead, use a generation number which is odd while the thread is processing a batch of work and even when not. There's still a small optimization available with the struct work pointer to wait for: if we find the work item in one of the per-CPU _pending_ queues, then after we wait for a batch of work to complete on that CPU, we don't need to wait for work on any other CPUs. PR kern/57574
workqueue(9): Sprinkle dtrace probes for workqueue_wait edge cases.
Let's make it easy to find out whether these are hit.
workqueue(9): Stop violating queue(3) internals.
workqueue(9): Avoid unnecessary mutex_exit/enter cycle each loop.
workqueue(9): Sort includes. No functional change intended.
workqueue(9): Factor out wq->wq_flags & WQ_FPU in workqueue_worker. No functional change intended. Makes it clearer that s is initialized when used.
|
1.1 | 06-Jan-2011 |
pooka | Add some tests for lock errors. Notably, some of them fare nicely with just the pthread consistency checks (which are enabled by default in rumpuser), but others require real LOCKDEBUG.
|
1.2 | 23-May-2020 |
ad | Move proc_lock into the data segment. It was dynamically allocated because at the time we had mutex_obj_alloc() but not __cacheline_aligned.
|
1.1 | 14-Jan-2011 |
pooka | elementary tests for rump sigmodels
|
1.2 | 07-Aug-2011 |
rmind | Rename slightly misleading KTHREAD_JOINABLE to KTHREAD_MUSTJOIN.
|
1.1 | 31-May-2010 |
pooka | Add some kernel namespace (i.e. _KERNEL) helpers for regression tests.
|
1.6 | 02-Feb-2024 |
andvar | s/shold/should/
|
1.5 | 04-Jan-2019 |
thorpej | branches: 1.5.2; Fix a silly bug the "cancel thrash" test: the exit condition for the job was never set, and so if the job actually got started before the cancellation request came in, it would never finish and the cancellation request would just hang forever.
Should address a spurious automated test failure reported by kre@.
|
1.4 | 28-Dec-2018 |
thorpej | Add a test case that exercises repeated sceduling and cancelling of a job, with periodic dropping of the interlock.
|
1.3 | 26-Dec-2018 |
thorpej | - De-opaque'ify struct threadpool_job. - De-_t'ify all of the structure types.
No functional chage, no ABI change (verified with old rump unit test before and after new librump.so).
Per Taylor's request.
|
1.2 | 25-Dec-2018 |
thorpej | branches: 1.2.2; Include some non-critical-but-still-for-correctness lines of code in the cancellation unit test. (I could have sworn I actually typed these lines, no really...)
|
1.1 | 24-Dec-2018 |
thorpej | Add rump-based test cases for threadpool(9).
|
1.2.2.3 | 18-Jan-2019 |
pgoyette | Synch with HEAD
|
1.2.2.2 | 26-Dec-2018 |
pgoyette | Sync with HEAD, resolve a few conflicts
|
1.2.2.1 | 25-Dec-2018 |
pgoyette | file threadpool.c was added on branch pgoyette-compat on 2018-12-26 14:02:10 +0000
|
1.5.2.2 | 10-Jun-2019 |
christos | Sync with HEAD
|
1.5.2.1 | 04-Jan-2019 |
christos | file threadpool.c was added on branch phil-wifi on 2019-06-10 22:10:10 +0000
|
1.4 | 21-Mar-2014 |
dholland | remove sys/simplelock.h (straggler)
|
1.3 | 28-Jan-2012 |
rmind | branches: 1.3.6; tsleep(9) no more.
|
1.2 | 07-Aug-2011 |
rmind | branches: 1.2.2; Rename slightly misleading KTHREAD_JOINABLE to KTHREAD_MUSTJOIN.
|
1.1 | 31-May-2010 |
pooka | Add some kernel namespace (i.e. _KERNEL) helpers for regression tests.
|
1.2.2.2 | 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.2.2.1 | 17-Apr-2012 |
yamt | sync with head
|
1.3.6.1 | 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.10 | 10-Aug-2023 |
riastradh | workqueue(9) tests: Fix mistake in rev. 1.9.
Somehow, despite manually verifying a build/install/test of every revision in my patch series, I managed to commit the wrong version of the file for what became rev. 1.9, so the test was just broken when it went in and remained broken in the commit where I fixed the real bug and removed the xfail marker on the test.
PR kern/5757
XXX pullup-10 XXX pullup-9 XXX pullup-8
|
1.9 | 09-Aug-2023 |
riastradh | workqueue(9) tests: Add test for PR kern/57574.
XXX pullup-10 XXX pullup-9 XXX pullup-8
|
1.8 | 09-Aug-2023 |
riastradh | workqueue(9) tests: Destroy struct work immediately on entry.
|
1.7 | 09-Aug-2023 |
riastradh | workqueue(9) tests: Nix trailing whitespace.
|
1.6 | 28-Dec-2017 |
ozaki-r | branches: 1.6.2; 1.6.8; 1.6.16; Fix build
|
1.5 | 28-Dec-2017 |
ozaki-r | Add a test case for workqueue_wait
|
1.4 | 28-Dec-2017 |
ozaki-r | Functionalize some routines to add new tests easily (NFC)
|
1.3 | 28-Dec-2017 |
ozaki-r | Fix a race condition on taking the mutex
The workqueue worker can take the mutex before the tester tries to take it after calling workqueue_enqueue. If it happens, the worker calls cv_broadcast before the tester calls cv_timedwait and the tester will wait until the cv timed out
Take the mutex before calling workqueue_enqueue so that the tester surely calls cv_timedwait before the worker calls cv_broadcast.
The fix stabilizes the test, t_workqueue/workqueue1.
|
1.2 | 28-Dec-2017 |
ozaki-r | Tweak use of cv_timedwait
- Handle its return value - Specify more appropriate time-out periods (2 ticks is too short)
|
1.1 | 29-Sep-2017 |
maya | Add simple test for workqueue(9)
|
1.6.16.2 | 07-Sep-2023 |
martin | Pull up following revision(s) (requested by riastradh in ticket #353):
tests/rump/kernspace/workqueue.c: revision 1.10
workqueue(9) tests: Fix mistake in rev. 1.9.
Somehow, despite manually verifying a build/install/test of every revision in my patch series, I managed to commit the wrong version of the file for what became rev. 1.9, so the test was just broken when it went in and remained broken in the commit where I fixed the real bug and removed the xfail marker on the test.
PR kern/5757
|
1.6.16.1 | 04-Sep-2023 |
martin | Pull up following revision(s) (requested by riastradh in ticket #342):
sys/kern/subr_workqueue.c: revision 1.42 sys/kern/subr_workqueue.c: revision 1.43 sys/kern/subr_workqueue.c: revision 1.44 sys/kern/subr_workqueue.c: revision 1.45 sys/kern/subr_workqueue.c: revision 1.46 tests/rump/kernspace/workqueue.c: revision 1.7 sys/kern/subr_workqueue.c: revision 1.47 tests/rump/kernspace/workqueue.c: revision 1.8 tests/rump/kernspace/workqueue.c: revision 1.9 tests/rump/rumpkern/t_workqueue.c: revision 1.3 tests/rump/rumpkern/t_workqueue.c: revision 1.4 tests/rump/kernspace/kernspace.h: revision 1.9 tests/rump/rumpkern/Makefile: revision 1.20
tests/rump/rumpkern: Use PROGDPLIBS, not explicit -L/-l.
This way we relink the t_* test programs whenever changes under tests/rump/kernspace change libkernspace.a.
workqueue(9) tests: Nix trailing whitespace.
workqueue(9) tests: Destroy struct work immediately on entry.
workqueue(9) tests: Add test for PR kern/57574.
workqueue(9): Avoid touching running work items in workqueue_wait.
As soon as the workqueue function has called, it is forbidden to touch the struct work passed to it -- the function might free or reuse the data structure it is embedded in.
So workqueue_wait is forbidden to search the queue for the batch of running work items. Instead, use a generation number which is odd while the thread is processing a batch of work and even when not.
There's still a small optimization available with the struct work pointer to wait for: if we find the work item in one of the per-CPU _pending_ queues, then after we wait for a batch of work to complete on that CPU, we don't need to wait for work on any other CPUs. PR kern/57574
workqueue(9): Sprinkle dtrace probes for workqueue_wait edge cases.
Let's make it easy to find out whether these are hit.
workqueue(9): Stop violating queue(3) internals.
workqueue(9): Avoid unnecessary mutex_exit/enter cycle each loop.
workqueue(9): Sort includes. No functional change intended.
workqueue(9): Factor out wq->wq_flags & WQ_FPU in workqueue_worker. No functional change intended. Makes it clearer that s is initialized when used.
|
1.6.8.1 | 18-Apr-2024 |
martin | Pull up following revision(s) (requested by riastradh in ticket #1830):
sys/kern/subr_workqueue.c: revision 1.40 sys/kern/subr_workqueue.c: revision 1.41 sys/kern/subr_workqueue.c: revision 1.42 sys/kern/subr_workqueue.c: revision 1.43 sys/kern/subr_workqueue.c: revision 1.44 sys/kern/subr_workqueue.c: revision 1.45 sys/kern/subr_workqueue.c: revision 1.46 tests/rump/kernspace/workqueue.c: revision 1.7 sys/kern/subr_workqueue.c: revision 1.47 tests/rump/kernspace/workqueue.c: revision 1.8 tests/rump/kernspace/workqueue.c: revision 1.9 tests/rump/rumpkern/t_workqueue.c: revision 1.3 tests/rump/rumpkern/t_workqueue.c: revision 1.4 tests/rump/kernspace/kernspace.h: revision 1.9 tests/rump/rumpkern/Makefile: revision 1.20 sys/kern/subr_workqueue.c: revision 1.39 share/man/man9/workqueue.9: revision 1.15 (all via patch)
workqueue: Lift unnecessary restriction on workqueue_wait.
Allow multiple concurrent waits at a time, and allow enqueueing work at the same time (as long as it's not the work we're waiting for).
This way multiple users can use a shared global workqueue and safely wait for individual work items concurrently, while the workqueue is still in use for other items (e.g., wg(4) peers).
This has the side effect of taking away a diagnostic measure, but I think allowing the diagnostic's false positives instead of rejecting them is worth it. We could cheaply add it back with some false negatives if it's important. workqueue(9): workqueue_wait and workqueue_destroy may sleep.
But might not, so assert sleepable up front. workqueue(9): Sprinkle dtrace probes. tests/rump/rumpkern: Use PROGDPLIBS, not explicit -L/-l.
This way we relink the t_* test programs whenever changes under tests/rump/kernspace change libkernspace.a.
workqueue(9) tests: Nix trailing whitespace.
workqueue(9) tests: Destroy struct work immediately on entry.
workqueue(9) tests: Add test for PR kern/57574.
workqueue(9): Avoid touching running work items in workqueue_wait.
As soon as the workqueue function has called, it is forbidden to touch the struct work passed to it -- the function might free or reuse the data structure it is embedded in.
So workqueue_wait is forbidden to search the queue for the batch of running work items. Instead, use a generation number which is odd while the thread is processing a batch of work and even when not. There's still a small optimization available with the struct work pointer to wait for: if we find the work item in one of the per-CPU _pending_ queues, then after we wait for a batch of work to complete on that CPU, we don't need to wait for work on any other CPUs. PR kern/57574
workqueue(9): Sprinkle dtrace probes for workqueue_wait edge cases.
Let's make it easy to find out whether these are hit.
workqueue(9): Stop violating queue(3) internals.
workqueue(9): Avoid unnecessary mutex_exit/enter cycle each loop.
workqueue(9): Sort includes. No functional change intended.
workqueue(9): Factor out wq->wq_flags & WQ_FPU in workqueue_worker. No functional change intended. Makes it clearer that s is initialized when used.
|
1.6.2.2 | 16-Jan-2018 |
martin | Pull up following revision(s) (requested by ozaki-r in ticket #497): tests/rump/rumpkern/Makefile: revision 1.16 tests/rump/kernspace/Makefile: revision 1.6 tests/rump/kernspace/workqueue.c: revision 1.1 tests/rump/kernspace/workqueue.c: revision 1.2 tests/rump/kernspace/workqueue.c: revision 1.3 tests/rump/kernspace/workqueue.c: revision 1.4 tests/rump/kernspace/workqueue.c: revision 1.5 tests/rump/kernspace/workqueue.c: revision 1.6 tests/rump/rumpkern/t_workqueue.c: revision 1.1 sys/sys/workqueue.h: revision 1.10 tests/rump/rumpkern/t_workqueue.c: revision 1.2 tests/rump/kernspace/kernspace.h: revision 1.5 tests/rump/kernspace/kernspace.h: revision 1.6 sys/net/if_bridge.c: revision 1.147 distrib/sets/lists/debug/mi: revision 1.225 sys/kern/subr_workqueue.c: revision 1.34 share/man/man9/workqueue.9: revision 1.12 sys/net/if_spppsubr.c: revision 1.178 distrib/sets/lists/tests/mi: revision 1.763 Add simple test for workqueue(9) Add declaration. build fix sorry, I forgot to commit this file. Tweak use of cv_timedwait - Handle its return value - Specify more appropriate time-out periods (2 ticks is too short) Fix a race condition on taking the mutex The workqueue worker can take the mutex before the tester tries to take it after calling workqueue_enqueue. If it happens, the worker calls cv_broadcast before the tester calls cv_timedwait and the tester will wait until the cv timed out Take the mutex before calling workqueue_enqueue so that the tester surely calls cv_timedwait before the worker calls cv_broadcast. The fix stabilizes the test, t_workqueue/workqueue1. Add workqueue_wait that waits for a specific work to finish The caller must ensure that no new work is enqueued before calling workqueue_wait. Note that Note that if the workqueue is WQ_PERCPU, the caller can enqueue a new work to another queue other than the waiting queue. Discussed on tech-kern@ Ensure the timer isn't running by using workqueue_wait Functionalize some routines to add new tests easily (NFC) Add a test case for workqueue_wait Fix build
|
1.6.2.1 | 28-Dec-2017 |
martin | file workqueue.c was added on branch netbsd-8 on 2018-01-16 13:01:10 +0000
|
1.2 | 13-Jul-2010 |
jmmv | Get rid of static Atffiles and let bsd.test.mk generate them on the fly.
|
1.1 | 09-Jun-2010 |
pooka | Add a test which checks autoloading modules from the host's /stand/arch/vers/kmods works in rump (and that the result is usable ;).
On i386 this "just works". For amd64, due to -mcmodel=kernel, things are a little more complicated. We must have the entire rump kernel loaded in the lower 2GB. Currently, this can be done either by using the non-PIC version for the rump kernel compiled with -mcmodel=small, or, as njoly pointed out, using netbsd32, which causes vm_default_addr() to give something in the lower 2GB and therefore shared libs "magically" getting loaded there. I guess it would be possible to put a suggested vaddr into the rump kernel libs and make ld.elf_so map memory from the suggested address if present ... but that's another show.
Also thanks to tron for access to an amd64 so that I could verify the test works.
|
1.14 | 24-Apr-2023 |
uwe | tests/rump/modautoload: reorder -lrumpvfs_nofifofs
Make the way we spell "-lrumpvfs -lrumpvfs_nofifofs" hack consistent. The order doesn't matter here because of --whole-archive.
|
1.13 | 07-Jul-2021 |
martin | Allow to set sanitizer flags for the rump build from the build.sh command line, like: -V RUMP_SANITIZE=address
|
1.12 | 26-May-2020 |
christos | Fix alpha build (relocation truncated to fit: GPREL16 against symbol ...) https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47230
|
1.11 | 16-May-2020 |
christos | Do the same thing with linker flags instead of directly specifying the archives.
|
1.10 | 16-May-2020 |
christos | more nofifofs
|
1.9 | 17-Aug-2019 |
kamil | Avoid symbol clashes in test/rump/modautoload/t_modautoload with sanitizers
Set SANITIZER_RENAME_SYMBOL.t_modautoload to:
* sysctlbyname * sysctlgetmibinfo
|
1.8 | 14-Oct-2016 |
christos | branches: 1.8.14; 1.8.16; Disable aslr too since we are playing address space range tricks.
|
1.7 | 10-Sep-2016 |
christos | need bsd.init.mk
|
1.6 | 27-Aug-2016 |
christos | don't disable PIE
|
1.5 | 27-Aug-2016 |
christos | needs mprotect disable since it loads kernel code and relocates it.
|
1.4 | 20-Aug-2016 |
christos | add missing library dependencies.
|
1.3 | 27-Dec-2015 |
pgoyette | branches: 1.3.2; When MODULAR kernels grew a MODULAR_DEFAULT_AUTOLOAD option, (in rev 1.98 of src/sys/kern/kern_module.c), the default was "off" for all kernels including rump kernels. While many (most?) kernel config files were updated to include the new option, rump kernels weren't so lucky. Thus, rump kernels still had autoload disabled.
This commit uses rump_sysctl to change the module_autoload_on value to true (ie, enabled) before trying to test if autoloading actually works.
For now, I am _not_ changing the default for all rump kernels. I'll leave that for another day, after all appropriate discussion has occurred.
|
1.2 | 10-Mar-2014 |
pooka | Move the "is arch capable of loading native kernel modules into rump kernel" clauses from bsd.own.mk to Makefile.rump. Also, add a rump_nativeabi_p() call to determine if rump kernel is compiled with native ABI support.
|
1.1 | 09-Jun-2010 |
pooka | branches: 1.1.6; 1.1.12; Add a test which checks autoloading modules from the host's /stand/arch/vers/kmods works in rump (and that the result is usable ;).
On i386 this "just works". For amd64, due to -mcmodel=kernel, things are a little more complicated. We must have the entire rump kernel loaded in the lower 2GB. Currently, this can be done either by using the non-PIC version for the rump kernel compiled with -mcmodel=small, or, as njoly pointed out, using netbsd32, which causes vm_default_addr() to give something in the lower 2GB and therefore shared libs "magically" getting loaded there. I guess it would be possible to put a suggested vaddr into the rump kernel libs and make ld.elf_so map memory from the suggested address if present ... but that's another show.
Also thanks to tron for access to an amd64 so that I could verify the test works.
|
1.1.12.1 | 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.1.6.1 | 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.3.2.1 | 04-Nov-2016 |
pgoyette | Sync with HEAD
|
1.8.16.1 | 19-Aug-2019 |
martin | Pull up following revision(s) (requested by kamil in ticket #91):
tests/rump/modautoload/Makefile: revision 1.9
Avoid symbol clashes in test/rump/modautoload/t_modautoload with sanitizers
Set SANITIZER_RENAME_SYMBOL.t_modautoload to:
* sysctlbyname * sysctlgetmibinfo
|
1.8.14.1 | 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.6 | 13-Jan-2017 |
christos | Don't play with "../.." in includes for h_macros.h; deal with it centrally. Minor fixes.
|
1.5 | 14-Sep-2016 |
ozaki-r | Fill old_len which is required by sysctlbyname
|
1.4 | 27-Dec-2015 |
pgoyette | branches: 1.4.2; Remove a left-over debugging variable. Fix the build.
|
1.3 | 27-Dec-2015 |
pgoyette | When MODULAR kernels grew a MODULAR_DEFAULT_AUTOLOAD option, (in rev 1.98 of src/sys/kern/kern_module.c), the default was "off" for all kernels including rump kernels. While many (most?) kernel config files were updated to include the new option, rump kernels weren't so lucky. Thus, rump kernels still had autoload disabled.
This commit uses rump_sysctl to change the module_autoload_on value to true (ie, enabled) before trying to test if autoloading actually works.
For now, I am _not_ changing the default for all rump kernels. I'll leave that for another day, after all appropriate discussion has occurred.
|
1.2 | 10-Mar-2014 |
pooka | Move the "is arch capable of loading native kernel modules into rump kernel" clauses from bsd.own.mk to Makefile.rump. Also, add a rump_nativeabi_p() call to determine if rump kernel is compiled with native ABI support.
|
1.1 | 09-Jun-2010 |
pooka | branches: 1.1.6; 1.1.12; Add a test which checks autoloading modules from the host's /stand/arch/vers/kmods works in rump (and that the result is usable ;).
On i386 this "just works". For amd64, due to -mcmodel=kernel, things are a little more complicated. We must have the entire rump kernel loaded in the lower 2GB. Currently, this can be done either by using the non-PIC version for the rump kernel compiled with -mcmodel=small, or, as njoly pointed out, using netbsd32, which causes vm_default_addr() to give something in the lower 2GB and therefore shared libs "magically" getting loaded there. I guess it would be possible to put a suggested vaddr into the rump kernel libs and make ld.elf_so map memory from the suggested address if present ... but that's another show.
Also thanks to tron for access to an amd64 so that I could verify the test works.
|
1.1.12.1 | 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.1.6.1 | 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.4.2.2 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.4.2.1 | 04-Nov-2016 |
pgoyette | Sync with HEAD
|
1.3 | 13-Jul-2010 |
jmmv | Get rid of static Atffiles and let bsd.test.mk generate them on the fly.
|
1.2 | 24-Sep-2009 |
pooka | Add regression test to verify that linksets work correctly with rump.
|
1.1 | 02-May-2009 |
pooka | branches: 1.1.2; add regression test for module init/fini in rump
|
1.1.2.2 | 13-May-2009 |
jym | Sync with HEAD.
Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
|
1.1.2.1 | 02-May-2009 |
jym | file Atffile was added on branch jym-xensuspend on 2009-05-13 19:19:34 +0000
|
1.20 | 09-Aug-2023 |
riastradh | tests/rump/rumpkern: Use PROGDPLIBS, not explicit -L/-l.
This way we relink the t_* test programs whenever changes under tests/rump/kernspace change libkernspace.a.
|
1.19 | 01-Mar-2020 |
christos | branches: 1.19.8; Centralize the base rump libraries into a variable used by all the other Makefiles so that we can make changes to it centrally as needed and have less mess. Fixes the sun2 build that needs rumpvfs after librump after the latest changes.
|
1.18 | 26-Dec-2018 |
thorpej | branches: 1.18.2; Add -lrump after -lkernspace, because kernspace.a references symbols from librump and hooray for static linking semantics.
Fixes sun2 build issue reported by kre@.
(XXX WTF did this only start failing after the addition of t_threadpool?)
|
1.17 | 24-Dec-2018 |
thorpej | Add rump-based test cases for threadpool(9).
|
1.16 | 29-Sep-2017 |
maya | branches: 1.16.2; 1.16.4; Add simple test for workqueue(9)
|
1.15 | 10-Jun-2014 |
he | branches: 1.15.16; Fix static linking for the tests: -lrump is also used by -lrumpuser, so we also need -lrump after -lrumpuser. Fixes build for sun2.
|
1.14 | 14-Jan-2011 |
pooka | branches: 1.14.12; 1.14.22; test remove signal delivery
|
1.13 | 14-Jan-2011 |
pooka | elementary tests for rump sigmodels
|
1.12 | 06-Jan-2011 |
pooka | Add some tests for lock errors. Notably, some of them fare nicely with just the pthread consistency checks (which are enabled by default in rumpuser), but others require real LOCKDEBUG.
|
1.11 | 13-Dec-2010 |
pooka | Retire h_simpleserver and use rump_server instead.
|
1.10 | 30-Nov-2010 |
pooka | Add a simple and stress test cases for the rump remote syscall code. Fun fact: since the server daemonizes into its own process group, it's not in atf's pgrp. Use rump_sys_reboot() in atf cleanup to kill the server after the test.
|
1.9 | 09-Nov-2010 |
pooka | Test copystr/copyinstr/copyoutstr focusing on the off-by-one cases.
As a notable caveat, this does not test the remote RPC paths of those routines, which are arguably a little more complex.
|
1.8 | 01-Sep-2010 |
pooka | tests for rump_lwproc
|
1.7 | 31-May-2010 |
pooka | add tests for: * threading * tsleep variants * uvm page busying and wanting
|
1.6 | 25-Jan-2010 |
pooka | msdosfs depends on disk devices now
|
1.5 | 28-Nov-2009 |
he | It seems that LDADD.file gets added to the linker invocation after the LDADD variable expansion. To support static linking, ensure that the common libraries gets tacked on at the end as well (order matters for static linking), by using a convenience variable and add it to the end of LDADD.t_modlinkset, as well as when doing the general LDADD+= setting.
|
1.4 | 06-Nov-2009 |
pooka | WARNS=4
|
1.3 | 24-Sep-2009 |
pooka | Add regression test to verify that linksets work correctly with rump.
|
1.2 | 09-Jun-2009 |
he | Apparently, there's not a clear dependency ordering for the libraries, this becomes apparent when linking statically (e.g. as for sun2). Add an extra instance of -lrump to the library list so that it can be linked statically as well.
|
1.1 | 02-May-2009 |
pooka | branches: 1.1.2; add regression test for module init/fini in rump
|
1.1.2.2 | 13-May-2009 |
jym | Sync with HEAD.
Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
|
1.1.2.1 | 02-May-2009 |
jym | file Makefile was added on branch jym-xensuspend on 2009-05-13 19:19:34 +0000
|
1.14.22.1 | 10-Aug-2014 |
tls | Rebase.
|
1.14.12.1 | 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.15.16.1 | 16-Jan-2018 |
martin | Pull up following revision(s) (requested by ozaki-r in ticket #497): tests/rump/rumpkern/Makefile: revision 1.16 tests/rump/kernspace/Makefile: revision 1.6 tests/rump/kernspace/workqueue.c: revision 1.1 tests/rump/kernspace/workqueue.c: revision 1.2 tests/rump/kernspace/workqueue.c: revision 1.3 tests/rump/kernspace/workqueue.c: revision 1.4 tests/rump/kernspace/workqueue.c: revision 1.5 tests/rump/kernspace/workqueue.c: revision 1.6 tests/rump/rumpkern/t_workqueue.c: revision 1.1 sys/sys/workqueue.h: revision 1.10 tests/rump/rumpkern/t_workqueue.c: revision 1.2 tests/rump/kernspace/kernspace.h: revision 1.5 tests/rump/kernspace/kernspace.h: revision 1.6 sys/net/if_bridge.c: revision 1.147 distrib/sets/lists/debug/mi: revision 1.225 sys/kern/subr_workqueue.c: revision 1.34 share/man/man9/workqueue.9: revision 1.12 sys/net/if_spppsubr.c: revision 1.178 distrib/sets/lists/tests/mi: revision 1.763 Add simple test for workqueue(9) Add declaration. build fix sorry, I forgot to commit this file. Tweak use of cv_timedwait - Handle its return value - Specify more appropriate time-out periods (2 ticks is too short) Fix a race condition on taking the mutex The workqueue worker can take the mutex before the tester tries to take it after calling workqueue_enqueue. If it happens, the worker calls cv_broadcast before the tester calls cv_timedwait and the tester will wait until the cv timed out Take the mutex before calling workqueue_enqueue so that the tester surely calls cv_timedwait before the worker calls cv_broadcast. The fix stabilizes the test, t_workqueue/workqueue1. Add workqueue_wait that waits for a specific work to finish The caller must ensure that no new work is enqueued before calling workqueue_wait. Note that Note that if the workqueue is WQ_PERCPU, the caller can enqueue a new work to another queue other than the waiting queue. Discussed on tech-kern@ Ensure the timer isn't running by using workqueue_wait Functionalize some routines to add new tests easily (NFC) Add a test case for workqueue_wait Fix build
|
1.16.4.2 | 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
1.16.4.1 | 10-Jun-2019 |
christos | Sync with HEAD
|
1.16.2.2 | 01-Jan-2019 |
pgoyette | Bring in some fixes from HEAD to address a couple of build breaks (in i386 ipmi driver and sun2 rump tests). Also fix a 'resolve conflict' from previous commit in sparc64
With this, I am able to successfully build 66 out of 67 architectures (the same architectures as handled by the releng build server. The only exception is evbarm64 which has a strange build failure during the installcd step - the same failure occurs on HEAD. It seems to be something in the build itself, perhaps a difference between handling of -O vs -M (MAKEOBJDIR vs MAKEOBJDIRPREFIX).
|
1.16.2.1 | 26-Dec-2018 |
pgoyette | Sync with HEAD, resolve a few conflicts
|
1.18.2.1 | 18-Apr-2024 |
martin | Pull up following revision(s) (requested by riastradh in ticket #1830):
sys/kern/subr_workqueue.c: revision 1.40 sys/kern/subr_workqueue.c: revision 1.41 sys/kern/subr_workqueue.c: revision 1.42 sys/kern/subr_workqueue.c: revision 1.43 sys/kern/subr_workqueue.c: revision 1.44 sys/kern/subr_workqueue.c: revision 1.45 sys/kern/subr_workqueue.c: revision 1.46 tests/rump/kernspace/workqueue.c: revision 1.7 sys/kern/subr_workqueue.c: revision 1.47 tests/rump/kernspace/workqueue.c: revision 1.8 tests/rump/kernspace/workqueue.c: revision 1.9 tests/rump/rumpkern/t_workqueue.c: revision 1.3 tests/rump/rumpkern/t_workqueue.c: revision 1.4 tests/rump/kernspace/kernspace.h: revision 1.9 tests/rump/rumpkern/Makefile: revision 1.20 sys/kern/subr_workqueue.c: revision 1.39 share/man/man9/workqueue.9: revision 1.15 (all via patch)
workqueue: Lift unnecessary restriction on workqueue_wait.
Allow multiple concurrent waits at a time, and allow enqueueing work at the same time (as long as it's not the work we're waiting for).
This way multiple users can use a shared global workqueue and safely wait for individual work items concurrently, while the workqueue is still in use for other items (e.g., wg(4) peers).
This has the side effect of taking away a diagnostic measure, but I think allowing the diagnostic's false positives instead of rejecting them is worth it. We could cheaply add it back with some false negatives if it's important. workqueue(9): workqueue_wait and workqueue_destroy may sleep.
But might not, so assert sleepable up front. workqueue(9): Sprinkle dtrace probes. tests/rump/rumpkern: Use PROGDPLIBS, not explicit -L/-l.
This way we relink the t_* test programs whenever changes under tests/rump/kernspace change libkernspace.a.
workqueue(9) tests: Nix trailing whitespace.
workqueue(9) tests: Destroy struct work immediately on entry.
workqueue(9) tests: Add test for PR kern/57574.
workqueue(9): Avoid touching running work items in workqueue_wait.
As soon as the workqueue function has called, it is forbidden to touch the struct work passed to it -- the function might free or reuse the data structure it is embedded in.
So workqueue_wait is forbidden to search the queue for the batch of running work items. Instead, use a generation number which is odd while the thread is processing a batch of work and even when not. There's still a small optimization available with the struct work pointer to wait for: if we find the work item in one of the per-CPU _pending_ queues, then after we wait for a batch of work to complete on that CPU, we don't need to wait for work on any other CPUs. PR kern/57574
workqueue(9): Sprinkle dtrace probes for workqueue_wait edge cases.
Let's make it easy to find out whether these are hit.
workqueue(9): Stop violating queue(3) internals.
workqueue(9): Avoid unnecessary mutex_exit/enter cycle each loop.
workqueue(9): Sort includes. No functional change intended.
workqueue(9): Factor out wq->wq_flags & WQ_FPU in workqueue_worker. No functional change intended. Makes it clearer that s is initialized when used.
|
1.19.8.1 | 04-Sep-2023 |
martin | Pull up following revision(s) (requested by riastradh in ticket #342):
sys/kern/subr_workqueue.c: revision 1.42 sys/kern/subr_workqueue.c: revision 1.43 sys/kern/subr_workqueue.c: revision 1.44 sys/kern/subr_workqueue.c: revision 1.45 sys/kern/subr_workqueue.c: revision 1.46 tests/rump/kernspace/workqueue.c: revision 1.7 sys/kern/subr_workqueue.c: revision 1.47 tests/rump/kernspace/workqueue.c: revision 1.8 tests/rump/kernspace/workqueue.c: revision 1.9 tests/rump/rumpkern/t_workqueue.c: revision 1.3 tests/rump/rumpkern/t_workqueue.c: revision 1.4 tests/rump/kernspace/kernspace.h: revision 1.9 tests/rump/rumpkern/Makefile: revision 1.20
tests/rump/rumpkern: Use PROGDPLIBS, not explicit -L/-l.
This way we relink the t_* test programs whenever changes under tests/rump/kernspace change libkernspace.a.
workqueue(9) tests: Nix trailing whitespace.
workqueue(9) tests: Destroy struct work immediately on entry.
workqueue(9) tests: Add test for PR kern/57574.
workqueue(9): Avoid touching running work items in workqueue_wait.
As soon as the workqueue function has called, it is forbidden to touch the struct work passed to it -- the function might free or reuse the data structure it is embedded in.
So workqueue_wait is forbidden to search the queue for the batch of running work items. Instead, use a generation number which is odd while the thread is processing a batch of work and even when not.
There's still a small optimization available with the struct work pointer to wait for: if we find the work item in one of the per-CPU _pending_ queues, then after we wait for a batch of work to complete on that CPU, we don't need to wait for work on any other CPUs. PR kern/57574
workqueue(9): Sprinkle dtrace probes for workqueue_wait edge cases.
Let's make it easy to find out whether these are hit.
workqueue(9): Stop violating queue(3) internals.
workqueue(9): Avoid unnecessary mutex_exit/enter cycle each loop.
workqueue(9): Sort includes. No functional change intended.
workqueue(9): Factor out wq->wq_flags & WQ_FPU in workqueue_worker. No functional change intended. Makes it clearer that s is initialized when used.
|
1.1 | 23-Jan-2016 |
christos | bridge with the higher Makefile.inc
|
1.2 | 26-Jul-2013 |
njoly | New testcase which checks that rump copyin/copyout/copyinstr/copyoutstr version return EFAULT for special NULL "user" address. ok pooka@.
|
1.1 | 09-Nov-2010 |
pooka | branches: 1.1.6; 1.1.12; Test copystr/copyinstr/copyoutstr focusing on the off-by-one cases.
As a notable caveat, this does not test the remote RPC paths of those routines, which are arguably a little more complex.
|
1.1.12.1 | 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.1.6.1 | 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.6 | 28-Aug-2020 |
martin | lockme_DOUBLEINIT: The failure message differs slightly when using LOCKDEBUG, modify the expected pattern to cover both variants.
|
1.5 | 03-May-2017 |
pgoyette | Fix detection of expected results. The rump kernel code apparently includes source-code line numbers in the messages, so rather than hard-coding them in the test, just use a reg-ex to match the text.
Fixes PR bin/52207
|
1.4 | 13-Jan-2017 |
christos | branches: 1.4.4; Don't play with "../.." in includes for h_macros.h; deal with it centrally. Minor fixes.
|
1.3 | 30-Jan-2012 |
njoly | branches: 1.3.22; Adjust MEMFREE expected output to recent kmem(9) changes.
|
1.2 | 06-Jan-2011 |
pooka | branches: 1.2.6; In case of LOCKDEBUG, expect certain text in the kernel output.
|
1.1 | 06-Jan-2011 |
pooka | Add some tests for lock errors. Notably, some of them fare nicely with just the pthread consistency checks (which are enabled by default in rumpuser), but others require real LOCKDEBUG.
|
1.2.6.1 | 17-Apr-2012 |
yamt | sync with head
|
1.3.22.1 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.4.4.2 | 11-May-2017 |
pgoyette | Sync with HEAD
|
1.4.4.1 | 03-May-2017 |
pgoyette | Include fix for PR bin/52207 on the localcount2 branch.
|
1.10 | 08-Jan-2020 |
ad | Hopefully fix some problems seen with MP support on non-x86, in particular where curcpu() is defined as curlwp->l_cpu:
- mi_switch(): undo the ~2007ish optimisation to unlock curlwp before calling cpu_switchto(). It's not safe to let other actors mess with the LWP (in particular l->l_cpu) while it's still context switching. This removes l->l_ctxswtch.
- Move the LP_RUNNING flag into l->l_flag and rename to LW_RUNNING since it's now covered by the LWP's lock.
- Ditch lwp_exit_switchaway() and just call mi_switch() instead. Everything is in cache anyway so it wasn't buying much by trying to avoid saving old state. This means cpu_switchto() will never be called with prevlwp == NULL.
- Remove some KERNEL_LOCK handling which hasn't been needed for years.
|
1.9 | 13-Jan-2017 |
christos | branches: 1.9.14; Don't play with "../.." in includes for h_macros.h; deal with it centrally. Minor fixes.
|
1.8 | 10-Jan-2017 |
christos | more tests needing <sys/stat.h>
|
1.7 | 21-Jan-2015 |
pooka | branches: 1.7.2; call previous with the correct args too
|
1.6 | 21-Jan-2015 |
pooka | check that setuid() works for procs with >1 lwp
|
1.5 | 02-Jan-2011 |
pooka | + rump_lwproc_newproc -> rump_lwproc_rfork() + add a tess for rump_lwproc_rfork()
|
1.4 | 29-Oct-2010 |
pooka | implicit pid is 1 instead of 0 now
|
1.3 | 07-Sep-2010 |
pooka | +tc (turns out the bug was elsewhere, but a test is always a test)
|
1.2 | 02-Sep-2010 |
pooka | check that curlwp for an implicit context is NULL
|
1.1 | 01-Sep-2010 |
pooka | tests for rump_lwproc
|
1.7.2.1 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.9.14.1 | 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
1.10 | 13-Jan-2017 |
christos | Don't play with "../.." in includes for h_macros.h; deal with it centrally. Minor fixes.
|
1.9 | 31-May-2010 |
pooka | branches: 1.9.28; hmm, using unifdef for the previous might have been a good idea ...
|
1.8 | 31-May-2010 |
pooka | Now that atf gdb/coredump conflicts have been solved (thanks jmmv!), remove USE_ATF ifdefs.
|
1.7 | 01-May-2010 |
pooka | convert to ifdef USE_ATF
|
1.6 | 01-May-2010 |
pooka | Disable module autoload so that it won't foil our module unload test.
|
1.5 | 05-Mar-2010 |
pooka | Update to use newstyle rump_module interfaces.
|
1.4 | 06-Nov-2009 |
pooka | WARNS=4
|
1.3 | 06-Nov-2009 |
pooka | rump_module -> rump_pub_module
|
1.2 | 02-May-2009 |
pooka | branches: 1.2.2; don't hardcode /usr/lib path
|
1.1 | 02-May-2009 |
pooka | add regression test for module init/fini in rump
|
1.2.2.2 | 13-May-2009 |
jym | Sync with HEAD.
Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
|
1.2.2.1 | 02-May-2009 |
jym | file t_modcmd.c was added on branch jym-xensuspend on 2009-05-13 19:19:34 +0000
|
1.9.28.1 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.4 | 24-May-2022 |
andvar | fix various typos in comments, docs and log messages.
|
1.3 | 13-Jan-2017 |
christos | Don't play with "../.." in includes for h_macros.h; deal with it centrally. Minor fixes.
|
1.2 | 06-Nov-2009 |
pooka | branches: 1.2.28; WARNS=4
|
1.1 | 24-Sep-2009 |
pooka | Add regression test to verify that linksets work correctly with rump.
|
1.2.28.1 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.3 | 13-Jan-2017 |
christos | Don't play with "../.." in includes for h_macros.h; deal with it centrally. Minor fixes.
|
1.2 | 20-Feb-2011 |
pooka | branches: 1.2.26; explicitly set the signal model
|
1.1 | 14-Jan-2011 |
pooka | branches: 1.1.2; elementary tests for rump sigmodels
|
1.1.2.1 | 05-Mar-2011 |
bouyer | Sync with HEAD
|
1.2.26.1 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.21 | 02-Apr-2025 |
riastradh | tests/rump/rumpkern/t_sp: Go fishing for a rump_server core dump.
|
1.20 | 02-Apr-2025 |
riastradh | librumpuser: New RUMPUSER_DEBUG env var enables debug output.
Use it in t_sp:sigsafe to see if we can get more diagnostics out.
|
1.19 | 04-Apr-2024 |
riastradh | branches: 1.19.2; Temporarily make PR t_sp:sigsafe noisier.
This is an attempt to diagnose why it's flaky in the releng testbeds but not when I run it. This change will be backed out once we get new testbed output.
|
1.18 | 04-Apr-2024 |
riastradh | rumpkern/t_sp: Save stdout and stderr to report on failure.
This is not very tidy at the moment, but it's an experiment using the approach in PR bin/58112, to diagnose why t_sp:sigsafe keeps failing intermittently. If this works, perhaps can tidy it up and apply it to all the other tests that run rump_servers.
|
1.17 | 01-Sep-2020 |
gson | Format PR references consistently so that they can be automatically turned into links in HTML reports.
|
1.16 | 28-Aug-2020 |
martin | Also skip the stress_short test - it just needs way too long to timeout and fail.
|
1.15 | 28-Aug-2020 |
martin | Skip a few tests with reference to already existing PRs as after "recent" scheduler changes these tests now leave rump_server processes around that eat CPU and disturb later tests.
|
1.14 | 13-May-2019 |
bad | Get rid of all the -lrumpdev and -lrumpvfs that are no longer needed after moving rump's mainbus from rumpdev to rumpkern.
Produces the same atf-run results as before.
|
1.13 | 10-Aug-2016 |
kre | branches: 1.13.14;
+ -lrumpdev
|
1.12 | 30-Aug-2014 |
gson | On systems that have only 32M of memory, the stress_short and stress_long tests thrash a lot, and the stress_long test sometimes times out, so skip them if we don't have at least 64M.
|
1.11 | 24-Feb-2011 |
pooka | in reconnect, ignore any all reconnect messages
|
1.10 | 24-Jan-2011 |
pooka | test for rumpclient reconnect feature
|
1.9 | 14-Jan-2011 |
pooka | branches: 1.9.2; test remove signal delivery
|
1.8 | 12-Jan-2011 |
pooka | Execute a variety of syscalls in the stress test, including opening files and sockets.
|
1.7 | 12-Jan-2011 |
pooka | * run the killer stress test * reduce default runtime to 5s
|
1.6 | 10-Jan-2011 |
pooka | Make sure stressclient worker threads complete their operation instead of hanging.
|
1.5 | 06-Jan-2011 |
pooka | test rumpclient syscalls from a signal handler
|
1.4 | 05-Jan-2011 |
pooka | Some tests for rumpclient fork.
|
1.3 | 13-Dec-2010 |
pooka | Retire h_simpleserver and use rump_server instead.
|
1.2 | 12-Dec-2010 |
pooka | use rump.halt in cleanup
|
1.1 | 30-Nov-2010 |
pooka | Add a simple and stress test cases for the rump remote syscall code. Fun fact: since the server daemonizes into its own process group, it's not in atf's pgrp. Use rump_sys_reboot() in atf cleanup to kill the server after the test.
|
1.9.2.2 | 05-Mar-2011 |
bouyer | Sync with HEAD
|
1.9.2.1 | 08-Feb-2011 |
bouyer | Sync with HEAD
|
1.13.14.1 | 10-Jun-2019 |
christos | Sync with HEAD
|
1.19.2.1 | 02-Aug-2025 |
perseant | Sync with HEAD
|
1.2 | 28-Dec-2018 |
thorpej | branches: 1.2.2; Add a test case that exercises repeated sceduling and cancelling of a job, with periodic dropping of the interlock.
|
1.1 | 24-Dec-2018 |
thorpej | branches: 1.1.2; Add rump-based test cases for threadpool(9).
|
1.1.2.3 | 18-Jan-2019 |
pgoyette | Synch with HEAD
|
1.1.2.2 | 26-Dec-2018 |
pgoyette | Sync with HEAD, resolve a few conflicts
|
1.1.2.1 | 24-Dec-2018 |
pgoyette | file t_threadpool.c was added on branch pgoyette-compat on 2018-12-26 14:02:10 +0000
|
1.2.2.2 | 10-Jun-2019 |
christos | Sync with HEAD
|
1.2.2.1 | 28-Dec-2018 |
christos | file t_threadpool.c was added on branch phil-wifi on 2019-06-10 22:10:11 +0000
|
1.3 | 29-Sep-2017 |
maya | Run both tests (rather than rumptest_threadjoin twice)
|
1.2 | 13-Jan-2017 |
christos | Don't play with "../.." in includes for h_macros.h; deal with it centrally. Minor fixes.
|
1.1 | 31-May-2010 |
pooka | branches: 1.1.28; add tests for: * threading * tsleep variants * uvm page busying and wanting
|
1.1.28.1 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.2 | 13-Jan-2017 |
christos | Don't play with "../.." in includes for h_macros.h; deal with it centrally. Minor fixes.
|
1.1 | 31-May-2010 |
pooka | branches: 1.1.28; add tests for: * threading * tsleep variants * uvm page busying and wanting
|
1.1.28.1 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.8 | 02-Apr-2025 |
riastradh | tests/rump/rumpkern/t_vm: Re-enable test as xfail.
We do, after all, have a way to mark a test as expecting a crash, namely, with atf_tc_expect_signal(SIGABRT, ...). Also cite the PR while here.
It is unclear to me what the bug in the test is. Is it supposed to get the page via uobj->uo_pager->pgo_get (perhaps in turn via uvm_obj_wirepages) instead of uvm_pagealloc? This should be explained more clearly in the message (or just fixed).
PR kern/55945: rump/rumpkern/t_vm:busypage fails since early December
|
1.7 | 11-Apr-2023 |
kre | branches: 1.7.2;
PR misc/57343 (Jim Spath) - fixed a typo in atf_tc_skip message.
|
1.6 | 22-Jan-2021 |
chs | for the busypage test, replace atf_tc_expect_fail() with atf_tc_skip() because atf apparently has no way to expect a test program to crash. fixes PR 55945.
|
1.5 | 08-Dec-2020 |
chs | the busypage test is buggy, expect it to fail.
|
1.4 | 13-Jan-2017 |
christos | branches: 1.4.16; Don't play with "../.." in includes for h_macros.h; deal with it centrally. Minor fixes.
|
1.3 | 17-Mar-2012 |
hannken | branches: 1.3.14; Starting with Rev. 1.191 of kern/subr_pool.c a pool has to be inactive for at least 10 seconds before it can be reclaimed.
Change the uvmwait test timeout from 10 to 30 seconds so it has a chance to reclaim memory and succeed.
|
1.2 | 14-Jun-2010 |
pooka | branches: 1.2.6; 1.2.8; add a vm allocator test which tests that: * RUMP_MEMLIMIT works * allocating memory with PR_NOWAIT will fail immediately if no memory is available and PR_WAITOK will wait for memory to be available
|
1.1 | 31-May-2010 |
pooka | add tests for: * threading * tsleep variants * uvm page busying and wanting
|
1.2.8.1 | 25-Mar-2012 |
bouyer | Pull up following revision(s) (requested by hannken in ticket #141): tests/rump/rumpkern/t_vm.c: revision 1.3 sys/rump/librump/rumpkern/vm.c: revision 1.125 Don't take a mutex we already took 6 lines above. Starting with Rev. 1.191 of kern/subr_pool.c a pool has to be inactive for at least 10 seconds before it can be reclaimed. Change the uvmwait test timeout from 10 to 30 seconds so it has a chance to reclaim memory and succeed.
|
1.2.6.1 | 17-Apr-2012 |
yamt | sync with head
|
1.3.14.1 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.4.16.1 | 06-Jul-2021 |
martin | Pull up following revision(s) - all via patch - (requested by riastradh in ticket #1317):
sys/uvm/uvm_page.c: revision 1.248 sys/uvm/uvm_anon.c: revision 1.80 sys/rump/librump/rumpvfs/vm_vfs.c: revision 1.40 sys/rump/librump/rumpvfs/vm_vfs.c: revision 1.41 sys/rump/librump/rumpkern/vm.c: revision 1.191 sys/uvm/uvm_pager.c: revision 1.130 external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c: revision 1.71 tests/rump/rumpkern/t_vm.c: revision 1.5 tests/rump/rumpkern/t_vm.c: revision 1.6 sys/rump/librump/rumpvfs/vm_vfs.c: revision 1.39
Move the handling of PG_PAGEOUT from uvm_aio_aiodone_pages() to uvm_page_unbusy() so that all callers of uvm_page_unbusy() don't need to handle this flag separately. Split out the pages part of uvm_aio_aiodone() into uvm_aio_aiodone_pages() in rump just like in the real kernel.
In ZFS functions that can fail to copy data between the ARC and VM pages, use uvm_aio_aiodone_pages() rather than uvm_page_unbusy() so that we can handle these "I/O" errors. Fixes PR 55702.
fix an incorrect assertion in the previous commit.
Handle PG_PAGEOUT in uvm_anon_release() too.
Commit the ZFS file that I forgot in this previous commit:
Move the handling of PG_PAGEOUT from uvm_aio_aiodone_pages() to uvm_page_unbusy() so that all callers of uvm_page_unbusy() don't need to handle this flag separately. Split out the pages part of uvm_aio_aiodone() into uvm_aio_aiodone_pages() in rump just like in the real kernel.
In ZFS functions that can fail to copy data between the ARC and VM pages, use uvm_aio_aiodone_pages() rather than uvm_page_unbusy() so that we can handle these "I/O" errors. Fixes PR 55702. update the rump copy of uvm_page_unbusy() to match the real version, in particular handle PG_PAGEOUT. fixes a few atf tests. the busypage test is buggy, expect it to fail.
make rump's uvm_aio_aiodone_pages() look more like the kernel version. fixes some more rumpy assertions.
for the busypage test, replace atf_tc_expect_fail() with atf_tc_skip() because atf apparently has no way to expect a test program to crash. fixes PR 55945.
|
1.7.2.1 | 02-Aug-2025 |
perseant | Sync with HEAD
|
1.4 | 09-Aug-2023 |
riastradh | workqueue(9): Avoid touching running work items in workqueue_wait.
As soon as the workqueue function has called, it is forbidden to touch the struct work passed to it -- the function might free or reuse the data structure it is embedded in.
So workqueue_wait is forbidden to search the queue for the batch of running work items. Instead, use a generation number which is odd while the thread is processing a batch of work and even when not.
There's still a small optimization available with the struct work pointer to wait for: if we find the work item in one of the per-CPU _pending_ queues, then after we wait for a batch of work to complete on that CPU, we don't need to wait for work on any other CPUs.
PR kern/57574
XXX pullup-10 XXX pullup-9 XXX pullup-8
|
1.3 | 09-Aug-2023 |
riastradh | workqueue(9) tests: Add test for PR kern/57574.
XXX pullup-10 XXX pullup-9 XXX pullup-8
|
1.2 | 28-Dec-2017 |
ozaki-r | branches: 1.2.2; 1.2.8; 1.2.16; Add a test case for workqueue_wait
|
1.1 | 29-Sep-2017 |
maya | Add simple test for workqueue(9)
|
1.2.16.1 | 04-Sep-2023 |
martin | Pull up following revision(s) (requested by riastradh in ticket #342):
sys/kern/subr_workqueue.c: revision 1.42 sys/kern/subr_workqueue.c: revision 1.43 sys/kern/subr_workqueue.c: revision 1.44 sys/kern/subr_workqueue.c: revision 1.45 sys/kern/subr_workqueue.c: revision 1.46 tests/rump/kernspace/workqueue.c: revision 1.7 sys/kern/subr_workqueue.c: revision 1.47 tests/rump/kernspace/workqueue.c: revision 1.8 tests/rump/kernspace/workqueue.c: revision 1.9 tests/rump/rumpkern/t_workqueue.c: revision 1.3 tests/rump/rumpkern/t_workqueue.c: revision 1.4 tests/rump/kernspace/kernspace.h: revision 1.9 tests/rump/rumpkern/Makefile: revision 1.20
tests/rump/rumpkern: Use PROGDPLIBS, not explicit -L/-l.
This way we relink the t_* test programs whenever changes under tests/rump/kernspace change libkernspace.a.
workqueue(9) tests: Nix trailing whitespace.
workqueue(9) tests: Destroy struct work immediately on entry.
workqueue(9) tests: Add test for PR kern/57574.
workqueue(9): Avoid touching running work items in workqueue_wait.
As soon as the workqueue function has called, it is forbidden to touch the struct work passed to it -- the function might free or reuse the data structure it is embedded in.
So workqueue_wait is forbidden to search the queue for the batch of running work items. Instead, use a generation number which is odd while the thread is processing a batch of work and even when not.
There's still a small optimization available with the struct work pointer to wait for: if we find the work item in one of the per-CPU _pending_ queues, then after we wait for a batch of work to complete on that CPU, we don't need to wait for work on any other CPUs. PR kern/57574
workqueue(9): Sprinkle dtrace probes for workqueue_wait edge cases.
Let's make it easy to find out whether these are hit.
workqueue(9): Stop violating queue(3) internals.
workqueue(9): Avoid unnecessary mutex_exit/enter cycle each loop.
workqueue(9): Sort includes. No functional change intended.
workqueue(9): Factor out wq->wq_flags & WQ_FPU in workqueue_worker. No functional change intended. Makes it clearer that s is initialized when used.
|
1.2.8.1 | 18-Apr-2024 |
martin | Pull up following revision(s) (requested by riastradh in ticket #1830):
sys/kern/subr_workqueue.c: revision 1.40 sys/kern/subr_workqueue.c: revision 1.41 sys/kern/subr_workqueue.c: revision 1.42 sys/kern/subr_workqueue.c: revision 1.43 sys/kern/subr_workqueue.c: revision 1.44 sys/kern/subr_workqueue.c: revision 1.45 sys/kern/subr_workqueue.c: revision 1.46 tests/rump/kernspace/workqueue.c: revision 1.7 sys/kern/subr_workqueue.c: revision 1.47 tests/rump/kernspace/workqueue.c: revision 1.8 tests/rump/kernspace/workqueue.c: revision 1.9 tests/rump/rumpkern/t_workqueue.c: revision 1.3 tests/rump/rumpkern/t_workqueue.c: revision 1.4 tests/rump/kernspace/kernspace.h: revision 1.9 tests/rump/rumpkern/Makefile: revision 1.20 sys/kern/subr_workqueue.c: revision 1.39 share/man/man9/workqueue.9: revision 1.15 (all via patch)
workqueue: Lift unnecessary restriction on workqueue_wait.
Allow multiple concurrent waits at a time, and allow enqueueing work at the same time (as long as it's not the work we're waiting for).
This way multiple users can use a shared global workqueue and safely wait for individual work items concurrently, while the workqueue is still in use for other items (e.g., wg(4) peers).
This has the side effect of taking away a diagnostic measure, but I think allowing the diagnostic's false positives instead of rejecting them is worth it. We could cheaply add it back with some false negatives if it's important. workqueue(9): workqueue_wait and workqueue_destroy may sleep.
But might not, so assert sleepable up front. workqueue(9): Sprinkle dtrace probes. tests/rump/rumpkern: Use PROGDPLIBS, not explicit -L/-l.
This way we relink the t_* test programs whenever changes under tests/rump/kernspace change libkernspace.a.
workqueue(9) tests: Nix trailing whitespace.
workqueue(9) tests: Destroy struct work immediately on entry.
workqueue(9) tests: Add test for PR kern/57574.
workqueue(9): Avoid touching running work items in workqueue_wait.
As soon as the workqueue function has called, it is forbidden to touch the struct work passed to it -- the function might free or reuse the data structure it is embedded in.
So workqueue_wait is forbidden to search the queue for the batch of running work items. Instead, use a generation number which is odd while the thread is processing a batch of work and even when not. There's still a small optimization available with the struct work pointer to wait for: if we find the work item in one of the per-CPU _pending_ queues, then after we wait for a batch of work to complete on that CPU, we don't need to wait for work on any other CPUs. PR kern/57574
workqueue(9): Sprinkle dtrace probes for workqueue_wait edge cases.
Let's make it easy to find out whether these are hit.
workqueue(9): Stop violating queue(3) internals.
workqueue(9): Avoid unnecessary mutex_exit/enter cycle each loop.
workqueue(9): Sort includes. No functional change intended.
workqueue(9): Factor out wq->wq_flags & WQ_FPU in workqueue_worker. No functional change intended. Makes it clearer that s is initialized when used.
|
1.2.2.2 | 16-Jan-2018 |
martin | Pull up following revision(s) (requested by ozaki-r in ticket #497): tests/rump/rumpkern/Makefile: revision 1.16 tests/rump/kernspace/Makefile: revision 1.6 tests/rump/kernspace/workqueue.c: revision 1.1 tests/rump/kernspace/workqueue.c: revision 1.2 tests/rump/kernspace/workqueue.c: revision 1.3 tests/rump/kernspace/workqueue.c: revision 1.4 tests/rump/kernspace/workqueue.c: revision 1.5 tests/rump/kernspace/workqueue.c: revision 1.6 tests/rump/rumpkern/t_workqueue.c: revision 1.1 sys/sys/workqueue.h: revision 1.10 tests/rump/rumpkern/t_workqueue.c: revision 1.2 tests/rump/kernspace/kernspace.h: revision 1.5 tests/rump/kernspace/kernspace.h: revision 1.6 sys/net/if_bridge.c: revision 1.147 distrib/sets/lists/debug/mi: revision 1.225 sys/kern/subr_workqueue.c: revision 1.34 share/man/man9/workqueue.9: revision 1.12 sys/net/if_spppsubr.c: revision 1.178 distrib/sets/lists/tests/mi: revision 1.763 Add simple test for workqueue(9) Add declaration. build fix sorry, I forgot to commit this file. Tweak use of cv_timedwait - Handle its return value - Specify more appropriate time-out periods (2 ticks is too short) Fix a race condition on taking the mutex The workqueue worker can take the mutex before the tester tries to take it after calling workqueue_enqueue. If it happens, the worker calls cv_broadcast before the tester calls cv_timedwait and the tester will wait until the cv timed out Take the mutex before calling workqueue_enqueue so that the tester surely calls cv_timedwait before the worker calls cv_broadcast. The fix stabilizes the test, t_workqueue/workqueue1. Add workqueue_wait that waits for a specific work to finish The caller must ensure that no new work is enqueued before calling workqueue_wait. Note that Note that if the workqueue is WQ_PERCPU, the caller can enqueue a new work to another queue other than the waiting queue. Discussed on tech-kern@ Ensure the timer isn't running by using workqueue_wait Functionalize some routines to add new tests easily (NFC) Add a test case for workqueue_wait Fix build
|
1.2.2.1 | 28-Dec-2017 |
martin | file t_workqueue.c was added on branch netbsd-8 on 2018-01-16 13:01:10 +0000
|
1.5 | 24-Jan-2011 |
pooka | test for rumpclient reconnect feature
|
1.4 | 06-Jan-2011 |
pooka | branches: 1.4.2; test rumpclient syscalls from a signal handler
|
1.3 | 05-Jan-2011 |
pooka | Some tests for rumpclient fork.
|
1.2 | 12-Dec-2010 |
pooka | h_reboot has been superceded by rump.halt
|
1.1 | 30-Nov-2010 |
pooka | Add a simple and stress test cases for the rump remote syscall code. Fun fact: since the server daemonizes into its own process group, it's not in atf's pgrp. Use rump_sys_reboot() in atf cleanup to kill the server after the test.
|
1.4.2.1 | 08-Feb-2011 |
bouyer | Sync with HEAD
|
1.2 | 16-Jul-2019 |
martin | PR misc/54382: whenever open(2) is called with O_CREAT, make sure to pass an open mode argument.
|
1.1 | 05-Jan-2011 |
pooka | branches: 1.1.46; Some tests for rumpclient fork.
|
1.1.46.1 | 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.2 | 12-Dec-2010 |
pooka | h_reboot has been superceded by rump.halt
|
1.1 | 30-Nov-2010 |
pooka | Add a simple and stress test cases for the rump remote syscall code. Fun fact: since the server daemonizes into its own process group, it's not in atf's pgrp. Use rump_sys_reboot() in atf cleanup to kill the server after the test.
|
1.2 | 19-Feb-2011 |
pooka | set reconnect property now that it's off by default
|
1.1 | 24-Jan-2011 |
pooka | branches: 1.1.2; test for rumpclient reconnect feature
|
1.1.2.3 | 05-Mar-2011 |
bouyer | Sync with HEAD
|
1.1.2.2 | 08-Feb-2011 |
bouyer | Sync with HEAD
|
1.1.2.1 | 24-Jan-2011 |
bouyer | file h_reconcli.c was added on branch bouyer-quota2 on 2011-02-08 16:20:10 +0000
|
1.3 | 07-Feb-2011 |
pooka | Limit test duration based on wall time instead of loops (took a long time on slow platforms).
|
1.2 | 10-Jan-2011 |
pooka | branches: 1.2.2; check that we actually go into the signal handler
|
1.1 | 06-Jan-2011 |
pooka | test rumpclient syscalls from a signal handler
|
1.2.2.1 | 08-Feb-2011 |
bouyer | Sync with HEAD
|
1.2 | 14-Jan-2011 |
pooka | test remove signal delivery
|
1.1 | 30-Nov-2010 |
pooka | Add a simple and stress test cases for the rump remote syscall code. Fun fact: since the server daemonizes into its own process group, it's not in atf's pgrp. Use rump_sys_reboot() in atf cleanup to kill the server after the test.
|
1.9 | 26-Jun-2011 |
christos | fix fallout from including signal.h in rump_syscallargs.h
|
1.8 | 12-Jan-2011 |
pooka | Execute a variety of syscalls in the stress test, including opening files and sockets.
|
1.7 | 12-Jan-2011 |
pooka | Give the stress queen two modes: one which nicely suggests an exit and another one which keeps moet et chandon in her pretty cabinet.
|
1.6 | 12-Jan-2011 |
pooka | Establish signal handler already in parent. Otherwise the child might be killed before it has a chance to run.
|
1.5 | 11-Jan-2011 |
pooka | Print some more info in an attempt to try to understand why the test fails in automated test runs but not my desktop.
|
1.4 | 10-Jan-2011 |
pooka | Make sure stressclient worker threads complete their operation instead of hanging.
|
1.3 | 10-Jan-2011 |
pooka | Don't use printf in a signal handler.
XXX: it would be nice if the deadlock with malloc were a little more obvious, especially since gdb doesn't provide any clues unless you compile libpthread with -g
|
1.2 | 06-Jan-2011 |
pooka | check that child exits with an expected status
|
1.1 | 30-Nov-2010 |
pooka | Add a simple and stress test cases for the rump remote syscall code. Fun fact: since the server daemonizes into its own process group, it's not in atf's pgrp. Use rump_sys_reboot() in atf cleanup to kill the server after the test.
|
1.7 | 01-Mar-2020 |
christos | Centralize the base rump libraries into a variable used by all the other Makefiles so that we can make changes to it centrally as needed and have less mess. Fixes the sun2 build that needs rumpvfs after librump after the latest changes.
|
1.6 | 01-Jun-2019 |
kre | Deal with fallout from the addition of KERN_PROC_CWD in sysctl(3) That is kern.proc.$$.KERN_PROC_CWD (I think - not that it matters here)
The effect is that -lrump now requires -lrumpvfs
This set of changes fixes (I believe) regular dynamic builds, more might be required for static builds (will be verified soon).
|
1.5 | 07-Jan-2015 |
pooka | branches: 1.5.16; Move sysproxy support into a separate component, rumpkern_sysproxy, instead of it being always provided by the rump kernel base. This move accomplishes two things:
1) it is no longer necessary to provide sysproxy hypercall stubs for platforms which do not want to use sysproxy 2) it is easier to reason about the security aspects, since configurations not linking the sysproxy component simply do not support remote system calls
discussed on rumpkernel-users
|
1.4 | 10-Jun-2014 |
he | Fix static linking for the tests: -lrump is also used by -lrumpuser, so we also need -lrump after -lrumpuser. Fixes build for sun2.
|
1.3 | 14-Jan-2011 |
pooka | branches: 1.3.12; 1.3.22; test remove signal delivery
|
1.2 | 13-Dec-2010 |
pooka | Retire h_simpleserver and use rump_server instead.
|
1.1 | 30-Nov-2010 |
pooka | Add a simple and stress test cases for the rump remote syscall code. Fun fact: since the server daemonizes into its own process group, it's not in atf's pgrp. Use rump_sys_reboot() in atf cleanup to kill the server after the test.
|
1.3.22.1 | 10-Aug-2014 |
tls | Rebase.
|
1.3.12.1 | 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.5.16.2 | 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
1.5.16.1 | 10-Jun-2019 |
christos | Sync with HEAD
|
1.4 | 25-Jan-2016 |
pooka | include <stdbool.h> for bool
|
1.3 | 14-Jan-2011 |
pooka | test remove signal delivery
|
1.2 | 13-Dec-2010 |
pooka | Retire h_simpleserver and use rump_server instead.
|
1.1 | 30-Nov-2010 |
pooka | Add a simple and stress test cases for the rump remote syscall code. Fun fact: since the server daemonizes into its own process group, it's not in atf's pgrp. Use rump_sys_reboot() in atf cleanup to kill the server after the test.
|
1.1 | 10-Mar-2011 |
pooka | Add a test checks that 16 rump kernels on one shmif bus can ping each other.
|
1.5 | 09-Sep-2020 |
gson | Disable reverse DNS lookups in ping to avoid spurious test failures due to unresponsive DNS servers.
|
1.4 | 13-May-2019 |
bad | Get rid of all the -lrumpdev and -lrumpvfs that are no longer needed after moving rump's mainbus from rumpdev to rumpkern.
Produces the same atf-run results as before.
|
1.3 | 10-Aug-2016 |
kre | branches: 1.3.14;
+ -lrumpdev
|
1.2 | 09-Sep-2013 |
pooka | Use 8 TCP/IP stacks instead of 16. That still gives us plenty crossping testing for 1/4th of the cost.
|
1.1 | 10-Mar-2011 |
pooka | branches: 1.1.4; 1.1.10; Add a test checks that 16 rump kernels on one shmif bus can ping each other.
|
1.1.10.1 | 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.1.4.1 | 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.3.14.1 | 10-Jun-2019 |
christos | Sync with HEAD
|
1.2 | 13-Jul-2010 |
jmmv | Get rid of static Atffiles and let bsd.test.mk generate them on the fly.
|
1.1 | 16-Jun-2010 |
pooka | Add simple etfs test which almost tests for bug fixed yesterday (the yesterday bug was against an emulated block device, so slighlty different). But at least this test uncovered a few bugs already.
|
1.5 | 01-Mar-2020 |
christos | Centralize the base rump libraries into a variable used by all the other Makefiles so that we can make changes to it centrally as needed and have less mess. Fixes the sun2 build that needs rumpvfs after librump after the latest changes.
|
1.4 | 10-Jun-2014 |
he | branches: 1.4.24; Fix static linking for the tests: -lrump is also used by -lrumpuser, so we also need -lrump after -lrumpuser. Fixes build for sun2.
|
1.3 | 22-Feb-2011 |
pooka | branches: 1.3.10; 1.3.20; test lseek return value (off_t, might be >register_t)
|
1.2 | 30-Nov-2010 |
pooka | branches: 1.2.2; test makecn/freecn
|
1.1 | 16-Jun-2010 |
pooka | Add simple etfs test which almost tests for bug fixed yesterday (the yesterday bug was against an emulated block device, so slighlty different). But at least this test uncovered a few bugs already.
|
1.2.2.1 | 05-Mar-2011 |
bouyer | Sync with HEAD
|
1.3.20.1 | 10-Aug-2014 |
tls | Rebase.
|
1.3.10.1 | 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.4.24.1 | 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
1.3 | 13-Jan-2017 |
christos | Don't play with "../.." in includes for h_macros.h; deal with it centrally. Minor fixes.
|
1.2 | 22-Feb-2011 |
pooka | branches: 1.2.2; 1.2.28; One more lseek test case: in case of an error, check rv == -1 (so that it's not e.g UINT_MAX).
|
1.1 | 22-Feb-2011 |
pooka | test lseek return value (off_t, might be >register_t)
|
1.2.28.1 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.2.2.2 | 05-Mar-2011 |
bouyer | Sync with HEAD
|
1.2.2.1 | 22-Feb-2011 |
bouyer | file t_basic.c was added on branch bouyer-quota2 on 2011-03-05 15:10:57 +0000
|
1.12 | 03-Aug-2023 |
rin | t_etfs: Skip large_blk for system with page size > 8192
Work around kernel freeze reported as PR kern/55658 for powerpc/ibm4xx (16K pages)
|
1.11 | 13-Jan-2017 |
christos | Don't play with "../.." in includes for h_macros.h; deal with it centrally. Minor fixes.
|
1.10 | 12-May-2014 |
christos | branches: 1.10.6; CID 978337: Fix resource leak
|
1.9 | 30-Nov-2010 |
pooka | branches: 1.9.6; 1.9.12; 1.9.22; one more test
|
1.8 | 30-Nov-2010 |
pooka | check etfs key rules
|
1.7 | 07-Nov-2010 |
jmmv | Adjusts tests after import of atf-0.12:
- The use.fs property is gone. - Mark the tests/fs/t_create:attrs test as broken when using the default unprivileged-user:_atf setting. This probably deserves a fix somehow but I'm not sure at this point.
|
1.6 | 21-Jun-2010 |
pooka | check etfs mappings with offsets
|
1.5 | 20-Jun-2010 |
pooka | Check that etfs block mapping works for >2TB devices.
|
1.4 | 19-Jun-2010 |
pooka | ... and remove the not-supposed-to-be-committed call to rump_sys_reboot()
|
1.3 | 19-Jun-2010 |
pooka | fix pasto, sprinkle ATF_REQUIRE_EQ()
ATF_REQUIRE_ERRNO, oh ATF_REQUIRE_ERRNO, wherefore art thou ATF_REQUIRE_ERRNO?
|
1.2 | 19-Jun-2010 |
pooka | add test for block device support
|
1.1 | 16-Jun-2010 |
pooka | Add simple etfs test which almost tests for bug fixed yesterday (the yesterday bug was against an emulated block device, so slighlty different). But at least this test uncovered a few bugs already.
|
1.9.22.1 | 10-Aug-2014 |
tls | Rebase.
|
1.9.12.1 | 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.9.6.1 | 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.10.6.1 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.7 | 03-May-2022 |
hannken | Lock vnode for VOP_LOOKUP().
|
1.6 | 13-Jan-2017 |
christos | Don't play with "../.." in includes for h_macros.h; deal with it centrally. Minor fixes.
|
1.5 | 25-Jan-2016 |
pooka | branches: 1.5.2; Don't include <rump/rumpvnode_if.h> from rump.h. It's not needed unless you're doing something special, but requires register_t. Adjust the few places which actually need rumpvnode_if.h.
|
1.4 | 07-Feb-2014 |
hannken | Change vnode operation lookup to return the resulting vnode *vpp unlocked. Change cache_lookup() to return an unlocked vnode.
Discussed on tech-kern@
Welcome to 6.99.31
|
1.3 | 02-Jan-2011 |
pooka | branches: 1.3.6; 1.3.12; + rump_lwproc_newproc -> rump_lwproc_rfork() + add a tess for rump_lwproc_rfork()
|
1.2 | 14-Dec-2010 |
pooka | Use a larger array to avoid overflow.
from Piotr Meyer
|
1.1 | 30-Nov-2010 |
pooka | test makecn/freecn
|
1.3.12.1 | 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.3.6.1 | 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.5.2.1 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|