mjg (Mateusz Guzik)
nice guy

Projects

User Details

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

Recent Activity

Thu, Nov 23

mjg committed rS326112: sx: unbreak debug after r326107.
sx: unbreak debug after r326107
Thu, Nov 23, 3:40 AM
mjg committed rS326111: rwlock: unbreak WITNESS builds after r326110.
rwlock: unbreak WITNESS builds after r326110
Thu, Nov 23, 3:20 AM

Wed, Nov 22

mjg committed rS326110: rwlock: don't check for curthread's read lock count in the fast path.
rwlock: don't check for curthread's read lock count in the fast path
Wed, Nov 22, 11:52 PM
mjg committed rS326107: locks: pass the found lock value to unlock slow path.
locks: pass the found lock value to unlock slow path
Wed, Nov 22, 10:04 PM
mjg committed rS326106: locks: remove the file + line argument from internal primitives when not used.
locks: remove the file + line argument from internal primitives when not used
Wed, Nov 22, 9:51 PM

Tue, Nov 21

mjg added a comment to D13179: Add "Pull Request" to the devel/subversion commit template.

while here can you add 'tested by' and 'discussed with'?

Tue, Nov 21, 3:41 AM

Fri, Nov 17

mjg committed rS325963: locks: fix compilation issues without SMP or KDTRACE_HOOKS.
locks: fix compilation issues without SMP or KDTRACE_HOOKS
Fri, Nov 17, 11:27 PM
mjg committed rS325958: lockmgr: remove the ADAPTIVE_LOCKMGRS option.
lockmgr: remove the ADAPTIVE_LOCKMGRS option
Fri, Nov 17, 8:41 PM
mjg added a comment to D12132: Avoid spinning in random_harvest_queue.

Does this patch really make sense to go in?

Fri, Nov 17, 6:09 PM
mjg committed rS325925: mtx: add missing parts of the diff in r325920.
mtx: add missing parts of the diff in r325920
Fri, Nov 17, 2:59 AM
mjg committed rS325924: sched: move panic handling code out of choosethread.
sched: move panic handling code out of choosethread
Fri, Nov 17, 2:46 AM
mjg committed rS325923: Check for PRS_NEW without locking the proc in sysctl_kern_proc.
Check for PRS_NEW without locking the proc in sysctl_kern_proc
Fri, Nov 17, 2:29 AM
mjg committed rS325922: sx: perform a minor cleanup of the unlock slowpath.
sx: perform a minor cleanup of the unlock slowpath
Fri, Nov 17, 2:27 AM
mjg committed rS325921: rwlock: unlock before traversing threads to wake up.
rwlock: unlock before traversing threads to wake up
Fri, Nov 17, 2:26 AM
mjg committed rS325920: mtx: unlock before traversing threads to wake up.
mtx: unlock before traversing threads to wake up
Fri, Nov 17, 2:25 AM
mjg committed rS325919: locks: pull up PMC_SOFT_CALLs out of slow path loops.
locks: pull up PMC_SOFT_CALLs out of slow path loops
Fri, Nov 17, 2:23 AM
mjg committed rS325918: rwlock: avoid branches in the slow path if lockstat is disabled.
rwlock: avoid branches in the slow path if lockstat is disabled
Fri, Nov 17, 2:21 AM
mjg committed rS325917: sx: avoid branches if in the slow path if lockstat is disabled.
sx: avoid branches if in the slow path if lockstat is disabled
Fri, Nov 17, 2:21 AM

Sun, Nov 12

mjg committed rS325734: amd64: stop nesting preemption counter in spinlock_enter.
amd64: stop nesting preemption counter in spinlock_enter
Sun, Nov 12, 3:13 AM
mjg committed rS325733: Use passed thread pointer instead of curthread in sys_sched_yield.
Use passed thread pointer instead of curthread in sys_sched_yield
Sun, Nov 12, 2:34 AM

Sat, Nov 11

