Page MenuHomeFreeBSD

mjg (Mateusz Guzik)
nice guy

Projects

User Details

User Since
Jun 4 2014, 10:38 AM (287 w, 2 d)

Recent Activity

Today

mjg updated the summary of D22718: vfs: clean up vputx a little.
Sat, Dec 7, 2:35 AM
mjg created D22718: vfs: clean up vputx a little.
Sat, Dec 7, 2:34 AM
mjg updated the diff for D22689: vfs: stop error checking vget(..., LK_RETRY, ...) in vfs_msync.
Sat, Dec 7, 1:43 AM
mjg updated the diff for D22665: vfs: provide new locking primitives which elide ->v_vnlock and shared locking disablement.
  • remove shared lock assertion from vop_stdlock
  • add a comment about new lockmgr primitives
  • convert zfs. both tmpfs and zfs changes will be committed separately
Sat, Dec 7, 1:33 AM
mjg abandoned D21984: vfs: reduce failing trylock attempts in mnt_vnode_next_active.

With filtering support (D22690) this should not be needed

Sat, Dec 7, 1:24 AM
mjg added inline comments to D22694: [wip] vfs: defer vdrop if mnt_listmtx is contended.
Sat, Dec 7, 12:33 AM
mjg added inline comments to D22715: vfs: introduce v_irflag and make v_type smaller.
Sat, Dec 7, 12:05 AM

Yesterday

mjg created D22717: vm: fix sysctl vm.kstack_cache_size change report.
Fri, Dec 6, 11:54 PM
mjg updated the summary of D22715: vfs: introduce v_irflag and make v_type smaller.
Fri, Dec 6, 11:32 PM
mjg abandoned D22664: vfs: eliminate v_iflag read from vn_lock.

This change was supposed to be a stop gap before a more time consuming real solution is implemented. Given the feedback I decided to just go for it, see D22715

Fri, Dec 6, 11:31 PM
mjg created D22715: vfs: introduce v_irflag and make v_type smaller.
Fri, Dec 6, 11:30 PM

Thu, Dec 5

mjg retitled D22694: [wip] vfs: defer vdrop if mnt_listmtx is contended from [wip] vfs: defer vdrop if mp_listmtx is contended to [wip] vfs: defer vdrop if mnt_listmtx is contended.
Thu, Dec 5, 8:35 PM
mjg updated the summary of D22694: [wip] vfs: defer vdrop if mnt_listmtx is contended.
Thu, Dec 5, 8:31 PM
mjg created D22694: [wip] vfs: defer vdrop if mnt_listmtx is contended.
Thu, Dec 5, 8:29 PM
mjg updated the diff for D22664: vfs: eliminate v_iflag read from vn_lock.
  • tighten up the assertion
Thu, Dec 5, 4:54 PM
mjg updated the diff for D22664: vfs: eliminate v_iflag read from vn_lock.

Given the complaint raised in D22689 I suggest the following.

Thu, Dec 5, 4:37 PM
mjg added a comment to D22689: vfs: stop error checking vget(..., LK_RETRY, ...) in vfs_msync.

If you are worried about catching code doing such an unlock, we can add an assertion to unlock that if VI_DOOMED is set, v_op is dead_vnodeops. If want such an unlock to remain legitimate, I can move v_iflag to the beginning of the struct. Right now there is a 4 byte hole in there on amd64 (after v_tag got moved). I did not want to do it because it adds an avoidable constraint on reshuffling of the layout for later.

Thu, Dec 5, 4:00 PM
mjg added inline comments to D22690: vfs: add MNT_VNODE_FOREACH_ACTIVE_FILTER.
Thu, Dec 5, 2:43 PM
mjg created D22690: vfs: add MNT_VNODE_FOREACH_ACTIVE_FILTER.
Thu, Dec 5, 2:41 PM
mjg created D22689: vfs: stop error checking vget(..., LK_RETRY, ...) in vfs_msync.
Thu, Dec 5, 2:37 PM
mjg committed rS355416: sx: check for SX_LOCK_SHARED | SX_LOCK_WRITE_SPINNER when exclusive-locking.
sx: check for SX_LOCK_SHARED | SX_LOCK_WRITE_SPINNER when exclusive-locking
Thu, Dec 5, 1:43 PM
mjg committed rS355415: nullfs: locklessly check for entries in null_hashget.
nullfs: locklessly check for entries in null_hashget
Thu, Dec 5, 1:41 PM
mjg committed rS355414: vfs: remove 'active' variable from _vdrop.
vfs: remove 'active' variable from _vdrop
Thu, Dec 5, 1:40 PM

