Page MenuHomeFreeBSD

mjg (Mateusz Guzik)
nice guy

Projects

User Details

User Since
Jun 4 2014, 10:38 AM (351 w, 6 d)

Recent Activity

Mon, Mar 1

mjg committed R10:2c1c1255e41a: kcsan: add atomic_interrupt_fence (authored by mjg).
kcsan: add atomic_interrupt_fence
Mon, Mar 1, 7:45 AM

Sat, Feb 27

mjg committed R10:1d8510c1a64d: zfs: add missing seqc write begin/end around zfs_acl_chown_setattr (authored by mjg).
zfs: add missing seqc write begin/end around zfs_acl_chown_setattr
Sat, Feb 27, 10:31 PM
mjg committed R10:1239a722214c: cache: temporarily drop the assert that dvp != vp when adding an entry (authored by mjg).
cache: temporarily drop the assert that dvp != vp when adding an entry
Sat, Feb 27, 10:31 PM
mjg accepted D28969: fix panic "dvp != vp not true" in cache_enter_time().
Sat, Feb 27, 10:30 PM

Thu, Feb 25

mjg added inline comments to D28923: amd64 pmap: convert to counter(9), add PV and pagetable page counts.
Thu, Feb 25, 10:24 PM

Wed, Feb 24

mjg accepted D28909: atomic: add atomic_interrupt_fence().
Wed, Feb 24, 10:56 AM

Tue, Feb 23

mjg committed R10:7f06b217c53c: amd64: import asm strlen into libc (authored by mjg).
amd64: import asm strlen into libc
Tue, Feb 23, 12:11 AM
mjg closed D28845: amd64: import asm strlen into libc.
Tue, Feb 23, 12:11 AM

Mon, Feb 22

mjg added a comment to D28845: amd64: import asm strlen into libc.

Adding the header fails to compile with:

Mon, Feb 22, 10:29 PM
mjg updated the diff for D28845: amd64: import asm strlen into libc.
  • update license
Mon, Feb 22, 10:27 PM
mjg added a comment to D28856: Move struct bufobj out of struct vnode.

As noted earlier the mechanism is highly deficient. In fact now that I think of it it's even worse than described because of the way SMR is implemented, where freeing can only happen in full batches.

Mon, Feb 22, 7:01 PM
mjg added a comment to D28856: Move struct bufobj out of struct vnode.

On a general note, the entire mechanism is already highly deficient. For example the code can bump into global limits even if there are free vnodes in local per-CPU caches. This needs a complete revamp which either lifts it out of UMA or integrates this into UMA completely.

Mon, Feb 22, 6:28 PM
mjg added a comment to D28856: Move struct bufobj out of struct vnode.

I think this runs into trouble with the way the way vnlru is implemented. It may maintain some used/free vnode targets, but resulting freed memory may not be reusable by other filesystems. For example consider a box with ufs + nullfs, which now cannot reuse vnodes after each other. I think the way the long term solution is to fundamentally rework this model and put a small 'struct vnode' as part of fs-specific object, which would also mean reworking forced unmount.

Mon, Feb 22, 4:54 PM

Sun, Feb 21

mjg requested review of D28846: amd64: make bcmp in libc just call memcmp.
Sun, Feb 21, 9:49 PM
mjg updated the summary of D28846: amd64: make bcmp in libc just call memcmp.
Sun, Feb 21, 9:49 PM
mjg requested review of D28845: amd64: import asm strlen into libc.
Sun, Feb 21, 9:29 PM
mjg committed R10:2443068d4860: vfs: shrink struct vnode to 448 bytes on LP64 (authored by mjg).
vfs: shrink struct vnode to 448 bytes on LP64
Sun, Feb 21, 9:11 PM
mjg committed R10:ee9b37ae5c11: jail: fix build after the previous commit (authored by mjg).
jail: fix build after the previous commit
Sun, Feb 21, 9:11 PM
mjg committed R10:a15f787adb44: vfs: add vfs_ref_from_vp (authored by mjg).
vfs: add vfs_ref_from_vp
Sun, Feb 21, 12:44 AM
mjg committed R10:81174cd8e24a: vfs: employ vfs_ref_from_vp in statfs and fstatfs (authored by mjg).
vfs: employ vfs_ref_from_vp in statfs and fstatfs
Sun, Feb 21, 12:44 AM
mjg committed R10:5fa12fe0cd20: amd64: implement strlen in assembly, take 2 (authored by mjg).
amd64: implement strlen in assembly, take 2
Sun, Feb 21, 12:44 AM
mjg closed D28779: amd64: implement strlen in assembly, take 2.
Sun, Feb 21, 12:43 AM
mjg closed D28695: vfs: add vfs_ref_from_vp and use it in statfs.
Sun, Feb 21, 12:43 AM

