Page MenuHomeFreeBSD
Feed Advanced Search

Dec 8 2018

mjg committed rS341719: amd64: stop re-reading curpc on subyte/suword.
amd64: stop re-reading curpc on subyte/suword
Dec 8 2018, 4:53 AM

Dec 7 2018

mjg committed rS341702: fd: use racct_set_unlocked.
fd: use racct_set_unlocked
Dec 7 2018, 4:51 PM
mjg committed rS341701: racct: add RACCT_ENABLED macro and racct_set_unlocked.
racct: add RACCT_ENABLED macro and racct_set_unlocked
Dec 7 2018, 4:48 PM
mjg committed rS341700: fd: try do less work with the lock in dup.
fd: try do less work with the lock in dup
Dec 7 2018, 4:45 PM
mjg committed rS341699: vm: use fcmpset for vmspace reference counting.
vm: use fcmpset for vmspace reference counting
Dec 7 2018, 4:25 PM
mjg committed rS341698: Replace hand-rolled unrefs if > 1 with refcount_release_if_not_last.
Replace hand-rolled unrefs if > 1 with refcount_release_if_not_last
Dec 7 2018, 4:11 PM
mjg committed rS341697: refcount: remove a stale comment about conditional ref/unref routines.
refcount: remove a stale comment about conditional ref/unref routines
Dec 7 2018, 4:11 PM
mjg committed rS341685: proc: when exiting move to zombproc before taking proctree.
proc: when exiting move to zombproc before taking proctree
Dec 7 2018, 12:33 PM
mjg committed rS341684: Manage process-related IDs with bitmaps.
Manage process-related IDs with bitmaps
Dec 7 2018, 12:22 PM
mjg committed rS341683: Annotate Giant drop/pickup macros with __predict_false.
Annotate Giant drop/pickup macros with __predict_false
Dec 7 2018, 12:08 PM
mjg committed rS341682: unr64: use locked variant if not __LP64__.
unr64: use locked variant if not __LP64__
Dec 7 2018, 12:08 PM

Dec 5 2018

mjg committed rS341593: sx: retire SX_NOADAPTIVE.
sx: retire SX_NOADAPTIVE
Dec 5 2018, 4:44 PM
mjg created D18435: Manage process-related IDs with bitmaps.
Dec 5 2018, 3:31 PM
mjg added a comment to D18373: pfsync: Performance improvement.

can you grab a flamegraph from such a test? also, can you compare this against https://reviews.freebsd.org/D17992 ?

Dec 5 2018, 10:49 AM

Dec 1 2018

mjg added a comment to D18401: amd64: align memmove buffers to 16 bytes before using rep movs.

I did basic tests with changing the alignment of src and slowdowns were very small compared to similarly misaligned dst, at least on EPYC. I may take a closer look later.

Dec 1 2018, 2:22 PM
mjg committed rS341364: amd64: align target memmove buffer to 16 bytes before using rep movs.
amd64: align target memmove buffer to 16 bytes before using rep movs
Dec 1 2018, 2:20 PM
mjg closed D18401: amd64: align memmove buffers to 16 bytes before using rep movs.
Dec 1 2018, 2:20 PM
mjg created D18401: amd64: align memmove buffers to 16 bytes before using rep movs.
Dec 1 2018, 1:10 PM

Nov 30 2018

mjg committed rS341351: amd64: handle small memmove buffers with overlapping stores.
amd64: handle small memmove buffers with overlapping stores
Nov 30 2018, 8:59 PM
mjg closed D18387: amd64: handle small memmove buffers with overlapping stores.
Nov 30 2018, 8:59 PM
mjg created D18387: amd64: handle small memmove buffers with overlapping stores.
Nov 30 2018, 9:03 AM
mjg committed rS341273: amd64: remove stale attribution for memmove work.
amd64: remove stale attribution for memmove work
Nov 30 2018, 12:48 AM
mjg committed rS341272: amd64: tidy up copying backwards in memmove.
amd64: tidy up copying backwards in memmove
Nov 30 2018, 12:48 AM

Nov 29 2018

