<feed xmlns='http://www.w3.org/2005/Atom'>
<title>netbsd/sys/kern/kern_mutex.c, branch lockdoc-9.3-0.4</title>
<subtitle>NetBSD fork for lockdoc analysis</subtitle>
<link rel='alternate' type='text/html' href='http://git.infra.scholz.ruhr/netbsd/'/>
<entry>
<title>Implement missing Mutex and RW logging</title>
<updated>2023-03-17T19:36:23+00:00</updated>
<author>
<name>Merlin Scholz</name>
<email>merlin@scholz.ruhr</email>
</author>
<published>2023-03-17T19:36:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.infra.scholz.ruhr/netbsd/commit/?id=e2e1b134996638a109eec45981ba651ecef1b952'/>
<id>e2e1b134996638a109eec45981ba651ecef1b952</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Implement file and line logging for mutex locks</title>
<updated>2023-03-16T02:03:49+00:00</updated>
<author>
<name>Merlin Scholz</name>
<email>merlin@scholz.ruhr</email>
</author>
<published>2023-03-16T02:03:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.infra.scholz.ruhr/netbsd/commit/?id=bf1ce4ce265b9f38a71f0bca82d8f0e8c055233a'/>
<id>bf1ce4ce265b9f38a71f0bca82d8f0e8c055233a</id>
<content type='text'>
This commit implements proper file and line logging as a proof of concept for mutex locks. The previous versions only logged the location inside the mutex_enter function, which was useless.

To get correct filenames, calls to mutex_enter (which usually go directly to ASM) are replaced through the macro defined in lockdoc.h. This logs the according information and passes on the function call to the old ASM code.

Furthermore, some other things like apm.c or patch.c had to be modified, to keep the code compilable, even with this new replacement macro.

Also, the old logging methods in lockdebug.h have been removed, since we can not get the proper file and line by going through there.

This commit only implements these changes for mutex_enter, mutex_spin_enter, mutex_exit and mutex_spin_exit, and serves as a template for changes in the other lock functions and types.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit implements proper file and line logging as a proof of concept for mutex locks. The previous versions only logged the location inside the mutex_enter function, which was useless.

To get correct filenames, calls to mutex_enter (which usually go directly to ASM) are replaced through the macro defined in lockdoc.h. This logs the according information and passes on the function call to the old ASM code.

Furthermore, some other things like apm.c or patch.c had to be modified, to keep the code compilable, even with this new replacement macro.

Also, the old logging methods in lockdebug.h have been removed, since we can not get the proper file and line by going through there.

