<feed xmlns='http://www.w3.org/2005/Atom'>
<title>netbsd/sys/kern/vfs_mount.c, branch lockdoc-10.99.5-vfs</title>
<subtitle>NetBSD fork for lockdoc analysis</subtitle>
<link rel='alternate' type='text/html' href='http://git.infra.scholz.ruhr/netbsd/'/>
<entry>
<title>Remove now (hopefully) unnecessary kmutex_t logging</title>
<updated>2023-08-22T23:44:24+00:00</updated>
<author>
<name>Merlin Scholz</name>
<email>merlin@scholz.ruhr</email>
</author>
<published>2023-08-22T23:44:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.infra.scholz.ruhr/netbsd/commit/?id=280762e2b1ada6722cf1cd155357d5940a489cf6'/>
<id>280762e2b1ada6722cf1cd155357d5940a489cf6</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Adapt to NetBSD 10 by adding mount logging and v_interlock logging. Update Lockdoc Version</title>
<updated>2023-07-19T17:56:04+00:00</updated>
<author>
<name>Merlin Scholz</name>
<email>merlin@scholz.ruhr</email>
</author>
<published>2023-07-19T17:56:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.infra.scholz.ruhr/netbsd/commit/?id=dd242573de8cb41e160a4ac9f742319cf4064e97'/>
<id>dd242573de8cb41e160a4ac9f742319cf4064e97</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>kern: Eliminate most __HAVE_ATOMIC_AS_MEMBAR conditionals.</title>
<updated>2023-02-24T11:02:27+00:00</updated>
<author>
<name>riastradh</name>
<email>riastradh@NetBSD.org</email>
</author>
<published>2023-02-24T11:02:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.infra.scholz.ruhr/netbsd/commit/?id=e9b81bf09faef4f635f647ef2b068ce33dc1f445'/>
<id>e9b81bf09faef4f635f647ef2b068ce33dc1f445</id>
<content type='text'>
I'm leaving in the conditional around the legacy membar_enters
(store-before-load, store-before-store) in kern_mutex.c and in
kern_lock.c because they may still matter: store-before-load barriers
tend to be the most expensive kind, so eliding them is probably
worthwhile on x86.  (It also may not matter; I just don't care to do
measurements right now, and it's a single valid and potentially
justifiable use case in the whole tree.)

However, membar_release/acquire can be mere instruction barriers on
all TSO platforms including x86, so there's no need to go out of our
way with a bad API to conditionalize them.  If the procedure call
overhead is measurable we just could change them to be macros on x86
that expand into __insn_barrier.

Discussed on tech-kern:
https://mail-index.netbsd.org/tech-kern/2023/02/23/msg028729.html</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
I'm leaving in the conditional around the legacy membar_enters
(store-before-load, store-before-store) in kern_mutex.c and in
kern_lock.c because they may still matter: store-before-load barriers
tend to be the most expensive kind, so eliding them is probably
worthwhile on x86.  (It also may not matter; I just don't care to do
measurements right now, and it's a single valid and potentially
justifiable use case in the whole tree.)

However, membar_release/acquire can be mere instruction barriers on
all TSO platforms including x86, so there's no need to go out of our
way with a bad API to conditionalize them.  If the procedure call
overhead is measurable we just could change them to be macros on x86
that expand into __insn_barrier.

Discussed on tech-kern:
https://mail-index.netbsd.org/tech-kern/2023/02/23/msg028729.html</pre>
</div>
</content>
</entry>
<entry>
<title>Harden layered file systems usage of field "mnt_lower" against</title>
<updated>2022-12-09T10:33:18+00:00</updated>
<author>
<name>hannken</name>
<email>hannken@NetBSD.org</email>
</author>
<published>2022-12-09T10:33:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.infra.scholz.ruhr/netbsd/commit/?id=67b54f7a3474b82acdc6d31aaa303bdf0c1c3184'/>
<id>67b54f7a3474b82acdc6d31aaa303bdf0c1c3184</id>
<content type='text'>
forced unmounts of the lower layer.

- Dont allow "dead_rootmount" as lower layer.

- Take file system busy before a vfs operation walks down the stack.

Reported-by: syzbot+27b35e5675b1753cec03@syzkaller.appspotmail.com
Reported-by: syzbot+99071492e3de2eff49e9@syzkaller.appspotmail.com</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
forced unmounts of the lower layer.

- Dont allow "dead_rootmount" as lower layer.

- Take file system busy before a vfs operation walks down the stack.