mjg committed rS341223: vfs: fix i386 build after r341220.
vfs: fix i386 build after r341220
Nov 29 2018, 9:54 AM
mjg committed rS341222: cache: retire cache_enter compat schim.
cache: retire cache_enter compat schim
Nov 29 2018, 9:33 AM
mjg committed rS341221: audit: predict AUDITING_TD as false.
audit: predict AUDITING_TD as false
Nov 29 2018, 9:22 AM
mjg committed rS341220: vfs: drop spurious memcpy in stat.
vfs: drop spurious memcpy in stat
Nov 29 2018, 9:04 AM
mjg committed rS341219: fd: unify fd range check across the routines.
fd: unify fd range check across the routines
Nov 29 2018, 8:54 AM
mjg committed rS341218: audit: change audit_syscalls_enabled type to bool.
audit: change audit_syscalls_enabled type to bool
Nov 29 2018, 8:40 AM
mjg committed rS341182: Convert racct_enable to bool and annotate as __read_frequently.
Convert racct_enable to bool and annotate as __read_frequently
Nov 29 2018, 5:18 AM
mjg committed rS341181: Deinline racct throttling out of syscall exit path..
Deinline racct throttling out of syscall exit path.
Nov 29 2018, 5:10 AM
mjg committed rS341180: Annotate td_cowgen check as unlikely..
Annotate td_cowgen check as unlikely.
Nov 29 2018, 4:48 AM
mjg committed rS341178: Tidy up hardclock..
Tidy up hardclock.
Nov 29 2018, 3:46 AM
mjg committed rS341176: proc: create a dedicated lock for zombproc to ligthen the load on allproc_lock.
proc: create a dedicated lock for zombproc to ligthen the load on allproc_lock
Nov 29 2018, 2:52 AM
mjg abandoned D17774: Create a dedicated lock for zombproc to ligthen the load on allproc_lock.

https://svnweb.freebsd.org/changeset/base/341176

Nov 29 2018, 2:52 AM

Nov 28 2018

mjg added a comment to D18373: pfsync: Performance improvement.

once more i don't have a full picture so can't give a proper review.

Nov 28 2018, 11:01 PM

Nov 23 2018

mjg committed rS340793: Revert "fork: fix use-after-free with vfork".
Revert "fork: fix use-after-free with vfork"
Nov 23 2018, 4:39 AM

Nov 22 2018

mjg committed rS340786: Annotate TDP_RFPPWAIT as unlikely..
Annotate TDP_RFPPWAIT as unlikely.
Nov 22 2018, 9:38 PM
mjg committed rS340785: fork: remove avoidable proc lock/unlock pair.
fork: remove avoidable proc lock/unlock pair
Nov 22 2018, 9:29 PM
mjg committed rS340784: fork: fix use-after-free with vfork.
fork: fix use-after-free with vfork
Nov 22 2018, 9:08 PM
mjg closed D18295: fork: fix use-after-free with vfork.
Nov 22 2018, 9:08 PM
mjg updated the diff for D18295: fork: fix use-after-free with vfork.
Nov 22 2018, 8:42 PM
mjg updated the diff for D18295: fork: fix use-after-free with vfork.
  • remove now spurious cv_broadcast(&p->p_pwait);
Nov 22 2018, 8:12 PM
mjg added inline comments to D18295: fork: fix use-after-free with vfork.
Nov 22 2018, 6:24 PM
mjg added a comment to D17992: pfsync: Reduce contention on PFSYNC_LOCK().
In D17992#387922, @kristof wrote:

Adding more rings won't really help any more than making this one ring larger. That merely increases the queue length between the multiple pf threads, and the pfsync processing code (which is still single-threaded) in pfsync_msg_intr() and pfsyncintr().

Nov 22 2018, 5:00 AM
mjg updated the summary of D18295: fork: fix use-after-free with vfork.
Nov 22 2018, 1:03 AM
mjg created D18295: fork: fix use-after-free with vfork.
Nov 22 2018, 1:02 AM

Nov 21 2018

mjg updated the diff for D17774: Create a dedicated lock for zombproc to ligthen the load on allproc_lock.
  • rebase
  • fix fork