This commit only implements these changes for mutex_enter, mutex_spin_enter, mutex_exit and mutex_spin_exit, and serves as a template for changes in the other lock functions and types.
</pre>
</div>
</content>
</entry>
<entry>
<title>Undo previous log_lock functions only used for testing</title>
<updated>2022-10-27T10:39:35+00:00</updated>
<author>
<name>Merlin Scholz</name>
<email>merlin@scholz.ruhr</email>
</author>
<published>2022-10-27T10:39:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.infra.scholz.ruhr/netbsd/commit/?id=1a0ba374e3caa89776b4eabafd495d28edf9f8b7'/>
<id>1a0ba374e3caa89776b4eabafd495d28edf9f8b7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Port over code skeleton</title>
<updated>2022-10-17T16:23:56+00:00</updated>
<author>
<name>Merlin Scholz</name>
<email>merlin@scholz.ruhr</email>
</author>
<published>2022-10-17T16:23:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.infra.scholz.ruhr/netbsd/commit/?id=1df0d21d448db8d42144dbf29f840ea4751fcc7e'/>
<id>1df0d21d448db8d42144dbf29f840ea4751fcc7e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Pull up following revision(s) (requested by chs in ticket #768):</title>
<updated>2020-03-08T11:21:29+00:00</updated>
<author>
<name>martin</name>
<email>martin@NetBSD.org</email>
</author>
<published>2020-03-08T11:21:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.infra.scholz.ruhr/netbsd/commit/?id=5ff42cbda2e362a6cce59ddce10cb4400cf5cfa7'/>
<id>5ff42cbda2e362a6cce59ddce10cb4400cf5cfa7</id>
<content type='text'>
	sys/kern/kern_mutex.c: revision 1.90

split an "a &amp;&amp; b" assertion into two so it's clear in the dump which condition
was not true even if both are true by the time the dump is written.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	sys/kern/kern_mutex.c: revision 1.90

split an "a &amp;&amp; b" assertion into two so it's clear in the dump which condition
was not true even if both are true by the time the dump is written.</pre>
</div>
</content>
</entry>
<entry>
<title>Avoid prepending a timestamp to lock debug outputs on ddb</title>
<updated>2019-05-09T05:00:31+00:00</updated>
<author>
<name>ozaki-r</name>
<email>ozaki-r@NetBSD.org</email>
</author>
<published>2019-05-09T05:00:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.infra.scholz.ruhr/netbsd/commit/?id=cb59eff2c4202e5c4865fba1632af3439f56f03f'/>
<id>cb59eff2c4202e5c4865fba1632af3439f56f03f</id>
<content type='text'>
Lock printer functions (lockops_t#lo_dump) use printf_nolog to print, but
printf_nolog now prepends a timestamp which is unnecessary for ddb:

    db{0}&gt; show all locks/t
    [Locks tracked through LWPs]
    Locks held by an LWP (iperf):
    Lock 0 (initialized at soinit)
    lock address : 0xffffedeb84b06080 type     :     sleep/adaptive
    initialized  : 0xffffffff806d8c3f
    shared holds :                  0 exclusive:                  1
    shares wanted:                  0 exclusive:                 11
    current cpu  :                  0 last held:                  1
    current lwp  : 0xffffedeb849ff040 last held: 0xffffedeb7dfdb240
    last locked* : 0xffffffff806d8335 unlocked : 0xffffffff806d8385
    [ 79103.0868574] owner field  : 0xffffedeb7dfdb240 wait/spin:                1/0

Fix it by passing a printer function to lo_dump functions, i.e., make the
functions use db_printf on ddb.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Lock printer functions (lockops_t#lo_dump) use printf_nolog to print, but
printf_nolog now prepends a timestamp which is unnecessary for ddb:

    db{0}&gt; show all locks/t
    [Locks tracked through LWPs]
    Locks held by an LWP (iperf):
    Lock 0 (initialized at soinit)
    lock address : 0xffffedeb84b06080 type     :     sleep/adaptive
    initialized  : 0xffffffff806d8c3f
    shared holds :                  0 exclusive:                  1
    shares wanted:                  0 exclusive:                 11
    current cpu  :                  0 last held:                  1
    current lwp  : 0xffffedeb849ff040 last held: 0xffffedeb7dfdb240
    last locked* : 0xffffffff806d8335 unlocked : 0xffffffff806d8385
    [ 79103.0868574] owner field  : 0xffffedeb7dfdb240 wait/spin:                1/0

Fix it by passing a printer function to lo_dump functions, i.e., make the
functions use db_printf on ddb.</pre>
</div>
</content>
</entry>
<entry>
<title>Add missing "static" declaration</title>
<updated>2019-05-09T04:52:59+00:00</updated>
<author>
<name>ozaki-r</name>
<email>ozaki-r@NetBSD.org</email>
</author>
<published>2019-05-09T04:52:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.infra.scholz.ruhr/netbsd/commit/?id=03ef94b82c0afd047688c2e596a75e205cf0cc58'/>
<id>03ef94b82c0afd047688c2e596a75e205cf0cc58</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't check pserialize_not_in_read_section after panic</title>
<updated>2019-04-17T02:29:43+00:00</updated>
<author>
<name>ozaki-r</name>
<email>ozaki-r@NetBSD.org</email>
</author>
<published>2019-04-17T02:29:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.infra.scholz.ruhr/netbsd/commit/?id=18d7eba7de94f0eb8a78eeae84d9ed71a0b149d6'/>
<id>18d7eba7de94f0eb8a78eeae84d9ed71a0b149d6</id>
<content type='text'>
It can cause a false positive assertion failure.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It can cause a false positive assertion failure.</pre>
</div>
</content>
</entry>
<entry>
<title>Fix two oddities...</title>
<updated>2019-03-10T12:49:48+00:00</updated>
<author>
<name>skrll</name>
<email>skrll@NetBSD.org</email>
</author>
<published>2019-03-10T12:49:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.infra.scholz.ruhr/netbsd/commit/?id=734469b31b1d3c4ed6f3afe177c54dde910d2b40'/>
<id>734469b31b1d3c4ed6f3afe177c54dde910d2b40</id>
<content type='text'>
- remove extraneous semi-colons from do { } while (0) macro definitions
- actually wrap MUTEX_INITIALIZE_ADAPTIVE contents in do { }

Spotted by kre@</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- remove extraneous semi-colons from do { } while (0) macro definitions
- actually wrap MUTEX_INITIALIZE_ADAPTIVE contents in do { }

Spotted by kre@</pre>
</div>
</content>
</entry>
<entry>
<title>Sprinkle __predict_false to dedicated assertions of mutex and rwlock</title>
<updated>2018-08-31T01:23:57+00:00</updated>
<author>
<name>ozaki-r</name>
<email>ozaki-r@NetBSD.org</email>
</author>
<published>2018-08-31T01:23:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.infra.scholz.ruhr/netbsd/commit/?id=587b081c835ca4b2e1b422a275eb7550e03804c9'/>
<id>587b081c835ca4b2e1b422a275eb7550e03804c9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