mjg committed rS325726: Avoid locking and refing in sysctl_kern_proc_args if possible..
Avoid locking and refing in sysctl_kern_proc_args if possible.
Sat, Nov 11, 10:39 PM
mjg committed rS325725: sysctl: try to avoid malloc in name2oid.
sysctl: try to avoid malloc in name2oid
Sat, Nov 11, 9:50 PM
mjg committed rS325722: Use pfind_any in linux_rt_sigqueueinfo and kern_sigqueue.
Use pfind_any in linux_rt_sigqueueinfo and kern_sigqueue
Sat, Nov 11, 6:10 PM
mjg committed rS325721: Add pfind_any.
Add pfind_any
Sat, Nov 11, 6:05 PM
mjg committed rS325720: Avoid allproc lock in pfind if curproc->pid == pid.
Avoid allproc lock in pfind if curproc->pid == pid
Sat, Nov 11, 6:03 PM
mjg committed rS325719: Remove useless proc lookup from sysctl_out_proc.
Remove useless proc lookup from sysctl_out_proc
Sat, Nov 11, 6:02 PM
mjg committed rS325706: rwlock: use fcmpset for setting RW_LOCK_WRITE_SPINNER.
rwlock: use fcmpset for setting RW_LOCK_WRITE_SPINNER
Sat, Nov 11, 9:34 AM

Tue, Nov 7

mjg accepted D12972: sysctl_kern_proc_umask: fast path when operating on curproc.
Tue, Nov 7, 3:51 PM
mjg requested changes to D12972: sysctl_kern_proc_umask: fast path when operating on curproc.

For consistency this should also remove SLOCK/SUNLOCK in the lookup case, otherwise LGTM.

Tue, Nov 7, 3:51 PM

Mon, Nov 6

mjg committed rS325469: rwlock: fix up compilation without KDTRACE_HOOKS after r324787.
rwlock: fix up compilation without KDTRACE_HOOKS after r324787
Mon, Nov 6, 5:14 AM

Sun, Nov 5

mjg committed rS325458: namecache: bump numcache after dropping all locks.
namecache: bump numcache after dropping all locks
Sun, Nov 5, 10:30 PM
mjg committed rS325456: namecache: wlock buckets in cache_lookup_nomakeentry.
namecache: wlock buckets in cache_lookup_nomakeentry
Sun, Nov 5, 10:29 PM
mjg committed rS325451: namecache: skip locking in cache_lookup_nomakeentry if there is no entry.
namecache: skip locking in cache_lookup_nomakeentry if there is no entry
Sun, Nov 5, 10:00 PM
mjg committed rS325433: namecache: skip locking in cache_purge_negative if there are no entries.
namecache: skip locking in cache_purge_negative if there are no entries
Sun, Nov 5, 8:31 AM

Fri, Nov 3

mjg accepted D12814: Introduce EVENTHANDLER_LIST_* and some users..
Fri, Nov 3, 7:44 PM
mjg committed rS325368: Special-case pget lookups where pid == curproc->pid.
Special-case pget lookups where pid == curproc->pid
Fri, Nov 3, 7:22 PM
mjg closed D12929: pget: don't acquire allproc_lock when operating on curproc.
Fri, Nov 3, 7:22 PM
mjg accepted D12929: pget: don't acquire allproc_lock when operating on curproc.
Fri, Nov 3, 4:08 PM
mjg added a comment to D12929: pget: don't acquire allproc_lock when operating on curproc.

As the name suggests CPUCLOCK_WHICH_PID only wants to match pids. Thus the _NOTID flag is passed to avoid the corner case.

Fri, Nov 3, 3:09 PM
mjg added a comment to D12929: pget: don't acquire allproc_lock when operating on curproc.

I would say scratch optimising for the _NOTID case. There is only one in-tree user of the flag and it is not expected to receive any tids.

Fri, Nov 3, 2:16 PM
mjg accepted D12929: pget: don't acquire allproc_lock when operating on curproc.