Sat, Feb 20

mjg abandoned D28522: make: Reduce unnecessary calls to waitpid.

bmake update got merged to stable/13 but not to releng/13.0, meaning as it is it wont make it. While this revision is no longer an option, the merge at hand is and to my understanding you got re approval.

Sat, Feb 20, 11:02 PM
mjg added a comment to D28821: rmlock: Add a missing compiler membar to the rlock slow path.

While the patch at hand may indeed be good enough for a quick fixup, trying to review the entire ordeal suggests the mechanism is very error prone (at least to my taste). For example rm_tracker_remove may still be executing against IPIs and it contains multiple unordered stores.

Sat, Feb 20, 8:59 PM

Thu, Feb 18

mjg updated the diff for D28779: amd64: implement strlen in assembly, take 2.
  • tweak comment
Thu, Feb 18, 9:20 PM
mjg updated the summary of D28779: amd64: implement strlen in assembly, take 2.
Thu, Feb 18, 7:50 PM
mjg updated the summary of D28779: amd64: implement strlen in assembly, take 2.
Thu, Feb 18, 7:50 PM
mjg requested review of D28779: amd64: implement strlen in assembly, take 2.
Thu, Feb 18, 7:45 PM

Wed, Feb 17

mjg added a comment to D28693: prepare-commit-msg: add "Fixes:" .

That's what they used to do in Linux, I don't know about other projects.

Wed, Feb 17, 4:42 PM

Tue, Feb 16

mjg added inline comments to D28675: cache: add an introductory comment.
Tue, Feb 16, 6:22 AM
mjg updated the diff for D28675: cache: add an introductory comment.
Tue, Feb 16, 6:08 AM
mjg updated the diff for D28675: cache: add an introductory comment.
  • address some of the feedback
Tue, Feb 16, 6:05 AM

Mon, Feb 15

mjg updated the diff for D28695: vfs: add vfs_ref_from_vp and use it in statfs.
  • also convert fstatfs
Mon, Feb 15, 11:32 PM
mjg updated the summary of D28695: vfs: add vfs_ref_from_vp and use it in statfs.
Mon, Feb 15, 10:25 PM
mjg requested review of D28695: vfs: add vfs_ref_from_vp and use it in statfs.
Mon, Feb 15, 10:24 PM
mjg accepted D28691: Fix fget_only_user() to return ENOTCAPABLE on a failed capsicum check.
Mon, Feb 15, 8:44 PM
mjg added a comment to D28677: Merge OpenZFS 436ab35a5.

The intent is to have next to no local patches, but upstreaming got stalled at some point with CI failures and I did not pick it up later. It is a little iffy right now but should be sorted out soon(tm).

Mon, Feb 15, 5:58 PM
mjg closed D28680: lockmgr: shrink struct lock by 8 bytes on LP64.
Mon, Feb 15, 1:59 PM
mjg committed R10:eac22dd48079: lockmgr: shrink struct lock by 8 bytes on LP64 (authored by mjg).
lockmgr: shrink struct lock by 8 bytes on LP64
Mon, Feb 15, 1:59 PM
mjg added a comment to D28679: vnode: move write cluster support data to inodes..

this does not buildworld, for example:

