Home | History | Annotate | Download | only in dev
History log of /src/sys/dev/lockstat.c
RevisionDateAuthorComments
 1.30  08-Apr-2022  andvar fix various typos, mainly in comments, but also log messages, docs, game text.
 1.29  27-Feb-2022  riastradh lockstat(4): KNF. No functional change intended.
 1.28  27-Feb-2022  riastradh lockstat(4): Membar audit.

- Serialize updates to lockstat_enabled, lockstat_dev_enabled, and
lockstat_dtrace_enabled with a new __cpu_simple_lock.

- Use xc_barrier to obviate any need for additional membars in
lockstat_event.

- Use atomic_load/store_* for access that might not be serialized by
lockstat_lock or lockstat_enabled_lock.
 1.27  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.26  23-Nov-2019  ad - Increase the default number of buffers, and scale it by ncpu.
- Stop tracing when the device is closed.
 1.25  01-Jun-2017  chs branches: 1.25.10;
remove checks for failure after memory allocation calls that cannot fail:

kmem_alloc() with KM_SLEEP
kmem_zalloc() with KM_SLEEP
percpu_alloc()
pserialize_create()
psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.
 1.24  20-Aug-2015  christos include "ioconf.h" to get the 'void <driver>attach(int count);' prototype.
 1.23  07-Jun-2015  matt This uses CPU_INFO_FOREACH so it really should include <sys/cpu.h>
 1.22  11-Mar-2015  christos add coverity annotations (variable is volatile so it might have side effects)
 1.21  09-Mar-2015  christos Introduce a new flag LB_DTRACE for dtrace lockstat events.
Split lockstat_enabled into two parts, one controlled by dtrace called
"lockstat_dtrace_enabled" and one by the lockstat device called
"lockstat_dev_enabled". Create a macro that needs to be called when either
of them changes LOCKSTAT_ENABLED_UPDATE().
 1.20  08-Mar-2015  christos dtrace bits from riastradh
 1.19  25-Jul-2014  dholland branches: 1.19.4;
Add d_discard to all struct cdevsw instances I could find.

All have been set to "nodiscard"; some should get a real implementation.
 1.18  21-Apr-2014  chs increase LOCKSTAT_MAXBUFS, systems with lots of CPUs need more.
 1.17  16-Mar-2014  dholland branches: 1.17.2;
Change (mostly mechanically) every cdevsw/bdevsw I can find to use
designated initializers.

I have not built every extant kernel so I have probably broken at
least one build; however I've also found and fixed some wrong
cdevsw/bdevsw entries so even if so I think we come out ahead.
 1.16  10-Dec-2012  msaitoh branches: 1.16.2;
Fix off by one.
 1.15  28-Apr-2008  martin branches: 1.15.10; 1.15.16; 1.15.24; 1.15.34; 1.15.40; 1.15.44; 1.15.46; 1.15.48;
Remove clause 3 and 4 from TNF licenses
 1.14  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.13  04-Jan-2008  ad branches: 1.13.6; 1.13.8; 1.13.10;
Start detangling lock.h from intr.h. This is likely to cause short term
breakage, but the mess of dependencies has been regularly breaking the
build recently anyhow.
 1.12  20-Dec-2007  ad Use new style memory barriers.
 1.11  06-Nov-2007  ad branches: 1.11.2; 1.11.6;
Merge from vmlocking.
 1.10  14-Jul-2007  ad branches: 1.10.6; 1.10.8; 1.10.12; 1.10.14;
- Increase default number of trace buffers to 10000.
- New options:
-f Trace only by calling functions.
-m Merge call sites within unique functions.
-M Merge lock addresses within unique objects.
 1.9  15-Jun-2007  ad splstatclock, spllock -> splhigh
 1.8  04-Mar-2007  christos branches: 1.8.2; 1.8.4;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.7  15-Feb-2007  ad branches: 1.7.2;
Count the number of CPUs at boot and stash in 'ncpu'. Eventually should
have each CPU register at attach, so we can figure out the topology for
the scheduler.
 1.6  09-Feb-2007  ad Merge newlock2 to head.
 1.5  25-Dec-2006  ad branches: 1.5.2;
lockstat: improve reporting slightly, and fix a bug where the command
could spin while resorting lists.
 1.4  16-Nov-2006  christos __unused removal on arguments; approved by core.
 1.3  12-Oct-2006  xtraeme Use __unused in function arguments where appropiate. (hi christos)
 1.2  07-Sep-2006  ad branches: 1.2.2; 1.2.4; 1.2.6; 1.2.8;
- Add a couple of XXX comments.
- lb->lb_cpu doesn't need to be filled in lockstat_event().
 1.1  07-Sep-2006  ad Add the 'lockstat' driver, which collects basic information about lock events.
 1.2.8.2  10-Dec-2006  yamt sync with head.
 1.2.8.1  22-Oct-2006  yamt sync with head
 1.2.6.2  14-Sep-2006  yamt sync with head.
 1.2.6.1  07-Sep-2006  yamt file lockstat.c was added on branch yamt-pdpolicy on 2006-09-14 12:31:26 +0000
 1.2.4.2  09-Sep-2006  rpaulo sync with head
 1.2.4.1  07-Sep-2006  rpaulo file lockstat.c was added on branch rpaulo-netinet-merge-pcb on 2006-09-09 02:49:09 +0000
 1.2.2.5  06-Feb-2007  ad Avoid shadowing global 'time'. Noted by mhitch.