I think checking if pfind may need a similar treatment would be nice.

Fri, Nov 3, 1:56 PM

Wed, Nov 1

mjg committed rS325268: namecache: fix .. check broken after r324378.
namecache: fix .. check broken after r324378
Wed, Nov 1, 8:40 AM
mjg created D12889: Remove entropy harvesting from tmpfs atime.
Wed, Nov 1, 8:20 AM
mjg created D12888: Remove object_collapses and object_bypasses counters.
Wed, Nov 1, 8:15 AM
mjg committed rS325267: Fixup r325264, take #2.
Fixup r325264, take #2
Wed, Nov 1, 6:47 AM
mjg committed rS325266: namecache: ncnegfactor 16 -> 12.
namecache: ncnegfactor 16 -> 12
Wed, Nov 1, 6:45 AM
mjg committed rS325265: Fixup r325264.
Fixup r325264
Wed, Nov 1, 6:39 AM
mjg committed rS325264: Save on loginclass list locking by checking if caller already uses the struct.
Save on loginclass list locking by checking if caller already uses the struct
Wed, Nov 1, 6:12 AM
mjg committed rS325263: Save on uihash table locking by checking if the caller already uses the struct.
Save on uihash table locking by checking if the caller already uses the struct
Wed, Nov 1, 5:51 AM

Sat, Oct 28

mjg accepted D12814: Introduce EVENTHANDLER_LIST_* and some users..
Sat, Oct 28, 6:10 AM

Oct 23 2017

mjg committed rS324890: Bump WITNESS_PENDLIST to accomodate sleepq chain bump..
Bump WITNESS_PENDLIST to accomodate sleepq chain bump.
Oct 23 2017, 1:00 AM

Oct 22 2017

mjg committed rS324870: Make the sleepq chain hash size configurable per-arch and bump on amd64..
Make the sleepq chain hash size configurable per-arch and bump on amd64.
Oct 22 2017, 8:44 PM
mjg committed rS324869: sdt: make all sdt probe sites test one variable.
sdt: make all sdt probe sites test one variable
Oct 22 2017, 8:22 PM
mjg committed rS324867: sdt: whack unused SDT_PROBE_ENABLED.
sdt: whack unused SDT_PROBE_ENABLED
Oct 22 2017, 8:15 PM
mjg committed rS324863: Change kdb_active type to u_char..
Change kdb_active type to u_char.
Oct 22 2017, 1:43 PM

Oct 21 2017

mjg committed rS324836: mtx: implement thread lock fastpath.
mtx: implement thread lock fastpath
Oct 21 2017, 10:40 PM

Oct 20 2017

mjg committed rS324808: amd64: plug missed dt_lock in cpu_fork.
amd64: plug missed dt_lock in cpu_fork
Oct 20 2017, 6:58 PM
mjg added a comment to D12741: Don't call realpath(3) from libmap rtld code..

I think the first iteration of the patch should avoid realpath if there is nothing in the target directory.

Oct 20 2017, 2:09 PM
mjg committed rS324803: mtx: fix up UP build after r324778.
mtx: fix up UP build after r324778
Oct 20 2017, 2:04 PM
mjg committed rS324789: Mark kdb_active as __read_frequently and switch to bool to eat less space..
Mark kdb_active as __read_frequently and switch to bool to eat less space.
Oct 20 2017, 4:03 AM
mjg committed rS324788: amd64: __exclusive_cache_line pv_chunks_mutex and pv_list_locks.
amd64: __exclusive_cache_line pv_chunks_mutex and pv_list_locks
Oct 20 2017, 3:39 AM
mjg committed rS324787: rwlock: reduce lockstat branches in the slowpath.
rwlock: reduce lockstat branches in the slowpath
Oct 20 2017, 3:33 AM
mjg committed rS324785: amd64: avoid acquiring dt lock if possible (which is the common case).
amd64: avoid acquiring dt lock if possible (which is the common case)
Oct 20 2017, 3:30 AM
mjg committed rS324780: mtx: stop testing SCHEDULER_STOPPED in kabi funcs for spin mutexes.
mtx: stop testing SCHEDULER_STOPPED in kabi funcs for spin mutexes
Oct 20 2017, 12:34 AM
mjg committed rS324778: mtx: clean up locking spin mutexes.
mtx: clean up locking spin mutexes
Oct 20 2017, 12:30 AM