Mon, Feb 15, 12:38 PM
mjg added inline comments to D28680: lockmgr: shrink struct lock by 8 bytes on LP64.
Mon, Feb 15, 11:42 AM
mjg added a comment to D28677: Merge OpenZFS 436ab35a5.

Is the test suite happy with zfs as is? I know it used to pass few months back, but to my understanding some of the assertions were not being compiled in.

Mon, Feb 15, 10:55 AM
mjg updated the diff for D28680: lockmgr: shrink struct lock by 8 bytes on LP64.
  • add missing saturation checks
Mon, Feb 15, 10:53 AM
mjg added inline comments to D28675: cache: add an introductory comment.
Mon, Feb 15, 4:48 AM
mjg updated the diff for D28680: lockmgr: shrink struct lock by 8 bytes on LP64.
Mon, Feb 15, 4:44 AM
mjg requested review of D28680: lockmgr: shrink struct lock by 8 bytes on LP64.
Mon, Feb 15, 4:43 AM
mjg added inline comments to D28675: cache: add an introductory comment.
Mon, Feb 15, 3:55 AM
mjg added a comment to D28677: Merge OpenZFS 436ab35a5.

Huh. Looks like upstream added the following everywhere:

Mon, Feb 15, 3:47 AM
mjg added inline comments to D28675: cache: add an introductory comment.
Mon, Feb 15, 3:26 AM
mjg added inline comments to D28675: cache: add an introductory comment.
Mon, Feb 15, 3:25 AM
mjg updated the diff for D28675: cache: add an introductory comment.
Mon, Feb 15, 1:42 AM
mjg requested review of D28675: cache: add an introductory comment.
Mon, Feb 15, 1:37 AM

Fri, Feb 12

mjg added a comment to D28592: Add basic stats for vm_fault() busy-page waits.

The claim was that vm object domaintes off cpu time and limits concurrent traffic leading to vmpfw.

Fri, Feb 12, 2:31 AM

Thu, Feb 11

mjg added a comment to D28592: Add basic stats for vm_fault() busy-page waits.
In D28592#640134, @jah wrote:
In D28592#640118, @mjg wrote:

I have no comments about usefulness of adding these counters. I have to note the patch negatively affects scalability as it adds loads from the page form something which gets modified by other threads. If adding these stats, it would have to happen inside of vm_page_busy_sleep.

I kind of wanted to avoid stuffing these into the guts of vm_page_busy_sleep(), since I suspect we wouldn't care about them at all in the non-vm_fault() case, and in fact they could be misleading. Would another option be to conditionally compile the counters only for INVARIANTS (or DIAGNOSTIC)?

Or it might be better to keep this patch around without submitting it anyway. Results from buildworld:

vm.stats.fault.vmpfw_exclusive: 2048
vm.stats.fault.vmpfw_shared_cow: 2
vm.stats.fault.vmpfw_shared_read: 0

This is a small machine (2-vcpu guest), without Jeff's concurrency improvements. But not encouraging so far.

Thu, Feb 11, 7:16 PM
mjg added a comment to D28592: Add basic stats for vm_fault() busy-page waits.

I have no comments about usefulness of adding these counters. I have to note the patch negatively affects scalability as it adds loads from the page form something which gets modified by other threads. If adding these stats, it would have to happen inside of vm_page_busy_sleep.

Thu, Feb 11, 6:18 PM
mjg added a comment to D28522: make: Reduce unnecessary calls to waitpid.

But will your import make it into the 13.0 release? If so, I'm more than happy to drop this. Otherwise I think this should go in and the time window is closing.

Thu, Feb 11, 1:23 AM
mjg added a comment to D28522: make: Reduce unnecessary calls to waitpid.

ping?

Thu, Feb 11, 1:09 AM

Wed, Feb 10

mjg accepted D28569: Use atomic loads/stores when updating td->td_state.

Assuming this runs and builds with tinderbox LGTM modulo the union comment.

Wed, Feb 10, 11:50 AM
mjg added a comment to D28569: Use atomic loads/stores when updating td->td_state.

There are several other places which play with ->td_state, if rolling with atomic_* they all should be patched. Preferably there would be an atomic_int_t type or similar so that unpatched cases would fail to compile.