Nov 21 2018, 11:54 PM
mjg committed rS340750: strings: unbreak the build after r340746.
strings: unbreak the build after r340746
Nov 21 2018, 10:37 PM
mjg committed rS340749: uipc_usrreq: fix inode number assignment.
uipc_usrreq: fix inode number assignment
Nov 21 2018, 10:25 PM
mjg committed rS340748: proc: update list manipulation comment on process exit.
proc: update list manipulation comment on process exit
Nov 21 2018, 10:16 PM
mjg committed rS340747: uipc_shm: use unr64 for inode numbers.
uipc_shm: use unr64 for inode numbers
Nov 21 2018, 10:01 PM
mjg committed rS340744: proc: convert pfind & friends to use pidhash locks and other cleanup.
proc: convert pfind & friends to use pidhash locks and other cleanup
Nov 21 2018, 8:16 PM
mjg committed rS340742: proc: implement pid hash locks and an iterator.
proc: implement pid hash locks and an iterator
Nov 21 2018, 6:56 PM
mjg closed D17817: proc: implement pid hash locks and an iterator.
Nov 21 2018, 6:56 PM
mjg committed rS340719: MFC r340108 and r340149.
MFC r340108 and r340149
Nov 21 2018, 3:22 AM

Nov 20 2018

mjg added a comment to D17992: pfsync: Reduce contention on PFSYNC_LOCK().

So both ring and swi kicking code are significant players. I think a simple and probably good enough solution would just add more rings, perhaps based on the number of hardware threads. Assuming the traffic is hashed to distribute among them, the rings could mostly remain unshared with unrelated threads. Sending out of the traffic would just combine data from all rings. Kicking can also be avoided in a simple manner. You can add a var signifying the frequency of wakeups. The increase the frequency based on the traffic and past certain threshold you stop kicking swi. It has to decay so that if there is no traffic, the code goes back to wakeups once a second (or whatever).

Nov 20 2018, 10:39 PM
mjg committed rS340688: MFC r339531,r339579,r340252,r340463,r340464,340472,r340587.
MFC r339531,r339579,r340252,r340463,r340464,340472,r340587
Nov 20 2018, 6:14 PM
mjg committed rS340684: MFC r339531,r339579,r340252,r340463,r340464,340472,r340587.
MFC r339531,r339579,r340252,r340463,r340464,340472,r340587
Nov 20 2018, 5:11 PM
mjg committed rS340682: MFC r339449:.
MFC r339449:
Nov 20 2018, 5:02 PM
mjg committed rS340679: tmpfs: use unr64 for inode numbers.
tmpfs: use unr64 for inode numbers
Nov 20 2018, 3:14 PM
mjg committed rS340677: pipe: use unr64.
pipe: use unr64
Nov 20 2018, 2:59 PM
mjg committed rS340676: Implement unr64.
Implement unr64
Nov 20 2018, 2:58 PM
mjg closed D18054: Implement unr64.
Nov 20 2018, 2:58 PM
mjg updated the summary of D18054: Implement unr64.
Nov 20 2018, 3:26 AM
mjg updated the summary of D18054: Implement unr64.
Nov 20 2018, 3:24 AM
mjg created D18054: Implement unr64.
Nov 20 2018, 3:24 AM

Nov 18 2018

mjg accepted D18031: Fix -DNO_CLEAN amd64 build after r340463.

So I retested with your change. a failing build indeed is fixed. Perhaps my original change had a typo or compatible. Thanks.

Nov 18 2018, 2:21 PM
mjg added a comment to D18031: Fix -DNO_CLEAN amd64 build after r340463.

Are you sure that on your box a *failing* -DNO_CLEAN starts building again with this change? Are you using meta-mode? I had a similar change locally and the build kept failing anyway, no meta-mode though.

Nov 18 2018, 12:20 PM

Nov 16 2018

mjg updated the diff for D17817: proc: implement pid hash locks and an iterator.
  • address feedback
  • drop killpg changes
Nov 16 2018, 8:15 PM
mjg committed rS340482: proc: always store parent pid in p_oppid.
proc: always store parent pid in p_oppid
Nov 16 2018, 5:08 PM
mjg closed D17825: proc: always store parent pid in p_oppid.
Nov 16 2018, 5:08 PM
mjg committed rS340472: amd64: handle small memset buffers with overlapping stores.
amd64: handle small memset buffers with overlapping stores
Nov 16 2018, 12:44 AM
mjg closed D17660: amd64: handle small memset buffers with overlapping stores.
Nov 16 2018, 12:44 AM

Nov 15 2018

mjg added a comment to D969: Implement lockless vfs_busy/unbusy..

yes. these patches are stale and kind of crap. I have a WIP replacement which I'llprobalby post in a new review, we will see.