Reported-by: syzbot+27b35e5675b1753cec03@syzkaller.appspotmail.com
Reported-by: syzbot+99071492e3de2eff49e9@syzkaller.appspotmail.com</pre>
</div>
</content>
</entry>
<entry>
<title>If built with DEBUG Limit the depth of file system stack so kernel sanitizers</title>
<updated>2022-11-10T10:55:00+00:00</updated>
<author>
<name>hannken</name>
<email>hannken@NetBSD.org</email>
</author>
<published>2022-11-10T10:55:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.infra.scholz.ruhr/netbsd/commit/?id=a14660ac22b5f070391a1cf4686f799cff9ea26f'/>
<id>a14660ac22b5f070391a1cf4686f799cff9ea26f</id>
<content type='text'>
may stress mount/unmount without exhausting the kernel stack.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
may stress mount/unmount without exhausting the kernel stack.</pre>
</div>
</content>
</entry>
<entry>
<title>Add a helper to set or clear lower mount and use it.</title>
<updated>2022-11-04T11:20:39+00:00</updated>
<author>
<name>hannken</name>
<email>hannken@NetBSD.org</email>
</author>
<published>2022-11-04T11:20:39+00:00</published>
<link rel='alternate' type='text/html' href='http://git.infra.scholz.ruhr/netbsd/commit/?id=4dedf99cc0724601e484a45e3edb123214a12ac1'/>
<id>4dedf99cc0724601e484a45e3edb123214a12ac1</id>
<content type='text'>
Always add a reference to the lower mount.

Ride 9.99.105</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Always add a reference to the lower mount.

Ride 9.99.105</pre>
</div>
</content>
</entry>
<entry>
<title>sys/filedesc.h: New home for extern cwdi0.</title>
<updated>2022-10-26T23:39:10+00:00</updated>
<author>
<name>riastradh</name>
<email>riastradh@NetBSD.org</email>
</author>
<published>2022-10-26T23:39:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.infra.scholz.ruhr/netbsd/commit/?id=fcdd2ff1556c9e9d4f8631d5fb074494fea4e9bc'/>
<id>fcdd2ff1556c9e9d4f8631d5fb074494fea4e9bc</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>vflush(9): Insert `involuntary' preemption point at each vnode.</title>
<updated>2022-09-13T09:35:31+00:00</updated>
<author>
<name>riastradh</name>
<email>riastradh@NetBSD.org</email>
</author>
<published>2022-09-13T09:35:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.infra.scholz.ruhr/netbsd/commit/?id=fe2f5c8f6e2705567e9e82bd199a11372ea3a1fb'/>
<id>fe2f5c8f6e2705567e9e82bd199a11372ea3a1fb</id>
<content type='text'>
Currently there is a voluntary yield every 100ms, but that's a long
time.  Should help to avoid hogging the CPU while flushing lots of
data to big disks on systems without kpreemption.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently there is a voluntary yield every 100ms, but that's a long
time.  Should help to avoid hogging the CPU while flushing lots of
data to big disks on systems without kpreemption.</pre>
</div>
</content>
</entry>
<entry>
<title>Two defects in vfs_getnewfsid():</title>
<updated>2022-08-26T11:03:53+00:00</updated>
<author>
<name>hannken</name>
<email>hannken@NetBSD.org</email>
</author>
<published>2022-08-26T11:03:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.infra.scholz.ruhr/netbsd/commit/?id=f7811a3799991ad9461046221d81c7a7a5788f18'/>
<id>f7811a3799991ad9461046221d81c7a7a5788f18</id>
<content type='text'>
- Parallel mounts may get the same fsid.  Always increment "xxxfs_mntid"
  to make it unlikely.

- Directly walk "mountlist" to prevent a rare deadlock where one thread
  holds a vnode locked, calls vfs_getnewfsid() and the iterator has to
  wait for a suspended file system while the thread suspending needs
  this vnode lock.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Parallel mounts may get the same fsid.  Always increment "xxxfs_mntid"
  to make it unlikely.

- Directly walk "mountlist" to prevent a rare deadlock where one thread
  holds a vnode locked, calls vfs_getnewfsid() and the iterator has to
  wait for a suspended file system while the thread suspending needs
  this vnode lock.</pre>
</div>
</content>
</entry>
<entry>
<title>Protect changing "v_mountedhere" with file system suspension instead</title>
<updated>2022-08-22T09:14:24+00:00</updated>
<author>
<name>hannken</name>
<email>hannken@NetBSD.org</email>
</author>
<published>2022-08-22T09:14:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.infra.scholz.ruhr/netbsd/commit/?id=4c847c5e0966c110e47aec90dfe0df1a8e6a764a'/>
<id>4c847c5e0966c110e47aec90dfe0df1a8e6a764a</id>
<content type='text'>
of vnode lock.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
of vnode lock.</pre>
</div>
</content>
</entry>
</feed>