Wed, Feb 10, 11:25 AM

Tue, Feb 9

mjg committed R10:39e0c3f68638: cache: assorted comment fixups (authored by mjg).
cache: assorted comment fixups
Tue, Feb 9, 4:13 PM
mjg added a reverting change for R10:af366d353b84: amd64: implement strlen in assembly: R10:b49a0db6628e: Revert "amd64: implement strlen in assembly".
Tue, Feb 9, 3:29 PM
mjg committed R10:b49a0db6628e: Revert "amd64: implement strlen in assembly" (authored by mjg).
Revert "amd64: implement strlen in assembly"
Tue, Feb 9, 3:29 PM
mjg committed R10:3bc17248d317: devfs: fix use count leak when using TIOCSCTTY (authored by mjg).
devfs: fix use count leak when using TIOCSCTTY
Tue, Feb 9, 1:56 AM

Mon, Feb 8

mjg committed R10:7da3bfc20ca8: amd64: fix up a braino in strlen comment (authored by mjg).
amd64: fix up a braino in strlen comment
Mon, Feb 8, 7:26 PM
mjg committed R10:af366d353b84: amd64: implement strlen in assembly (authored by mjg).
amd64: implement strlen in assembly
Mon, Feb 8, 7:16 PM
mjg committed R10:3acea07c1873: Restore the augmented strlen commentary (authored by mjg).
Restore the augmented strlen commentary
Mon, Feb 8, 7:16 PM
mjg committed R10:81e074d57dfc: libkern: use compiler builtins for strcpy, strcmp and strlen (authored by mjg).
libkern: use compiler builtins for strcpy, strcmp and strlen
Mon, Feb 8, 7:16 PM

Sun, Feb 7

mjg updated the summary of D28522: make: Reduce unnecessary calls to waitpid.
Sun, Feb 7, 4:09 PM
mjg requested review of D28522: make: Reduce unnecessary calls to waitpid.
Sun, Feb 7, 4:08 PM

Fri, Feb 5

mjg committed R10:2f8a84463531: cache: remove the largely obsolete general description (authored by mjg).
cache: remove the largely obsolete general description
Fri, Feb 5, 11:41 PM
mjg committed R10:0e1594e60e5e: cache: fix vfs:namecache:lookup:miss probe call sites (authored by mjg).
cache: fix vfs:namecache:lookup:miss probe call sites
Fri, Feb 5, 11:41 PM
mjg committed R10:2e96132a7d8b: cache: drop spurious arg from panic in cache_validate (authored by mjg).
cache: drop spurious arg from panic in cache_validate
Fri, Feb 5, 11:41 PM
mjg committed R10:b54ed778fe45: cache: comment on FNV (authored by mjg).
cache: comment on FNV
Fri, Feb 5, 11:41 PM

Thu, Feb 4

mjg committed R10:1a2bc12c4b25: x86: use compiler intrinsics for bswap* (authored by mjg).
x86: use compiler intrinsics for bswap*
Thu, Feb 4, 6:03 PM
mjg committed R10:6d3ce617f398: amd64: use compiler intrinsics for bsf* and bsr* (authored by mjg).
amd64: use compiler intrinsics for bsf* and bsr*
Thu, Feb 4, 6:03 PM
mjg committed R10:2edd6140e9a1: cache: add delayed degenerate path handling (authored by mjg).
cache: add delayed degenerate path handling
Thu, Feb 4, 6:02 PM
mjg committed R10:55764c48f5f8: cache: move hash computation into the parsing loop (authored by mjg).
cache: move hash computation into the parsing loop
Thu, Feb 4, 6:02 PM
mjg committed R10:88a580ebeea1: amd64: move memcmp checks upfront (authored by mjg).
amd64: move memcmp checks upfront
Thu, Feb 4, 6:02 PM
mjg committed R10:068f2402d28b: amd64: add a note about simd to libc memset, memmove and memcmp (authored by mjg).
amd64: add a note about simd to libc memset, memmove and memcmp
Thu, Feb 4, 6:02 PM