k
 1.2.2.4  12-Jan-2007  ad Sync with head.
 1.2.2.3  29-Dec-2006  ad Checkpoint work in progress.
 1.2.2.2  18-Nov-2006  ad Sync with head.
 1.2.2.1  17-Nov-2006  ad Checkpoint work in progress.
 1.5.2.6  21-Jan-2008  yamt sync with head
 1.5.2.5  15-Nov-2007  yamt sync with head.
 1.5.2.4  03-Sep-2007  yamt sync with head.
 1.5.2.3  26-Feb-2007  yamt sync with head.
 1.5.2.2  30-Dec-2006  yamt sync with head.
 1.5.2.1  25-Dec-2006  yamt file lockstat.c was added on branch yamt-lazymbuf on 2006-12-30 20:47:50 +0000
 1.7.2.1  12-Mar-2007  rmind Sync with HEAD.
 1.8.4.1  11-Jul-2007  mjf Sync with head.
 1.8.2.4  29-Oct-2007  ad Prevent the device from being accessed by an LWP other than the LWP that
first opened it.
 1.8.2.3  29-Oct-2007  ad lockstat_event: splhigh() before calling curcpu(), since it can change if
the LWP is preempted.
 1.8.2.2  28-Oct-2007  ad - Use kmem_alloc/kmem_free.
- Simplify locking.
- Mark MPSAFE.
 1.8.2.1  15-Jul-2007  ad Sync with head.
 1.10.14.3  18-Feb-2008  mjf Sync with HEAD.
 1.10.14.2  27-Dec-2007  mjf Sync with HEAD.
 1.10.14.1  19-Nov-2007  mjf Sync with HEAD.
 1.10.12.1  13-Nov-2007  bouyer Sync with HEAD
 1.10.8.2  09-Jan-2008  matt sync with HEAD
 1.10.8.1  08-Nov-2007  matt sync with -HEAD
 1.10.6.1  06-Nov-2007  joerg Sync with HEAD.
 1.11.6.2  08-Jan-2008  bouyer Sync with HEAD
 1.11.6.1  02-Jan-2008  bouyer Sync with HEAD
 1.11.2.1  26-Dec-2007  ad Sync with head.
 1.13.10.1  16-May-2008  yamt sync with head.
 1.13.8.1  18-May-2008  yamt sync with head.
 1.13.6.2  02-Jun-2008  mjf Sync with HEAD.
 1.13.6.1  05-Apr-2008  mjf - add "file-system DEVFS" and "pseudo-device devfsctl" to conf/std seeing
as these are always needed.

- convert many, many drivers over to the New Devfs World Order. For a
list of device drivers yet to be converted see,
http://www.netbsd.org/~mjf/devfs-todo.html.

- add a new device_unregister_all(device_t) function to remove all device
names associated with a device_t, which saves us having to construct
device names when the driver is detached.

- add a DEV_AUDIO type for devices.
 1.15.48.1  13-Jan-2013  bouyer Pull up following revision(s) (requested by msaitoh in ticket #1826):
sys/dev/lockstat.c: revision 1.16
Fix off by one.
 1.15.46.1  17-Dec-2012  riz Pull up following revision(s) (requested by msaitoh in ticket #752):
sys/dev/lockstat.c: revision 1.16
Fix off by one.
 1.15.44.3  03-Dec-2017  jdolecek update from HEAD
 1.15.44.2  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.15.44.1  25-Feb-2013  tls resync with head
 1.15.40.1  17-Dec-2012  riz Pull up following revision(s) (requested by msaitoh in ticket #752):
sys/dev/lockstat.c: revision 1.16
Fix off by one.
 1.15.34.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.15.34.1  16-Jan-2013  yamt sync with (a bit old) head
 1.15.24.1  13-Jan-2013  bouyer Pull up following revision(s) (requested by msaitoh in ticket #1826):
sys/dev/lockstat.c: revision 1.16
Fix off by one.
 1.15.16.1  13-Jan-2013  bouyer Pull up following revision(s) (requested by msaitoh in ticket #1826):
sys/dev/lockstat.c: revision 1.16
Fix off by one.
 1.15.10.1  13-Jan-2013  bouyer Pull up following revision(s) (requested by msaitoh in ticket #1826):
sys/dev/lockstat.c: revision 1.16
Fix off by one.
 1.16.2.1  18-May-2014  rmind sync with head
 1.17.2.1  10-Aug-2014  tls Rebase.
 1.19.4.3  28-Aug-2017  skrll Sync with HEAD
 1.19.4.2  22-Sep-2015  skrll Sync with HEAD
 1.19.4.1  06-Apr-2015  skrll Sync with HEAD
 1.25.10.1  08-Apr-2020  martin Merge changes from current as of 20200406

RSS XML Feed