Wed, Dec 4

mjg updated the summary of D22665: vfs: provide new locking primitives which elide ->v_vnlock and shared locking disablement.
Wed, Dec 4, 6:47 AM
mjg updated the summary of D22664: vfs: eliminate v_iflag read from vn_lock.
Wed, Dec 4, 3:44 AM
mjg updated the summary of D22665: vfs: provide new locking primitives which elide ->v_vnlock and shared locking disablement.
Wed, Dec 4, 3:42 AM
mjg updated the summary of D22665: vfs: provide new locking primitives which elide ->v_vnlock and shared locking disablement.
Wed, Dec 4, 3:42 AM
mjg added a reviewer for D22665: vfs: provide new locking primitives which elide ->v_vnlock and shared locking disablement: jeff.
Wed, Dec 4, 3:26 AM
mjg added a reviewer for D22664: vfs: eliminate v_iflag read from vn_lock: jeff.
Wed, Dec 4, 3:26 AM
mjg abandoned D22550: vfs: stop reading ->v_vnlock in default locking routines.

I decided to go with a different approach. D22665

Wed, Dec 4, 3:19 AM
mjg created D22665: vfs: provide new locking primitives which elide ->v_vnlock and shared locking disablement.
Wed, Dec 4, 3:18 AM
mjg created D22664: vfs: eliminate v_iflag read from vn_lock.
Wed, Dec 4, 2:24 AM

Tue, Dec 3

mjg added a comment to D22616: ufs_need_inactive..

I don't have good basics to comment on the code itself, however the vnode is often already shared locked which I presume stabilizes the result. I suspect the code can be reworked to provide all the necessary guarantees with just the interlock. If not,

Tue, Dec 3, 2:39 PM

Sun, Dec 1

mjg committed rS355256: lockmgr: remove more remnants of adaptive spinning.
lockmgr: remove more remnants of adaptive spinning
Sun, Dec 1, 12:35 AM
mjg committed rS355255: tmpfs: use proper macros for permission values in tmpfs_access.
tmpfs: use proper macros for permission values in tmpfs_access
Sun, Dec 1, 12:34 AM

Sat, Nov 30

mjg committed rS355241: smp: cast the read in quiesce_all_critical through void *.
smp: cast the read in quiesce_all_critical through void *
Sat, Nov 30, 7:33 PM
mjg committed rS355232: ldconfig: fetch hw.machine_arch only once.
ldconfig: fetch hw.machine_arch only once
Sat, Nov 30, 5:30 PM
mjg committed rS355231: lockprof: use IPI-injecetd fences to fix hangs on stat dump and reset.
lockprof: use IPI-injecetd fences to fix hangs on stat dump and reset
Sat, Nov 30, 5:24 PM
mjg closed D21740: lockprof: fix hangs under load when changing the state or dumping stats.
Sat, Nov 30, 5:22 PM
mjg committed rS355230: Add a way to inject fences using IPIs.
Add a way to inject fences using IPIs
Sat, Nov 30, 5:22 PM
mjg committed rS355228: devfs: introduce a per-dev lock to protect ->si_devsw.
devfs: introduce a per-dev lock to protect ->si_devsw
Sat, Nov 30, 4:46 PM
mjg closed D22548: devfs: introduce a per-dev lock to protect ->si_devsw.
Sat, Nov 30, 4:46 PM
mjg committed rS355227: tmpfs: add fast path to tmpfs_access for common case lookup.
tmpfs: add fast path to tmpfs_access for common case lookup
Sat, Nov 30, 4:42 PM
mjg committed rS355226: vfs: swap placement between v_type and v_tag.
vfs: swap placement between v_type and v_tag
Sat, Nov 30, 4:40 PM

Wed, Nov 27

mjg reopened D17174: Put guards around timespec_get() decleration..

Looks like these guards should be __cplusplus instead?

Wed, Nov 27, 4:26 PM
mjg updated the diff for D22548: devfs: introduce a per-dev lock to protect ->si_devsw.
  • drop _lock.h and _mtx.h