Wed, Feb 3

mjg added a reverting change for R10:710e45c4b853: Reimplement strlen: R10:8a680912a190: Revert "Reimplement strlen".
Wed, Feb 3, 7:40 PM
mjg committed R10:8a680912a190: Revert "Reimplement strlen" (authored by mjg).
Revert "Reimplement strlen"
Wed, Feb 3, 7:40 PM
mjg added a reverting change for R10:710e45c4b853: Reimplement strlen: R10:33f0540b13d9: Revert "Reimplement strlen".
Wed, Feb 3, 7:39 PM
mjg committed R10:33f0540b13d9: Revert "Reimplement strlen" (authored by mjg).
Revert "Reimplement strlen"
Wed, Feb 3, 7:39 PM

Tue, Feb 2

mjg committed R10:4e29933d0936: cache: fix trailing slash support in face of permission problems (authored by mjg).
cache: fix trailing slash support in face of permission problems
Tue, Feb 2, 6:16 PM
mjg committed R10:45456abc4ce7: cache: fix trailing slash support in face of permission problems (authored by mjg).
cache: fix trailing slash support in face of permission problems
Tue, Feb 2, 6:15 PM

Mon, Feb 1

mjg committed R10:71b460513827: Drop temporary compat in setproctitle (authored by mjg).
Drop temporary compat in setproctitle
Mon, Feb 1, 12:46 PM
mjg committed R10:006ec2ed1565: cache: add trailing slash support (authored by mjg).
cache: add trailing slash support
Mon, Feb 1, 12:46 PM
mjg committed R10:6a3047840dfb: cache: handle NOFOLLOW requests for symlinks (authored by mjg).
cache: handle NOFOLLOW requests for symlinks
Mon, Feb 1, 12:46 PM
mjg committed R10:be03df57d62f: amd64: retire sse2_pagezero (authored by mjg).
amd64: retire sse2_pagezero
Mon, Feb 1, 12:46 PM
mjg committed R10:e5b674594e64: Reimplement strlen (authored by mjg).
Reimplement strlen
Mon, Feb 1, 12:46 PM
mjg committed R10:3975d4c9e1be: amd64: add missing ALIGN_TEXT to loops in memset and memmove (authored by mjg).
amd64: add missing ALIGN_TEXT to loops in memset and memmove
Mon, Feb 1, 12:46 PM
mjg committed R10:2bf72739da6f: poll: use fget_unlocked or fget_only_user when feasible (authored by mjg).
poll: use fget_unlocked or fget_only_user when feasible
Mon, Feb 1, 12:45 PM
mjg committed R10:233225ef7d56: select: employ fget_only_user (authored by mjg).
select: employ fget_only_user
Mon, Feb 1, 12:45 PM
mjg committed R10:1077e49657fa: fd: add fget_only_user (authored by mjg).
fd: add fget_only_user
Mon, Feb 1, 12:45 PM
mjg committed R10:e13587448ab1: cache: fallback when encountering a mount point during .. lookup (authored by mjg).
cache: fallback when encountering a mount point during .. lookup
Mon, Feb 1, 12:45 PM
mjg committed R10:569ac576088b: cache: add missing MNT_NOSYMFOLLOW check to symlink traversal (authored by mjg).
cache: add missing MNT_NOSYMFOLLOW check to symlink traversal
Mon, Feb 1, 12:45 PM
mjg committed R10:dcba4f2b4380: conf/kern.mk: save some work by using realpath instead of cd ; pwd (authored by mjg).
conf/kern.mk: save some work by using realpath instead of cd ; pwd
Mon, Feb 1, 12:45 PM
mjg committed R10:742285d28301: cache: tidy up handling of foo/bar lookups where foo is not a directory (authored by mjg).
cache: tidy up handling of foo/bar lookups where foo is not a directory
Mon, Feb 1, 12:45 PM
mjg committed R10:82efef21d051: cache: stop referring to removing entries as invalidating them (authored by mjg).
cache: stop referring to removing entries as invalidating them
Mon, Feb 1, 12:45 PM