Oct 19 2017

mjg committed rS324736: sysctl: only take mem lock if oldlen is > 4 * PAGE_SIZE.
sysctl: only take mem lock if oldlen is > 4 * PAGE_SIZE
Oct 19 2017, 1:38 AM
mjg committed rS324735: execve: avoid one proc lock/unlock trip unless PTRACE_EXEC is set.
execve: avoid one proc lock/unlock trip unless PTRACE_EXEC is set
Oct 19 2017, 12:46 AM
mjg committed rS324734: Tidy up pmc support at execve..
Tidy up pmc support at execve.
Oct 19 2017, 12:38 AM
mjg committed rS324733: sysvsem: check if semu_list has anything on it before grabbing the lock.
sysvsem: check if semu_list has anything on it before grabbing the lock
Oct 19 2017, 12:31 AM

Oct 18 2017

mjg committed rS324731: Don't take Giant for SMP status and cpu topology sysctls..
Don't take Giant for SMP status and cpu topology sysctls.
Oct 18 2017, 10:00 PM

Oct 14 2017

mjg committed rS324614: Fix wrong v_free_count annotation - (f) instead of (a).
Fix wrong v_free_count annotation - (f) instead of (a)
Oct 14 2017, 4:28 AM
mjg committed rS324613: mtx: fix up owner_mtx after r324609.
mtx: fix up owner_mtx after r324609
Oct 14 2017, 12:47 AM

Oct 13 2017

mjg committed rS324610: Reduce traffic on vm_cnt.v_free_count.
Reduce traffic on vm_cnt.v_free_count
Oct 13 2017, 9:54 PM
mjg closed D12665: Reduce traffic on vm_cnt.v_free_count.
Oct 13 2017, 9:54 PM
mjg committed rS324609: mtx: change MTX_UNOWNED from 4 to 0.
mtx: change MTX_UNOWNED from 4 to 0
Oct 13 2017, 8:32 PM
mjg abandoned D1007: Move typically true check for static syscall out of syscall_thread_enter/exit functions into an inline..

the idea is half-crap - this code still remains in the hot path, even though it can be eliminated. this can be accomplished by providing a extra system call table and a proxy handler installed in the regular one. the proxy handler will inspect regs and whatnot and will get the syscall number + args from there. it can then proceed to do the crappery to safely call the syscall.

Oct 13 2017, 8:03 PM
mjg created D12665: Reduce traffic on vm_cnt.v_free_count.
Oct 13 2017, 7:31 PM

Oct 12 2017

mjg committed rS324547: xinstall: plug an infinite loop in directory creation.
xinstall: plug an infinite loop in directory creation
Oct 12 2017, 1:59 PM

Oct 6 2017

mjg committed rS324378: namecache: factor out ~MAKEENTRY lookups from the common path.
namecache: factor out ~MAKEENTRY lookups from the common path
Oct 6 2017, 11:06 PM

Oct 5 2017

mjg committed rS324335: locks: take the number of readers into account when waiting.
locks: take the number of readers into account when waiting
Oct 5 2017, 7:18 PM
mjg committed rS324328: amd64: remove unused variable from pmap_delayed_invl_genp.
amd64: remove unused variable from pmap_delayed_invl_genp
Oct 5 2017, 6:52 PM
mjg committed rS324314: locks: partially tidy up waiting on readers.
locks: partially tidy up waiting on readers
Oct 5 2017, 1:01 PM

