History log of /src/sys/kern/subr_percpu.c |
Revision | | Date | Author | Comments |
1.25 |
| 11-May-2020 |
riastradh | Teach percpu to run constructors on CPU attach.
This should make percpu work reliably for things like cprng_strong much earlier -- not just after all CPUs have been detected. This is also necessary (though not on its own sufficient) for CPU hotplug.
|
1.24 |
| 07-Feb-2020 |
thorpej | Add percpu_foreach_xcall(), which is like percpu_foreach(), except it runs the callback on the target CPU.
|
1.23 |
| 01-Feb-2020 |
riastradh | KNF
|
1.22 |
| 01-Feb-2020 |
riastradh | Use __read_mostly and gather related __cacheline_aligned together.
Should save a few bytes of kernel.
|
1.21 |
| 01-Feb-2020 |
riastradh | New function percpu_create.
Associates a constructor and destructor with the percpu. Currently the constructor runs immediately, but in principle we could use the same API for future CPU hotplug support.
This lets you sleep for allocation or draining users before deallocation when setting up or tearing down a percpu -- currently we have many abuses of percpu_foreach in tree for that purpose.
Proposed on tech-kern: https://mail-index.NetBSD.org/tech-kern/2020/01/30/msg026036.html
|
1.20 |
| 05-Dec-2019 |
riastradh | branches: 1.20.2; Allow equality in this assertion.
This can happen if we lose the race mentioned in percpu_cpu_swap.
|
1.19 |
| 18-Sep-2019 |
kamil | Decorate percpu_cpu_swap() with __noubsan
|
1.18 |
| 31-May-2017 |
chs | branches: 1.18.10; 1.18.14; vmem_alloc() with VM_SLEEP cannot fail, so percpu_alloc() cannot fail either.
|
1.17 |
| 27-Nov-2014 |
uebayasi | branches: 1.17.2; Consistently use kpreempt_*() outside scheduler path.
|
1.16 |
| 27-Jan-2012 |
para | branches: 1.16.6; extending vmem(9) to be able to allocated resources for it's own needs. simplifying uvm_map handling (no special kernel entries anymore no relocking) make malloc(9) a thin wrapper around kmem(9) (with private interface for interrupt safety reasons)
releng@ acknowledged
|
1.15 |
| 02-Sep-2011 |
dyoung | branches: 1.15.2; 1.15.6; Report vmem(9) errors out-of-band so that we can use vmem(9) to manage ranges that include the least and the greatest vmem_addr_t. Update vmem(9) uses throughout the kernel. Slightly expand on the tests in subr_vmem.c, which still pass. I've been running a kernel with this patch without any trouble.
|
1.14 |
| 27-Jul-2011 |
uebayasi | These don't need uvm/uvm_extern.h.
|
1.13 |
| 13-May-2011 |
rmind | Sprinkle __cacheline_aligned and __read_mostly.
|
1.12 |
| 19-Apr-2011 |
martin | Relax an assertion
|
1.11 |
| 14-Apr-2011 |
matt | Add a KASSERT
|
1.10 |
| 21-Oct-2009 |
rmind | branches: 1.10.4; 1.10.6; Remove uarea swap-out functionality:
- Addresses the issue described in PR/38828. - Some simplification in threading and sleepq subsystems. - Eliminates pmap_collect() and, as a side note, allows pmap optimisations. - Eliminates XS_CTL_DATA_ONSTACK in scsipi code. - Avoids few scans on LWP list and thus potentially long holds of proc_lock. - Cuts ~1.5k lines of code. Reduces amd64 kernel size by ~4k. - Removes __SWAP_BROKEN cases.
Tested on x86, mips, acorn32 (thanks <mpumford>) and partly tested on acorn26 (thanks to <bjh21>).
Discussed on <tech-kern>, reviewed by <ad>.
|
1.9 |
| 15-Dec-2008 |
ad | Start percpu allocation at (ALIGNBYTES + 1) to avoid problem with importing offset zero to vmem.
|
1.8 |
| 03-May-2008 |
yamt | branches: 1.8.8; 1.8.10; - encrypt/decrypt offsets if DIAGNOSTIC. - add an assertion. these changes allow to detect a use of uninitialized percpu_t *.
|
1.7 |
| 28-Apr-2008 |
ad | Add MI code to support in-kernel preemption. Preemption is deferred by one of the following:
- Holding kernel_lock (indicating that the code is not MT safe). - Bracketing critical sections with kpreempt_disable/kpreempt_enable. - Holding the interrupt priority level above IPL_NONE.
Statistics on kernel preemption are reported via event counters, and where preemption is deferred for some reason, it's also reported via lockstat. The LWP priority at which preemption is triggered is tuneable via sysctl.
|
1.6 |
| 27-Apr-2008 |
ad | branches: 1.6.2; - Rename crit_enter/crit_exit to kpreempt_disable/kpreempt_enable. DragonflyBSD uses the crit names for something quite different. - Add a kpreempt_disabled function for diagnostic assertions. - Add inline versions of kpreempt_enable/kpreempt_disable for primitives. - Make some more changes for preemption safety to the x86 pmap.
|
1.5 |
| 26-Apr-2008 |
yamt | fix a comment.
|
1.4 |
| 09-Apr-2008 |
thorpej | branches: 1.4.2; Make the percpu API a little more friendly: - percpu_getptr() is now called percpu_getref() and implicitly disables preemption (via crit_enter()) when it is called. - Added percpu_putref() which implicitly reenables preemption (via crit_exit()).
|
1.3 |
| 17-Mar-2008 |
yamt | branches: 1.3.2; - simplify ASSERT_SLEEPABLE. - move it from proc.h to systm.h. - add some more checks. - make it a little more lkm friendly.
|
1.2 |
| 17-Jan-2008 |
yamt | branches: 1.2.2; 1.2.4; 1.2.6; 1.2.8; 1.2.12; - add a cpu_info pointer argument to percpu_callback_t. - unexport percpu_zero. - add some comments.
|
1.1 |
| 14-Jan-2008 |
yamt | add a per-cpu storage allocator.
|
1.2.12.3 |
| 17-Jan-2009 |
mjf | Sync with HEAD.
|
1.2.12.2 |
| 02-Jun-2008 |
mjf | Sync with HEAD.
|
1.2.12.1 |
| 03-Apr-2008 |
mjf | Sync with HEAD.
|
1.2.8.1 |
| 24-Mar-2008 |
keiichi | sync with head.
|
1.2.6.2 |
| 18-Feb-2008 |
mjf | Sync with HEAD.
|
1.2.6.1 |
| 17-Jan-2008 |
mjf | file subr_percpu.c was added on branch mjf-devfs on 2008-02-18 21:06:47 +0000
|
1.2.4.3 |
| 17-Mar-2008 |
yamt | sync with head.
|
1.2.4.2 |
| 21-Jan-2008 |
yamt | sync with head
|
1.2.4.1 |
| 17-Jan-2008 |
yamt | file subr_percpu.c was added on branch yamt-lazymbuf on 2008-01-21 09:46:19 +0000
|
1.2.2.2 |
| 19-Jan-2008 |
bouyer | Sync with HEAD
|
1.2.2.1 |
| 17-Jan-2008 |
bouyer | file subr_percpu.c was added on branch bouyer-xeni386 on 2008-01-19 12:15:25 +0000
|
1.3.2.2 |
| 23-Mar-2008 |
matt | sync with HEAD
|
1.3.2.1 |
| 17-Mar-2008 |
matt | file subr_percpu.c was added on branch matt-armv6 on 2008-03-23 02:05:00 +0000
|
1.4.2.1 |
| 18-May-2008 |
yamt | sync with head.
|
1.6.2.3 |
| 11-Mar-2010 |
yamt | sync with head
|
1.6.2.2 |
| 04-May-2009 |
yamt | sync with head.
|
1.6.2.1 |
| 16-May-2008 |
yamt | sync with head.
|
1.8.10.1 |
| 02-Feb-2009 |
snj | Pull up following revision(s) (requested by ad in ticket #348): sys/kern/subr_percpu.c: revision 1.9 Start percpu allocation at (ALIGNBYTES + 1) to avoid problem with importing offset zero to vmem.
|
1.8.8.1 |
| 19-Jan-2009 |
skrll | Sync with HEAD.
|
1.10.6.1 |
| 06-Jun-2011 |
jruoho | Sync with HEAD.
|
1.10.4.2 |
| 31-May-2011 |
rmind | sync with head
|
1.10.4.1 |
| 21-Apr-2011 |
rmind | sync with head
|
1.15.6.1 |
| 18-Feb-2012 |
mrg | merge to -current.
|
1.15.2.1 |
| 17-Apr-2012 |
yamt | sync with head
|
1.16.6.1 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.17.2.1 |
| 28-Aug-2017 |
skrll | Sync with HEAD
|
1.18.14.1 |
| 15-Jul-2020 |
martin | Pull up following revision(s) (requested by riastradh in ticket #1005):
sys/kern/subr_percpu.c: revision 1.20
Allow equality in this assertion.
This can happen if we lose the race mentioned in percpu_cpu_swap.
|
1.18.10.2 |
| 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.18.10.1 |
| 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
1.20.2.1 |
| 29-Feb-2020 |
ad | Sync with head.
|