Nov 15 2018, 9:18 PM
mjg committed rS340464: amd64: sync up libc memset with the kernel version.
amd64: sync up libc memset with the kernel version
Nov 15 2018, 8:28 PM
mjg committed rS340463: amd64: convert libc bzero to a C func to avoid future bloat.
amd64: convert libc bzero to a C func to avoid future bloat
Nov 15 2018, 8:20 PM
mjg closed D17549: amd64: convert libc bzero to a C func to avoid future bloat .
Nov 15 2018, 8:20 PM
mjg added a comment to D17992: pfsync: Reduce contention on PFSYNC_LOCK().

I have no doubt there is an improvement, just saying it is still slower than it can be and unless this uncovered a new major bottleneck, the ring manipulation is the new hotspot.

Nov 15 2018, 5:37 PM

Nov 14 2018

mjg added a comment to D17992: pfsync: Reduce contention on PFSYNC_LOCK().

I think the approach taken here is iffy. Basic problem with this is that even if there is no lock contention anymore, you are still suffering from bouncing cache lines. Also swi_sched probably does not appreciate being called very often.

Nov 14 2018, 10:23 PM

Nov 13 2018

mjg committed rS340410: locks: plug warnings about unitialized variables.
locks: plug warnings about unitialized variables
Nov 13 2018, 9:30 PM
mjg added inline comments to D17825: proc: always store parent pid in p_oppid.
Nov 13 2018, 7:23 PM

Nov 8 2018

mjg committed rS340252: amd64: align memset buffers to 16 bytes before using rep stos.
amd64: align memset buffers to 16 bytes before using rep stos
Nov 8 2018, 3:12 PM
mjg closed D17661: amd64: align memset buffers to 16 bytes before using rep stos.
Nov 8 2018, 3:12 PM

Nov 6 2018

mjg accepted D17631: libc: Use musl's optimized memchr.
Nov 6 2018, 1:18 PM
mjg accepted D17630: libc: Use musl's optimized strchr, strchrnul, strcspn.
Nov 6 2018, 1:18 PM
mjg updated the diff for D17825: proc: always store parent pid in p_oppid.
  • address feedback
  • regen against head
  • i did not change the condition in proc_realparent as it goes way over the 80 char limit
Nov 6 2018, 12:58 PM

Nov 4 2018

mjg added a comment to D17817: proc: implement pid hash locks and an iterator.

I don't think the same problem is a concern for ps/top, so it can be discussed further in a different review. I can simply drop killpg conversion from the patchset (and remove the spurious curly braces).

Nov 4 2018, 8:19 PM
mjg added a comment to D17817: proc: implement pid hash locks and an iterator.

killpg is already unreliable. if the child is spotted as PRS_NEW it will be explicitly omitted, so I don't think this constitutes a regression in functionality

Nov 4 2018, 5:14 PM

Nov 3 2018

mjg created D17825: proc: always store parent pid in p_oppid.
Nov 3 2018, 5:00 PM

Nov 2 2018

mjg updated the summary of D17817: proc: implement pid hash locks and an iterator.
Nov 2 2018, 2:13 PM
mjg updated the summary of D17817: proc: implement pid hash locks and an iterator.
Nov 2 2018, 2:09 PM
mjg updated the summary of D17817: proc: implement pid hash locks and an iterator.
Nov 2 2018, 2:05 PM
mjg created D17817: proc: implement pid hash locks and an iterator.
Nov 2 2018, 2:03 PM

Nov 1 2018

mjg added inline comments to D17774: Create a dedicated lock for zombproc to ligthen the load on allproc_lock.
Nov 1 2018, 7:16 AM

Oct 31 2018

mjg updated the summary of D17774: Create a dedicated lock for zombproc to ligthen the load on allproc_lock.
Oct 31 2018, 2:32 AM
mjg created D17774: Create a dedicated lock for zombproc to ligthen the load on allproc_lock.
Oct 31 2018, 2:31 AM

Oct 24 2018

mjg added inline comments to D17660: amd64: handle small memset buffers with overlapping stores.
Oct 24 2018, 10:17 PM

Oct 23 2018

mjg added inline comments to D17660: amd64: handle small memset buffers with overlapping stores.
Oct 23 2018, 9:43 PM
mjg added a comment to D17660: amd64: handle small memset buffers with overlapping stores.

I believe the problem is roughly the same as before. Passed buffers are often already heavily misaligned, so movs here trip over the same words anyway.

Oct 23 2018, 8:26 PM