Wed, Nov 27, 3:34 PM
mjg updated the diff for D22548: devfs: introduce a per-dev lock to protect ->si_devsw.
  • move the lock to cdev_privdata
Wed, Nov 27, 1:31 AM
mjg committed rS355125: cache: stop reusing .. entries on enter.
cache: stop reusing .. entries on enter
Wed, Nov 27, 1:21 AM
mjg committed rS355124: cache: fix numcache accounting on entry.
cache: fix numcache accounting on entry
Wed, Nov 27, 1:21 AM
mjg committed rS355123: cache: hide "doingcache" behind DEBUG_CACHE.
cache: hide "doingcache" behind DEBUG_CACHE
Wed, Nov 27, 1:20 AM

Mon, Nov 25

mjg added inline comments to D22550: vfs: stop reading ->v_vnlock in default locking routines.
Mon, Nov 25, 11:52 PM
mjg added inline comments to D22550: vfs: stop reading ->v_vnlock in default locking routines.
Mon, Nov 25, 9:18 PM
mjg created D22550: vfs: stop reading ->v_vnlock in default locking routines.
Mon, Nov 25, 6:28 PM
mjg updated the diff for D22548: devfs: introduce a per-dev lock to protect ->si_devsw.
  • bump D_VERSION
  • annotate the lock in witness
Mon, Nov 25, 5:15 PM
mjg created D22548: devfs: introduce a per-dev lock to protect ->si_devsw.
Mon, Nov 25, 4:52 PM

Wed, Nov 20

mjg committed rS354893: cache: minor stat cleanup.
cache: minor stat cleanup
Wed, Nov 20, 12:08 PM
mjg committed rS354892: vfs: perform a more racy check in vfs_notify_upper.
vfs: perform a more racy check in vfs_notify_upper
Wed, Nov 20, 12:08 PM
mjg committed rS354891: linux: avoid overhead of P_CONTROLT checks if possible.
linux: avoid overhead of P_CONTROLT checks if possible
Wed, Nov 20, 12:06 PM
mjg committed rS354890: vfs: change si_usecount management to count used vnodes.
vfs: change si_usecount management to count used vnodes
Wed, Nov 20, 12:06 PM
mjg closed D22202: vfs: change si_usecount management to count used vnodes.
Wed, Nov 20, 12:06 PM

Sun, Nov 17

mjg abandoned D22218: Add exiting threads to zombie list without thread lock..
Sun, Nov 17, 12:13 AM

Sat, Nov 16

mjg added a comment to D22202: vfs: change si_usecount management to count used vnodes.

ping? the change passed tests by pho

Sat, Nov 16, 3:21 AM
mjg added a comment to D22224: zfs: fix spurious lock contention during path lookup.

I noted if /any/ acl denies execution, the newly added function fails. Then the caller is expected to fall back to the current code which will also perform an acl walk.

Sat, Nov 16, 12:06 AM

Nov 5 2019

mjg added a comment to D22224: zfs: fix spurious lock contention during path lookup.

The point was ACLs are always walked if needed which is not hard to verify and it answers the question.

Nov 5 2019, 4:44 AM

Nov 4 2019

mjg added a comment to D22224: zfs: fix spurious lock contention during path lookup.

Setting ACLs performs the following:

Nov 4 2019, 1:41 AM

Nov 3 2019

mjg updated the test plan for D22202: vfs: change si_usecount management to count used vnodes.
Nov 3 2019, 11:58 PM
mjg added a comment to D22224: zfs: fix spurious lock contention during path lookup.

You can see the fast path is gated by ZFS_NO_EXECS_DENIED. Should anything be there to deny an exec to /someone/, fast path fails.

Nov 3 2019, 1:00 AM
mjg updated the summary of D22224: zfs: fix spurious lock contention during path lookup.
Nov 3 2019, 12:58 AM
mjg updated the summary of D22224: zfs: fix spurious lock contention during path lookup.
Nov 3 2019, 12:57 AM
mjg updated the summary of D22224: zfs: fix spurious lock contention during path lookup.
Nov 3 2019, 12:55 AM
mjg updated the summary of D22224: zfs: fix spurious lock contention during path lookup.
Nov 3 2019, 12:54 AM
mjg created D22224: zfs: fix spurious lock contention during path lookup.
Nov 3 2019, 12:54 AM

Nov 2 2019

