#
1.56 |
|
01-Nov-2020 |
christos |
PR/55664: Ruslan Nikolaev: Fix:
1. A race condition (bug) in sys/rump/librump/rumpkern/intr.c since rumpuser_cv_signal() is called without holding a mutex 2. sleepq is implemented using a single (global) conditional variable; that should be done per each sleepq separately
|
Revision tags: thorpej-futex-base bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 ad-namecache-base2 ad-namecache-base1 ad-namecache-base
|
#
1.55 |
|
16-Dec-2019 |
ad |
- Extend the per-CPU counters matt@ did to include all of the hot counters in UVM, excluding uvmexp.free, which needs special treatment and will be done with a separate commit. Cuts system time for a build by 20-25% on a 48 CPU machine w/DIAGNOSTIC.
- Avoid 64-bit integer divide on every fault (for rnd_add_uint32).
|
Revision tags: netbsd-9-1-RELEASE netbsd-8-2-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 netbsd-8-1-RELEASE netbsd-8-1-RC1 isaki-audio2-base pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.54 |
|
26-Jan-2016 |
pooka |
branches: 1.54.18; Put the kernelside rump kernel headers into <rump-sys> instead of sprinkling them around the faction directories. Avoids having to add a CPPFLAGS (or several) to pretty much every component Makefile.
Leave compat headers around in the old locations.
The commit changes some autogenerated files, but I'll fix the generators shortly and regen.
|
Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
#
1.53 |
|
16-Aug-2015 |
pooka |
Don't use KASSERT() to test for external return values, use panic()
from Robert Millan <rmh@freebsd.org>
|
Revision tags: nick-nhusb-base-20150606
|
#
1.52 |
|
22-Apr-2015 |
pooka |
Apparently not all ports define struct clockframe in cpu.h, so we cannot provide our definition that way. Instead, generate the struct clockframe passed to hardclock() in MD code.
|
#
1.51 |
|
22-Apr-2015 |
pooka |
Include kern_clock.c in rump kernels.
|
#
1.50 |
|
21-Apr-2015 |
pooka |
Use hardclock_ticks instead of a homegrown variable.
... not that I understand how various kernel algorithms can work after enough uptime with hardclock_ticks being a signed int.
|
#
1.49 |
|
16-Apr-2015 |
pooka |
"extern int hz" was written in a very aesthetically pleasing way in this file, but let's just be happy with the sys/kernel.h style of writing it.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.48 |
|
14-Jan-2015 |
pooka |
Execute softints in the order in which they are scheduled (per level).
|
#
1.47 |
|
14-Jan-2015 |
pooka |
Implement softint_schedule_cpu() for rump kernels.
While distributing processing all over the place is not relevant for high-performance rump kernel I/O stacks (and downright counterproductive), the mechanism is used e.g. to reach a quiescent state when detaching an interface, and therefore a semantically correct implementation is required.
Fixes at least an uncommon race in the ifconfig destroy case. reported & patch tested by Justin Cormack.
|
Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.46 |
|
22-Jun-2014 |
pooka |
branches: 1.46.4; Initialize cpu_softcpu before creating softint threads. Fixes things with rump kernel hypervisors which wrap the thread creation hypercall.
pointed out by Justin Cormack
|
#
1.45 |
|
09-Jun-2014 |
rmind |
Restore the assert in RUMP's softint_schedule_cpu() and just ensure curcpu() in the caller.
|
#
1.44 |
|
08-Jun-2014 |
rmind |
RUMP's softint_schedule_cpu: comment out an assert for now.
|
#
1.43 |
|
05-Jun-2014 |
rmind |
librump: add kpreempt_disabled(9) and softint_schedule_cpu(9).
|
Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.42 |
|
11-Nov-2013 |
pooka |
branches: 1.42.2; Avoid calling curcpu() when we know the result is constant.
|
#
1.41 |
|
11-Nov-2013 |
pooka |
Defer softint thread creation to first softint_establish() for that level. Speeds up rump kernel bootstrap and saves memory -- very rarely are all softint levels in a rump kernel used.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
|
#
1.40 |
|
02-May-2013 |
pooka |
branches: 1.40.4; Ok, maybe using int64 for nanoseconds in the (sec,nsec) tuple was a bit too future-proof. I think long is enough there (let's just hope nobody redefines "nano"). Also, make seconds signed just in case someone wants their clock to be in 1901.
|
#
1.39 |
|
30-Apr-2013 |
pooka |
Flip parameter order in the clock hypercalls to make them consistent with everything else wrt in/out parameters.
|
#
1.38 |
|
28-Apr-2013 |
pooka |
Improve the time-related hypercalls so that's it's possible to sleep until an absolute time on the host's monotonic clock (should something like that be supported).
|
#
1.37 |
|
27-Apr-2013 |
pooka |
roll mutex init hypercalls into one (one of them already took a flag anyway)
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE yamt-pagecache-tag8 netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 agc-symver-base netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.36 |
|
21-Mar-2011 |
pooka |
branches: 1.36.4; 1.36.14; Update copyright statements.
no functional change.
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
|
#
1.35 |
|
01-Dec-2010 |
pooka |
branches: 1.35.2; Track lwp as the rumpuser mutex owner instead of pthread_t (this is done in rumpuser for simplicity, since on the kernel side things we assume we have only one pointer of space). As a side-effect, we can no longer know if the current thread is holding on to a mutex locked without curlwp context (basically all mutexes inited outside of mutex_init()). The only thing that called rumpuser_mutex_held() for a non-kmutex was the giant lock. So, instead implement recursive locking for the giant lock in the rump kernel and get rid of the now-unused recursive pthread mutex in the hypercall interface.
|
Revision tags: uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11
|
#
1.34 |
|
07-Sep-2010 |
pooka |
Allocate softint vectors for the final number of CPUs, not the number currently attached. Deals with a SNAFU in my commit earlier today which would cause softints established early to lack a softint context on non-bootstrap CPUs.
|
#
1.33 |
|
07-Sep-2010 |
pooka |
update comments. no code change.
|
Revision tags: uebayasi-xip-base2
|
#
1.32 |
|
15-Aug-2010 |
pooka |
Implement softints properly: they need to have a schedulable entity per cpu.
|
Revision tags: yamt-nfs-mp-base10
|
#
1.31 |
|
10-Aug-2010 |
pooka |
Don't create the percpu clock interrupt threads as softint threads because they aren't softint threads. This fixes callouts in situations where there is nothing else happening in the rump kernel (i.e. no threads executed which would trigger the softints when they unschedule).
|
#
1.30 |
|
10-Aug-2010 |
pooka |
Use correct indices for clock threads and more descriptive ones for the softint threads.
|
#
1.29 |
|
18-May-2010 |
martin |
Add missing include
|
#
1.28 |
|
18-May-2010 |
pooka |
Make it possible to use the scheduler lock as the rumpuser condvar interlock. This is applicable in cases where the actual interlock is the CPU the currently running thread is scheduled on. Borrowing the scheduler lock as the mutex mandated by pthread_cond_wait() does away with need to have an additional mutex. This both optimizes runtime execution and simplifies code, as the extra lock typically lead to quite some trickeries to avoid the dungeon collapsing due to zaps from the wand of deadlock.
|
#
1.27 |
|
12-May-2010 |
pooka |
fix inversion: advance clock on cpu0, not the complement of cpu0
|
Revision tags: uebayasi-xip-base1
|
#
1.26 |
|
28-Apr-2010 |
pooka |
Fix snafu which caused the clock to travel lightspeed.
|
#
1.25 |
|
27-Apr-2010 |
pooka |
Fix multiple virtual cpu support.
... or at least on x86. CPU_INFO_FOREACH() still isn't MI, and I don't want to support 2^n different versions.
|
#
1.24 |
|
14-Apr-2010 |
pooka |
Include kern_tc and use a timecounter driver instead of homerolled kern_tc implementation.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211
|
#
1.23 |
|
05-Dec-2009 |
pooka |
branches: 1.23.2; 1.23.4; Cast Oh Kath Ra once every second.
|
#
1.22 |
|
01-Dec-2009 |
pooka |
Almost there for virtual CPU MP support: * support bound kernel threads * bind softint threads to specific virtual cpus + remove now-unnecessary locks from softint code
Now, if we only had MI CPU_INFO_FOREACH() .... (hi rmind ;)
|
#
1.21 |
|
11-Nov-2009 |
pooka |
Make rumpuser_cv_timedwait take two int64's instead timespec to uncouple it from the timespec layout. Also, change return value to zero for "timeout didn't expire" and non-zero for "timeout expired". This decouples the interface from errno assignments.
|
#
1.20 |
|
09-Nov-2009 |
pooka |
Hash out soft interrupts to be a little closer to real softints: * split them into levels * allow only one per level to be active at a time * fire softints only when we are unscheduling from a CPU instead of immediately in softint_schedule(). this will later morph into return from interrupt, but that part isn't done yet.
|
#
1.19 |
|
06-Nov-2009 |
pooka |
lie that we are never in a softintr (i.e. add stub)
|
Revision tags: jym-xensuspend-nbase
|
#
1.18 |
|
19-Sep-2009 |
pooka |
arrr, implement softint_disestablish(). this code be needin' an enema, matey.
|
Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 jym-xensuspend-base nick-hppapmap-base
|
#
1.17 |
|
26-Apr-2009 |
pooka |
fix uninitialized
|
#
1.16 |
|
26-Apr-2009 |
pooka |
Fix getnano/microuptime to report actual uptime.
|
Revision tags: nick-hppapmap-base2
|
#
1.15 |
|
27-Feb-2009 |
pooka |
decouple rumpuser gettime from struct timeval
|
#
1.14 |
|
07-Feb-2009 |
pooka |
branches: 1.14.2; Make the clock interrupt tick based on absolute time instead of relative time. This prevents drifting. Also, keep track of time within userspace, so we do not have to make a syscall to get the clock value. This is approximately 7 times cheaper, but on the negative side is limited to the clock interrupt frequency.
|
#
1.13 |
|
04-Feb-2009 |
pooka |
Create the clock interrupt and soft interrupt workers as MPSAFE
|
Revision tags: mjf-devfs2-base
|
#
1.12 |
|
13-Jan-2009 |
pooka |
misc cleanup, mainly header polish
|
#
1.11 |
|
18-Dec-2008 |
pooka |
__KERNEL_RCSID
|
#
1.10 |
|
18-Dec-2008 |
pooka |
Separate the timer thread and soft interrut workers. Use a dynamic size pool of workers to make sure there are enough for processing the scheduled soft interrupts.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base haad-dm-base
|
#
1.9 |
|
30-Oct-2008 |
christos |
fix compilation and lint warnings.
|
Revision tags: matt-mips64-base2 haad-dm-base1
|
#
1.8 |
|
10-Oct-2008 |
pooka |
branches: 1.8.2; Provide time_uptime and push it forward every now and then if we happen to have the timer thread. rump uptime - woohoo.
|
Revision tags: wrstuden-revivesa-base-4
|
#
1.7 |
|
10-Oct-2008 |
pooka |
fix brainfart: kthread_create() sets curlwp
|
#
1.6 |
|
10-Oct-2008 |
pooka |
Support callouts and call callout_hardclock() from the timer interrupt thread.
The sleepq implementation required for callouts is horrible, kludged only for callouts, and generally unacceptable. It needs revisiting, but I'm not sure yet should rump or kern_timeout be improved. It's almost untested as of now, but committing this will give me some maneuvering space while letting application compile.
|
#
1.5 |
|
09-Oct-2008 |
pooka |
Rewrite interrupts to provide better softintr support, i.e. not execute them simply in the context of the scheduling code, as this does not work for all applications (e.g. networking soft interrupts). Rather, schedule them and execute them from a separate context.
Also provide a timer which for now executes just hardclock_callout() (well, at least after callouts are included in librump, which is soon).
|
Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 simonb-wapbl-nbase simonb-wapbl-base
|
#
1.4 |
|
29-Jul-2008 |
pooka |
Install rump libraries and utilities to the base system and remove the private non-installed build infrastructure from sys/rump.
breakdown of commit: * install relevant headers into /usr/include/rump * build sys/rump/librump/rumpuser and sys/rump/librump/rumpkern from src/lib and install as librumpuser and librump, respectively + this retains the ability to test a librump build with just the kernel sources at hand * move sys/rump/fs/lib/libukfs and sys/rump/fs/lib/libp2k to src/lib for general consumption, they are not kernel-space dwellers anyway * build and install sys/rump/fs/lib/lib$fs as librumpfs_$fs * add chapter 3 manual pages for rump, rumpuser, ukfs and p2k * build and install userspace kernel file system daemons if MKPUFFS=yes is spexified * retire fsconsole for now, it will make a comeback with an actually implemented version shortly
|
Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base
|
#
1.3 |
|
28-Apr-2008 |
martin |
branches: 1.3.2; 1.3.4; 1.3.6; Remove clause 3 and 4 from TNF licenses
|
Revision tags: hpcarm-cleanup-base yamt-pf42-baseX yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base mjf-devfs-base matt-armv6-base bouyer-xeni386-base matt-armv6-nbase bouyer-xeni386-nbase
|
#
1.2 |
|
02-Jan-2008 |
ad |
branches: 1.2.2; 1.2.4; 1.2.6; 1.2.8; 1.2.14; 1.2.16; 1.2.18; Merge vmlocking2 to head.
|
#
1.1 |
|
28-Dec-2007 |
ad |
branches: 1.1.2; file intr.c was initially added on branch vmlocking2.
|
#
1.55 |
|
16-Dec-2019 |
ad |
- Extend the per-CPU counters matt@ did to include all of the hot counters in UVM, excluding uvmexp.free, which needs special treatment and will be done with a separate commit. Cuts system time for a build by 20-25% on a 48 CPU machine w/DIAGNOSTIC.
- Avoid 64-bit integer divide on every fault (for rnd_add_uint32).
|
Revision tags: netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 netbsd-8-1-RELEASE netbsd-8-1-RC1 isaki-audio2-base pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.54 |
|
26-Jan-2016 |
pooka |
Put the kernelside rump kernel headers into <rump-sys> instead of sprinkling them around the faction directories. Avoids having to add a CPPFLAGS (or several) to pretty much every component Makefile.
Leave compat headers around in the old locations.
The commit changes some autogenerated files, but I'll fix the generators shortly and regen.
|
Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
#
1.53 |
|
16-Aug-2015 |
pooka |
Don't use KASSERT() to test for external return values, use panic()
from Robert Millan <rmh@freebsd.org>
|
Revision tags: nick-nhusb-base-20150606
|
#
1.52 |
|
22-Apr-2015 |
pooka |
Apparently not all ports define struct clockframe in cpu.h, so we cannot provide our definition that way. Instead, generate the struct clockframe passed to hardclock() in MD code.
|
#
1.51 |
|
22-Apr-2015 |
pooka |
Include kern_clock.c in rump kernels.
|
#
1.50 |
|
21-Apr-2015 |
pooka |
Use hardclock_ticks instead of a homegrown variable.
... not that I understand how various kernel algorithms can work after enough uptime with hardclock_ticks being a signed int.
|
#
1.49 |
|
16-Apr-2015 |
pooka |
"extern int hz" was written in a very aesthetically pleasing way in this file, but let's just be happy with the sys/kernel.h style of writing it.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.48 |
|
14-Jan-2015 |
pooka |
Execute softints in the order in which they are scheduled (per level).
|
#
1.47 |
|
14-Jan-2015 |
pooka |
Implement softint_schedule_cpu() for rump kernels.
While distributing processing all over the place is not relevant for high-performance rump kernel I/O stacks (and downright counterproductive), the mechanism is used e.g. to reach a quiescent state when detaching an interface, and therefore a semantically correct implementation is required.
Fixes at least an uncommon race in the ifconfig destroy case. reported & patch tested by Justin Cormack.
|
Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.46 |
|
22-Jun-2014 |
pooka |
branches: 1.46.4; Initialize cpu_softcpu before creating softint threads. Fixes things with rump kernel hypervisors which wrap the thread creation hypercall.
pointed out by Justin Cormack
|
#
1.45 |
|
09-Jun-2014 |
rmind |
Restore the assert in RUMP's softint_schedule_cpu() and just ensure curcpu() in the caller.
|
#
1.44 |
|
08-Jun-2014 |
rmind |
RUMP's softint_schedule_cpu: comment out an assert for now.
|
#
1.43 |
|
05-Jun-2014 |
rmind |
librump: add kpreempt_disabled(9) and softint_schedule_cpu(9).
|
Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.42 |
|
11-Nov-2013 |
pooka |
branches: 1.42.2; Avoid calling curcpu() when we know the result is constant.
|
#
1.41 |
|
11-Nov-2013 |
pooka |
Defer softint thread creation to first softint_establish() for that level. Speeds up rump kernel bootstrap and saves memory -- very rarely are all softint levels in a rump kernel used.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
|
#
1.40 |
|
02-May-2013 |
pooka |
branches: 1.40.4; Ok, maybe using int64 for nanoseconds in the (sec,nsec) tuple was a bit too future-proof. I think long is enough there (let's just hope nobody redefines "nano"). Also, make seconds signed just in case someone wants their clock to be in 1901.
|
#
1.39 |
|
30-Apr-2013 |
pooka |
Flip parameter order in the clock hypercalls to make them consistent with everything else wrt in/out parameters.
|
#
1.38 |
|
28-Apr-2013 |
pooka |
Improve the time-related hypercalls so that's it's possible to sleep until an absolute time on the host's monotonic clock (should something like that be supported).
|
#
1.37 |
|
27-Apr-2013 |
pooka |
roll mutex init hypercalls into one (one of them already took a flag anyway)
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE yamt-pagecache-tag8 netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 agc-symver-base netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.36 |
|
21-Mar-2011 |
pooka |
branches: 1.36.4; 1.36.14; Update copyright statements.
no functional change.
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
|
#
1.35 |
|
01-Dec-2010 |
pooka |
branches: 1.35.2; Track lwp as the rumpuser mutex owner instead of pthread_t (this is done in rumpuser for simplicity, since on the kernel side things we assume we have only one pointer of space). As a side-effect, we can no longer know if the current thread is holding on to a mutex locked without curlwp context (basically all mutexes inited outside of mutex_init()). The only thing that called rumpuser_mutex_held() for a non-kmutex was the giant lock. So, instead implement recursive locking for the giant lock in the rump kernel and get rid of the now-unused recursive pthread mutex in the hypercall interface.
|
Revision tags: uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11
|
#
1.34 |
|
07-Sep-2010 |
pooka |
Allocate softint vectors for the final number of CPUs, not the number currently attached. Deals with a SNAFU in my commit earlier today which would cause softints established early to lack a softint context on non-bootstrap CPUs.
|
#
1.33 |
|
07-Sep-2010 |
pooka |
update comments. no code change.
|
Revision tags: uebayasi-xip-base2
|
#
1.32 |
|
15-Aug-2010 |
pooka |
Implement softints properly: they need to have a schedulable entity per cpu.
|
Revision tags: yamt-nfs-mp-base10
|
#
1.31 |
|
10-Aug-2010 |
pooka |
Don't create the percpu clock interrupt threads as softint threads because they aren't softint threads. This fixes callouts in situations where there is nothing else happening in the rump kernel (i.e. no threads executed which would trigger the softints when they unschedule).
|
#
1.30 |
|
10-Aug-2010 |
pooka |
Use correct indices for clock threads and more descriptive ones for the softint threads.
|
#
1.29 |
|
18-May-2010 |
martin |
Add missing include
|
#
1.28 |
|
18-May-2010 |
pooka |
Make it possible to use the scheduler lock as the rumpuser condvar interlock. This is applicable in cases where the actual interlock is the CPU the currently running thread is scheduled on. Borrowing the scheduler lock as the mutex mandated by pthread_cond_wait() does away with need to have an additional mutex. This both optimizes runtime execution and simplifies code, as the extra lock typically lead to quite some trickeries to avoid the dungeon collapsing due to zaps from the wand of deadlock.
|
#
1.27 |
|
12-May-2010 |
pooka |
fix inversion: advance clock on cpu0, not the complement of cpu0
|
Revision tags: uebayasi-xip-base1
|
#
1.26 |
|
28-Apr-2010 |
pooka |
Fix snafu which caused the clock to travel lightspeed.
|
#
1.25 |
|
27-Apr-2010 |
pooka |
Fix multiple virtual cpu support.
... or at least on x86. CPU_INFO_FOREACH() still isn't MI, and I don't want to support 2^n different versions.
|
#
1.24 |
|
14-Apr-2010 |
pooka |
Include kern_tc and use a timecounter driver instead of homerolled kern_tc implementation.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211
|
#
1.23 |
|
05-Dec-2009 |
pooka |
branches: 1.23.2; 1.23.4; Cast Oh Kath Ra once every second.
|
#
1.22 |
|
01-Dec-2009 |
pooka |
Almost there for virtual CPU MP support: * support bound kernel threads * bind softint threads to specific virtual cpus + remove now-unnecessary locks from softint code
Now, if we only had MI CPU_INFO_FOREACH() .... (hi rmind ;)
|
#
1.21 |
|
11-Nov-2009 |
pooka |
Make rumpuser_cv_timedwait take two int64's instead timespec to uncouple it from the timespec layout. Also, change return value to zero for "timeout didn't expire" and non-zero for "timeout expired". This decouples the interface from errno assignments.
|
#
1.20 |
|
09-Nov-2009 |
pooka |
Hash out soft interrupts to be a little closer to real softints: * split them into levels * allow only one per level to be active at a time * fire softints only when we are unscheduling from a CPU instead of immediately in softint_schedule(). this will later morph into return from interrupt, but that part isn't done yet.
|
#
1.19 |
|
06-Nov-2009 |
pooka |
lie that we are never in a softintr (i.e. add stub)
|
Revision tags: jym-xensuspend-nbase
|
#
1.18 |
|
19-Sep-2009 |
pooka |
arrr, implement softint_disestablish(). this code be needin' an enema, matey.
|
Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 jym-xensuspend-base nick-hppapmap-base
|
#
1.17 |
|
26-Apr-2009 |
pooka |
fix uninitialized
|
#
1.16 |
|
26-Apr-2009 |
pooka |
Fix getnano/microuptime to report actual uptime.
|
Revision tags: nick-hppapmap-base2
|
#
1.15 |
|
27-Feb-2009 |
pooka |
decouple rumpuser gettime from struct timeval
|
#
1.14 |
|
07-Feb-2009 |
pooka |
branches: 1.14.2; Make the clock interrupt tick based on absolute time instead of relative time. This prevents drifting. Also, keep track of time within userspace, so we do not have to make a syscall to get the clock value. This is approximately 7 times cheaper, but on the negative side is limited to the clock interrupt frequency.
|
#
1.13 |
|
04-Feb-2009 |
pooka |
Create the clock interrupt and soft interrupt workers as MPSAFE
|
Revision tags: mjf-devfs2-base
|
#
1.12 |
|
13-Jan-2009 |
pooka |
misc cleanup, mainly header polish
|
#
1.11 |
|
18-Dec-2008 |
pooka |
__KERNEL_RCSID
|
#
1.10 |
|
18-Dec-2008 |
pooka |
Separate the timer thread and soft interrut workers. Use a dynamic size pool of workers to make sure there are enough for processing the scheduled soft interrupts.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base haad-dm-base
|
#
1.9 |
|
30-Oct-2008 |
christos |
fix compilation and lint warnings.
|
Revision tags: matt-mips64-base2 haad-dm-base1
|
#
1.8 |
|
10-Oct-2008 |
pooka |
branches: 1.8.2; Provide time_uptime and push it forward every now and then if we happen to have the timer thread. rump uptime - woohoo.
|
Revision tags: wrstuden-revivesa-base-4
|
#
1.7 |
|
10-Oct-2008 |
pooka |
fix brainfart: kthread_create() sets curlwp
|
#
1.6 |
|
10-Oct-2008 |
pooka |
Support callouts and call callout_hardclock() from the timer interrupt thread.
The sleepq implementation required for callouts is horrible, kludged only for callouts, and generally unacceptable. It needs revisiting, but I'm not sure yet should rump or kern_timeout be improved. It's almost untested as of now, but committing this will give me some maneuvering space while letting application compile.
|
#
1.5 |
|
09-Oct-2008 |
pooka |
Rewrite interrupts to provide better softintr support, i.e. not execute them simply in the context of the scheduling code, as this does not work for all applications (e.g. networking soft interrupts). Rather, schedule them and execute them from a separate context.
Also provide a timer which for now executes just hardclock_callout() (well, at least after callouts are included in librump, which is soon).
|
Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 simonb-wapbl-nbase simonb-wapbl-base
|
#
1.4 |
|
29-Jul-2008 |
pooka |
Install rump libraries and utilities to the base system and remove the private non-installed build infrastructure from sys/rump.
breakdown of commit: * install relevant headers into /usr/include/rump * build sys/rump/librump/rumpuser and sys/rump/librump/rumpkern from src/lib and install as librumpuser and librump, respectively + this retains the ability to test a librump build with just the kernel sources at hand * move sys/rump/fs/lib/libukfs and sys/rump/fs/lib/libp2k to src/lib for general consumption, they are not kernel-space dwellers anyway * build and install sys/rump/fs/lib/lib$fs as librumpfs_$fs * add chapter 3 manual pages for rump, rumpuser, ukfs and p2k * build and install userspace kernel file system daemons if MKPUFFS=yes is spexified * retire fsconsole for now, it will make a comeback with an actually implemented version shortly
|
Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base
|
#
1.3 |
|
28-Apr-2008 |
martin |
branches: 1.3.2; 1.3.4; 1.3.6; Remove clause 3 and 4 from TNF licenses
|
Revision tags: hpcarm-cleanup-base yamt-pf42-baseX yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base mjf-devfs-base matt-armv6-base bouyer-xeni386-base matt-armv6-nbase bouyer-xeni386-nbase
|
#
1.2 |
|
02-Jan-2008 |
ad |
branches: 1.2.2; 1.2.4; 1.2.6; 1.2.8; 1.2.14; 1.2.16; 1.2.18; Merge vmlocking2 to head.
|
#
1.1 |
|
28-Dec-2007 |
ad |
branches: 1.1.2; file intr.c was initially added on branch vmlocking2.
|
Revision tags: nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.54 |
|
26-Jan-2016 |
pooka |
Put the kernelside rump kernel headers into <rump-sys> instead of sprinkling them around the faction directories. Avoids having to add a CPPFLAGS (or several) to pretty much every component Makefile.
Leave compat headers around in the old locations.
The commit changes some autogenerated files, but I'll fix the generators shortly and regen.
|
Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
#
1.53 |
|
16-Aug-2015 |
pooka |
Don't use KASSERT() to test for external return values, use panic()
from Robert Millan <rmh@freebsd.org>
|
Revision tags: nick-nhusb-base-20150606
|
#
1.52 |
|
22-Apr-2015 |
pooka |
Apparently not all ports define struct clockframe in cpu.h, so we cannot provide our definition that way. Instead, generate the struct clockframe passed to hardclock() in MD code.
|
#
1.51 |
|
22-Apr-2015 |
pooka |
Include kern_clock.c in rump kernels.
|
#
1.50 |
|
21-Apr-2015 |
pooka |
Use hardclock_ticks instead of a homegrown variable.
... not that I understand how various kernel algorithms can work after enough uptime with hardclock_ticks being a signed int.
|
#
1.49 |
|
16-Apr-2015 |
pooka |
"extern int hz" was written in a very aesthetically pleasing way in this file, but let's just be happy with the sys/kernel.h style of writing it.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.48 |
|
14-Jan-2015 |
pooka |
Execute softints in the order in which they are scheduled (per level).
|
#
1.47 |
|
14-Jan-2015 |
pooka |
Implement softint_schedule_cpu() for rump kernels.
While distributing processing all over the place is not relevant for high-performance rump kernel I/O stacks (and downright counterproductive), the mechanism is used e.g. to reach a quiescent state when detaching an interface, and therefore a semantically correct implementation is required.
Fixes at least an uncommon race in the ifconfig destroy case. reported & patch tested by Justin Cormack.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.46 |
|
22-Jun-2014 |
pooka |
branches: 1.46.4; Initialize cpu_softcpu before creating softint threads. Fixes things with rump kernel hypervisors which wrap the thread creation hypercall.
pointed out by Justin Cormack
|
#
1.45 |
|
09-Jun-2014 |
rmind |
Restore the assert in RUMP's softint_schedule_cpu() and just ensure curcpu() in the caller.
|
#
1.44 |
|
08-Jun-2014 |
rmind |
RUMP's softint_schedule_cpu: comment out an assert for now.
|
#
1.43 |
|
05-Jun-2014 |
rmind |
librump: add kpreempt_disabled(9) and softint_schedule_cpu(9).
|
Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.42 |
|
11-Nov-2013 |
pooka |
branches: 1.42.2; Avoid calling curcpu() when we know the result is constant.
|
#
1.41 |
|
11-Nov-2013 |
pooka |
Defer softint thread creation to first softint_establish() for that level. Speeds up rump kernel bootstrap and saves memory -- very rarely are all softint levels in a rump kernel used.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
|
#
1.40 |
|
02-May-2013 |
pooka |
branches: 1.40.4; Ok, maybe using int64 for nanoseconds in the (sec,nsec) tuple was a bit too future-proof. I think long is enough there (let's just hope nobody redefines "nano"). Also, make seconds signed just in case someone wants their clock to be in 1901.
|
#
1.39 |
|
30-Apr-2013 |
pooka |
Flip parameter order in the clock hypercalls to make them consistent with everything else wrt in/out parameters.
|
#
1.38 |
|
28-Apr-2013 |
pooka |
Improve the time-related hypercalls so that's it's possible to sleep until an absolute time on the host's monotonic clock (should something like that be supported).
|
#
1.37 |
|
27-Apr-2013 |
pooka |
roll mutex init hypercalls into one (one of them already took a flag anyway)
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE yamt-pagecache-tag8 netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 agc-symver-base netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.36 |
|
21-Mar-2011 |
pooka |
branches: 1.36.4; 1.36.14; Update copyright statements.
no functional change.
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
|
#
1.35 |
|
01-Dec-2010 |
pooka |
branches: 1.35.2; Track lwp as the rumpuser mutex owner instead of pthread_t (this is done in rumpuser for simplicity, since on the kernel side things we assume we have only one pointer of space). As a side-effect, we can no longer know if the current thread is holding on to a mutex locked without curlwp context (basically all mutexes inited outside of mutex_init()). The only thing that called rumpuser_mutex_held() for a non-kmutex was the giant lock. So, instead implement recursive locking for the giant lock in the rump kernel and get rid of the now-unused recursive pthread mutex in the hypercall interface.
|
Revision tags: uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11
|
#
1.34 |
|
07-Sep-2010 |
pooka |
Allocate softint vectors for the final number of CPUs, not the number currently attached. Deals with a SNAFU in my commit earlier today which would cause softints established early to lack a softint context on non-bootstrap CPUs.
|
#
1.33 |
|
07-Sep-2010 |
pooka |
update comments. no code change.
|
Revision tags: uebayasi-xip-base2
|
#
1.32 |
|
15-Aug-2010 |
pooka |
Implement softints properly: they need to have a schedulable entity per cpu.
|
Revision tags: yamt-nfs-mp-base10
|
#
1.31 |
|
10-Aug-2010 |
pooka |
Don't create the percpu clock interrupt threads as softint threads because they aren't softint threads. This fixes callouts in situations where there is nothing else happening in the rump kernel (i.e. no threads executed which would trigger the softints when they unschedule).
|
#
1.30 |
|
10-Aug-2010 |
pooka |
Use correct indices for clock threads and more descriptive ones for the softint threads.
|
#
1.29 |
|
18-May-2010 |
martin |
Add missing include
|
#
1.28 |
|
18-May-2010 |
pooka |
Make it possible to use the scheduler lock as the rumpuser condvar interlock. This is applicable in cases where the actual interlock is the CPU the currently running thread is scheduled on. Borrowing the scheduler lock as the mutex mandated by pthread_cond_wait() does away with need to have an additional mutex. This both optimizes runtime execution and simplifies code, as the extra lock typically lead to quite some trickeries to avoid the dungeon collapsing due to zaps from the wand of deadlock.
|
#
1.27 |
|
12-May-2010 |
pooka |
fix inversion: advance clock on cpu0, not the complement of cpu0
|
Revision tags: uebayasi-xip-base1
|
#
1.26 |
|
28-Apr-2010 |
pooka |
Fix snafu which caused the clock to travel lightspeed.
|
#
1.25 |
|
27-Apr-2010 |
pooka |
Fix multiple virtual cpu support.
... or at least on x86. CPU_INFO_FOREACH() still isn't MI, and I don't want to support 2^n different versions.
|
#
1.24 |
|
14-Apr-2010 |
pooka |
Include kern_tc and use a timecounter driver instead of homerolled kern_tc implementation.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211
|
#
1.23 |
|
05-Dec-2009 |
pooka |
branches: 1.23.2; 1.23.4; Cast Oh Kath Ra once every second.
|
#
1.22 |
|
01-Dec-2009 |
pooka |
Almost there for virtual CPU MP support: * support bound kernel threads * bind softint threads to specific virtual cpus + remove now-unnecessary locks from softint code
Now, if we only had MI CPU_INFO_FOREACH() .... (hi rmind ;)
|
#
1.21 |
|
11-Nov-2009 |
pooka |
Make rumpuser_cv_timedwait take two int64's instead timespec to uncouple it from the timespec layout. Also, change return value to zero for "timeout didn't expire" and non-zero for "timeout expired". This decouples the interface from errno assignments.
|
#
1.20 |
|
09-Nov-2009 |
pooka |
Hash out soft interrupts to be a little closer to real softints: * split them into levels * allow only one per level to be active at a time * fire softints only when we are unscheduling from a CPU instead of immediately in softint_schedule(). this will later morph into return from interrupt, but that part isn't done yet.
|
#
1.19 |
|
06-Nov-2009 |
pooka |
lie that we are never in a softintr (i.e. add stub)
|
Revision tags: jym-xensuspend-nbase
|
#
1.18 |
|
19-Sep-2009 |
pooka |
arrr, implement softint_disestablish(). this code be needin' an enema, matey.
|
Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 jym-xensuspend-base nick-hppapmap-base
|
#
1.17 |
|
26-Apr-2009 |
pooka |
fix uninitialized
|
#
1.16 |
|
26-Apr-2009 |
pooka |
Fix getnano/microuptime to report actual uptime.
|
Revision tags: nick-hppapmap-base2
|
#
1.15 |
|
27-Feb-2009 |
pooka |
decouple rumpuser gettime from struct timeval
|
#
1.14 |
|
07-Feb-2009 |
pooka |
branches: 1.14.2; Make the clock interrupt tick based on absolute time instead of relative time. This prevents drifting. Also, keep track of time within userspace, so we do not have to make a syscall to get the clock value. This is approximately 7 times cheaper, but on the negative side is limited to the clock interrupt frequency.
|
#
1.13 |
|
04-Feb-2009 |
pooka |
Create the clock interrupt and soft interrupt workers as MPSAFE
|
Revision tags: mjf-devfs2-base
|
#
1.12 |
|
13-Jan-2009 |
pooka |
misc cleanup, mainly header polish
|
#
1.11 |
|
18-Dec-2008 |
pooka |
__KERNEL_RCSID
|
#
1.10 |
|
18-Dec-2008 |
pooka |
Separate the timer thread and soft interrut workers. Use a dynamic size pool of workers to make sure there are enough for processing the scheduled soft interrupts.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base haad-dm-base
|
#
1.9 |
|
30-Oct-2008 |
christos |
fix compilation and lint warnings.
|
Revision tags: matt-mips64-base2 haad-dm-base1
|
#
1.8 |
|
10-Oct-2008 |
pooka |
branches: 1.8.2; Provide time_uptime and push it forward every now and then if we happen to have the timer thread. rump uptime - woohoo.
|
Revision tags: wrstuden-revivesa-base-4
|
#
1.7 |
|
10-Oct-2008 |
pooka |
fix brainfart: kthread_create() sets curlwp
|
#
1.6 |
|
10-Oct-2008 |
pooka |
Support callouts and call callout_hardclock() from the timer interrupt thread.
The sleepq implementation required for callouts is horrible, kludged only for callouts, and generally unacceptable. It needs revisiting, but I'm not sure yet should rump or kern_timeout be improved. It's almost untested as of now, but committing this will give me some maneuvering space while letting application compile.
|
#
1.5 |
|
09-Oct-2008 |
pooka |
Rewrite interrupts to provide better softintr support, i.e. not execute them simply in the context of the scheduling code, as this does not work for all applications (e.g. networking soft interrupts). Rather, schedule them and execute them from a separate context.
Also provide a timer which for now executes just hardclock_callout() (well, at least after callouts are included in librump, which is soon).
|
Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 simonb-wapbl-nbase simonb-wapbl-base
|
#
1.4 |
|
29-Jul-2008 |
pooka |
Install rump libraries and utilities to the base system and remove the private non-installed build infrastructure from sys/rump.
breakdown of commit: * install relevant headers into /usr/include/rump * build sys/rump/librump/rumpuser and sys/rump/librump/rumpkern from src/lib and install as librumpuser and librump, respectively + this retains the ability to test a librump build with just the kernel sources at hand * move sys/rump/fs/lib/libukfs and sys/rump/fs/lib/libp2k to src/lib for general consumption, they are not kernel-space dwellers anyway * build and install sys/rump/fs/lib/lib$fs as librumpfs_$fs * add chapter 3 manual pages for rump, rumpuser, ukfs and p2k * build and install userspace kernel file system daemons if MKPUFFS=yes is spexified * retire fsconsole for now, it will make a comeback with an actually implemented version shortly
|
Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base
|
#
1.3 |
|
28-Apr-2008 |
martin |
branches: 1.3.2; 1.3.4; 1.3.6; Remove clause 3 and 4 from TNF licenses
|
Revision tags: hpcarm-cleanup-base yamt-pf42-baseX yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base mjf-devfs-base matt-armv6-base bouyer-xeni386-base matt-armv6-nbase bouyer-xeni386-nbase
|
#
1.2 |
|
02-Jan-2008 |
ad |
branches: 1.2.2; 1.2.4; 1.2.6; 1.2.8; 1.2.14; 1.2.16; 1.2.18; Merge vmlocking2 to head.
|
#
1.1 |
|
28-Dec-2007 |
ad |
branches: 1.1.2; file intr.c was initially added on branch vmlocking2.
|