Sep 30 2017

mjg committed rS324127: tmpfs: skip zero-sized page count updates.
tmpfs: skip zero-sized page count updates
Sep 30 2017, 6:24 PM

Sep 27 2017

mjg committed rS324045: sysctl: remove target buffer read/write checks prior to calling the handler.
sysctl: remove target buffer read/write checks prior to calling the handler
Sep 27 2017, 1:32 AM
mjg committed rS324044: Annotate sysctlmemlock with __exclusive_cache_line..
Annotate sysctlmemlock with __exclusive_cache_line.
Sep 27 2017, 1:28 AM
mjg committed rS324043: Remove manpage entries about crshared(9).
Remove manpage entries about crshared(9)
Sep 27 2017, 1:13 AM
mjg committed rS324042: Whack procctl(8).
Whack procctl(8)
Sep 27 2017, 1:03 AM
mjg committed rS324041: mtx: drop the tid argument from _mtx_lock_sleep.
mtx: drop the tid argument from _mtx_lock_sleep
Sep 27 2017, 12:57 AM

Sep 10 2017

mjg committed rS323393: Move vmmeter atomic counters into dedicated cache lines.
Move vmmeter atomic counters into dedicated cache lines
Sep 10 2017, 7:01 PM
mjg closed D12281: Move vmmeter atomic counters into dedicated cache lines.
Sep 10 2017, 7:01 PM
mjg added a comment to D12281: Move vmmeter atomic counters into dedicated cache lines.
-       u_int v_free_count;     /* (f) pages free */
        u_int v_inactive_target; /* (c) pages desired inactive */
        u_int v_pageout_free_min;   /* (c) min pages reserved for kernel */
        u_int v_interrupt_free_min; /* (c) reserved pages for int code */
        u_int v_free_severe;    /* (c) severe page depletion point */
+       u_int v_free_count VMMETER_ALIGNED;     /* (f) pages free */
        u_int v_wire_count VMMETER_ALIGNED; /* (a) pages wired down */
Sep 10 2017, 6:24 PM
mjg updated the diff for D12281: Move vmmeter atomic counters into dedicated cache lines.

Updated the diff to only move counters to the end + pad them.

Sep 10 2017, 3:53 PM
mjg committed rS323385: namecache: clean up struct namecache_ts handling.
namecache: clean up struct namecache_ts handling
Sep 10 2017, 11:18 AM

Sep 9 2017

mjg added a comment to D12281: Move vmmeter atomic counters into dedicated cache lines.

Annotating mid-struct has 2 problems:

  • creates unnecessary holes between stuff prior to and after the counter, i.e. the cacheline preceeding the padded field can have free space which is now unused. extreme case in point, v_inactive_target is getting sandwiched between 2 annotated fields (see below)
  • the annotation sets the alignment of the field itself, but does not prevent following fields from being placed immediately afterwards. once more case in point with v_inactive_target
Sep 9 2017, 3:59 PM
mjg committed rS323346: Fix riscv and powerpc compilation after r323329..
Fix riscv and powerpc compilation after r323329.
Sep 9 2017, 5:56 AM

Sep 8 2017

mjg updated the summary of D12281: Move vmmeter atomic counters into dedicated cache lines.
Sep 8 2017, 9:53 PM
mjg created D12281: Move vmmeter atomic counters into dedicated cache lines.
Sep 8 2017, 9:50 PM
mjg committed rS323329: Allow __builtin_memset instead of bzero for small buffers of known size.
Allow __builtin_memset instead of bzero for small buffers of known size
Sep 8 2017, 8:09 PM
mjg committed rS323308: namecache: fold the unlock label into the only consumer.
namecache: fold the unlock label into the only consumer
Sep 8 2017, 6:57 AM
mjg committed rS323307: namecache: factor out dot lookup into a dedicated function.
namecache: factor out dot lookup into a dedicated function
Sep 8 2017, 6:51 AM