mjg updated the summary of D22218: Add exiting threads to zombie list without thread lock..
Nov 2 2019, 2:06 AM
mjg updated the summary of D22218: Add exiting threads to zombie list without thread lock..
Nov 2 2019, 2:05 AM
mjg updated the summary of D22218: Add exiting threads to zombie list without thread lock..
Nov 2 2019, 1:54 AM
mjg updated the summary of D22218: Add exiting threads to zombie list without thread lock..
Nov 2 2019, 1:53 AM
mjg created D22218: Add exiting threads to zombie list without thread lock..
Nov 2 2019, 1:51 AM

Nov 1 2019

mjg added inline comments to D22202: vfs: change si_usecount management to count used vnodes.
Nov 1 2019, 8:46 AM

Oct 31 2019

mjg abandoned D21525: [wip] vfs: decentralize device usecount.

See D22202

Oct 31 2019, 12:49 AM
mjg created D22202: vfs: change si_usecount management to count used vnodes.
Oct 31 2019, 12:27 AM

Oct 23 2019

mjg committed rS353960: amd64 pmap: per-domain pv chunk list.
amd64 pmap: per-domain pv chunk list
Oct 23 2019, 7:17 PM
mjg closed D21976: amd64 pmap: per-domain pv chunk list.
Oct 23 2019, 7:17 PM
mjg created D22130: zfs: use VOP_NEED_INACTIVE.
Oct 23 2019, 5:59 PM

Oct 22 2019

mjg updated the diff for D21976: amd64 pmap: per-domain pv chunk list.
  • rebase
Oct 22 2019, 11:07 PM
mjg committed rS353906: amd64 pmap: conditionalize per-superpage locks on NUMA.
amd64 pmap: conditionalize per-superpage locks on NUMA
Oct 22 2019, 10:56 PM
mjg closed D21982: amd64 pmap: conditionalize per-superpage locks on NUMA.
Oct 22 2019, 10:56 PM
mjg committed rS353905: amd64 pmap: fixup invlgen lookup for fictitious mappings.
amd64 pmap: fixup invlgen lookup for fictitious mappings
Oct 22 2019, 10:54 PM
mjg committed rS353904: pseudofs: hashed vncache.
pseudofs: hashed vncache
Oct 22 2019, 10:53 PM

Oct 17 2019

mjg retitled D22070: amd64 pmap: reduce chances that chunk mutex will be taken while pv list lock is held from amd64 pmap: reduce chances that chunk mutex will be taken while pv list is held to amd64 pmap: reduce chances that chunk mutex will be taken while pv list lock is held.
Oct 17 2019, 9:46 PM
mjg created D22070: amd64 pmap: reduce chances that chunk mutex will be taken while pv list lock is held.
Oct 17 2019, 9:45 PM

Oct 13 2019

mjg committed rS353474: tmpfs: use MNTK_NOMSYNC.
tmpfs: use MNTK_NOMSYNC
Oct 13 2019, 3:42 PM
mjg committed rS353473: pseudofs: use MNTK_NOMSYNC.
pseudofs: use MNTK_NOMSYNC
Oct 13 2019, 3:42 PM
mjg committed rS353472: nullfs: use MNTK_NOMSYNC.
nullfs: use MNTK_NOMSYNC
Oct 13 2019, 3:42 PM
mjg committed rS353471: devfs: use MNTK_NOMSYNC.
devfs: use MNTK_NOMSYNC
Oct 13 2019, 3:41 PM
mjg committed rS353470: zfs: use MNTK_NOMSYNC.
zfs: use MNTK_NOMSYNC
Oct 13 2019, 3:41 PM
mjg committed rS353469: vfs: add MNTK_NOMSYNC.
vfs: add MNTK_NOMSYNC
Oct 13 2019, 3:41 PM
mjg closed D22009: vfs: add MNTK_NOMSYNC.
Oct 13 2019, 3:41 PM
mjg closed D22008: vfs: return free vnode batches in sync instead of vfs_msync.
Oct 13 2019, 3:39 PM
mjg committed rS353468: vfs: return free vnode batches in sync instead of vfs_msync.
vfs: return free vnode batches in sync instead of vfs_msync
Oct 13 2019, 3:39 PM
mjg created D22009: vfs: add MNTK_NOMSYNC.
Oct 13 2019, 3:14 PM