Page MenuHomeFreeBSD
Feed Advanced Search

Feb 9 2020

jeff updated the diff for D23446: Add a lockless lookup mechanism that uses a SMR zone..

Use a common inline for lookup and provide a more direct path to making
other lookup functions lockless. Resolve startup ordering issues.

Feb 9 2020, 12:49 AM

Feb 6 2020

jeff added inline comments to D23506: Don't drop xbusy on kmem pages..
Feb 6 2020, 9:09 PM
jeff accepted D23532: Optimize keg_drain()..
Feb 6 2020, 9:05 PM
jeff updated the diff for D23506: Don't drop xbusy on kmem pages..

Correct swapout. I am still testing this but I believe it is correct.

Feb 6 2020, 8:54 PM
jeff committed rS357641: Fix a race in smr_advance() that could result in unnecessary poll calls..
Fix a race in smr_advance() that could result in unnecessary poll calls.
Feb 6 2020, 8:51 PM
jeff closed D23464: Fix a race in smr_advance() that could result in unnecessary poll calls..
Feb 6 2020, 8:51 PM
jeff closed D23515: Temporarily force IFF_NEEDSEPOCH until drivers have been resolved..
Feb 6 2020, 8:48 PM
jeff committed rS357640: Temporarily force IFF_NEEDSEPOCH until drivers have been resolved..
Temporarily force IFF_NEEDSEPOCH until drivers have been resolved.
Feb 6 2020, 8:48 PM
jeff committed rS357637: Add some global counters for SMR. These may eventually become per-smr.
Add some global counters for SMR. These may eventually become per-smr
Feb 6 2020, 8:10 PM
jeff closed D23463: Add counters to smr..
Feb 6 2020, 8:10 PM

Feb 5 2020

jeff added a comment to D23463: Add counters to smr..

Logic looks fine. I trust you've checked any performance effects.

In advance you count on entry, and then also on the slow path, whereas in poll you count either fast or slow. Did you mean to approach those differently?

Feb 5 2020, 3:59 AM
jeff updated the summary of D23515: Temporarily force IFF_NEEDSEPOCH until drivers have been resolved..
Feb 5 2020, 2:55 AM
jeff created D23515: Temporarily force IFF_NEEDSEPOCH until drivers have been resolved..
Feb 5 2020, 2:48 AM

Feb 4 2020

jeff updated the summary of D23506: Don't drop xbusy on kmem pages..
Feb 4 2020, 8:38 PM
jeff created D23506: Don't drop xbusy on kmem pages..
Feb 4 2020, 8:33 PM
jeff committed rS357528: Add an explicit busy state for free pages. This improves behavior with.
Add an explicit busy state for free pages. This improves behavior with
Feb 4 2020, 8:33 PM
jeff closed D23444: Add an explicit free state to busy_lock so that we can handle transientsfrom lockless lookup..
Feb 4 2020, 8:33 PM
jeff closed D23494: Use literal bucket sizes for small buckets..
Feb 4 2020, 8:28 PM
jeff committed rS357527: Use literal bucket sizes for smaller buckets rather than the rounding.
Use literal bucket sizes for smaller buckets rather than the rounding
Feb 4 2020, 8:28 PM
jeff committed rS357494: Fix libmemstat_uma build after r357485..
Fix libmemstat_uma build after r357485.
Feb 4 2020, 5:27 AM
jeff committed rS357487: Implement a deferred write advancement feature that can be used to further.
Implement a deferred write advancement feature that can be used to further
Feb 4 2020, 2:45 AM
jeff closed D23462: Deferred write seq advancement.
Feb 4 2020, 2:45 AM
jeff committed rS357486: Fix a recursion on the thread lock by acquiring it after call rtp_to_pri()..
Fix a recursion on the thread lock by acquiring it after call rtp_to_pri().
Feb 4 2020, 2:43 AM
jeff closed D23495: Fix a recursion in thread_create()..
Feb 4 2020, 2:43 AM
jeff closed D23493: Use a STAILQ instead of a TAILQ to shrink the bucket size by one pointer..
Feb 4 2020, 2:41 AM
jeff committed rS357485: Use STAILQ instead of TAILQ for bucket lists. We only need FIFO behavior.
Use STAILQ instead of TAILQ for bucket lists. We only need FIFO behavior
Feb 4 2020, 2:41 AM
jeff accepted D23496: uma: pcpu_page_free needs to startup_free pages from startup_alloc.

I just considered that it might be cleaner to test for this once in keg_free_slab but this is fine.

Feb 4 2020, 1:17 AM

Feb 3 2020

jeff added a comment to D23469: fd: convert f_count to long.

You are creating work for everyone who has to review this and investigate as well as anyone who has to come after and figure out which of now three refcount apis are correct for their use and you have not yet justified the value of the change beyond pointing out that there is an extra branch. Arbitrarily small performance gains do not justify code complexity. Please demonstrate that this actually matters.

Feb 3 2020, 11:28 PM
jeff added a reviewer for D23469: fd: convert f_count to long: jhb.
Feb 3 2020, 11:23 PM
jeff added a reviewer for D23480: Add new refcount API: jhb.
Feb 3 2020, 11:22 PM
jeff accepted D23492: Fix the !SMP case in sched_add()..

I thought I tested !SMP but maybe I just built it. This LGTM.

Feb 3 2020, 10:17 PM
jeff updated the summary of D23495: Fix a recursion in thread_create()..
Feb 3 2020, 10:07 PM
jeff created D23495: Fix a recursion in thread_create()..
Feb 3 2020, 10:06 PM
jeff updated the summary of D23494: Use literal bucket sizes for small buckets..
Feb 3 2020, 9:57 PM
jeff updated the summary of D23493: Use a STAILQ instead of a TAILQ to shrink the bucket size by one pointer..
Feb 3 2020, 9:55 PM
jeff created D23494: Use literal bucket sizes for small buckets..
Feb 3 2020, 9:51 PM
jeff created D23493: Use a STAILQ instead of a TAILQ to shrink the bucket size by one pointer..
Feb 3 2020, 9:51 PM

Feb 2 2020

jeff added a comment to D23469: fd: convert f_count to long.

The overflow detecting was added to refcount for struct file. If struct file is not using it then the question becomes why detect overflow in the first place.

Feb 2 2020, 11:33 PM
jeff updated the summary of D23464: Fix a race in smr_advance() that could result in unnecessary poll calls..
Feb 2 2020, 12:41 AM
jeff updated the diff for D23464: Fix a race in smr_advance() that could result in unnecessary poll calls..

Fixes for invariants

Feb 2 2020, 12:39 AM
jeff added inline comments to D23462: Deferred write seq advancement.
Feb 2 2020, 12:30 AM
jeff updated the summary of D23463: Add counters to smr..
Feb 2 2020, 12:26 AM
jeff created D23464: Fix a race in smr_advance() that could result in unnecessary poll calls..
Feb 2 2020, 12:25 AM
jeff created D23463: Add counters to smr..
Feb 2 2020, 12:25 AM
jeff updated the summary of D23462: Deferred write seq advancement.
Feb 2 2020, 12:24 AM
jeff created D23462: Deferred write seq advancement.
Feb 2 2020, 12:19 AM
jeff abandoned D23459: Deferred write seq advancement.
Feb 2 2020, 12:15 AM
jeff abandoned D23460: Use an acquire fence in smr to load the wr_seq..
Feb 2 2020, 12:14 AM
jeff created D23460: Use an acquire fence in smr to load the wr_seq..
Feb 2 2020, 12:14 AM
jeff created D23459: Deferred write seq advancement.
Feb 2 2020, 12:14 AM

Feb 1 2020

jeff committed rS357392: Fix a bug in r356776 where the page allocator was not properly restored to.
Fix a bug in r356776 where the page allocator was not properly restored to
Feb 1 2020, 11:46 PM
jeff added inline comments to D23444: Add an explicit free state to busy_lock so that we can handle transientsfrom lockless lookup..
Feb 1 2020, 11:16 PM
jeff added inline comments to D23408: epoch support for taskqueues.
Feb 1 2020, 10:29 PM
jeff updated the summary of D23449: Add unlocked variants of grab functions..
Feb 1 2020, 3:13 AM
jeff created D23449: Add unlocked variants of grab functions..
Feb 1 2020, 3:05 AM
jeff updated the summary of D23446: Add a lockless lookup mechanism that uses a SMR zone..
Feb 1 2020, 1:40 AM
jeff created D23446: Add a lockless lookup mechanism that uses a SMR zone..
Feb 1 2020, 1:31 AM
jeff abandoned D23445: Add a lockless lookup mechanism that uses a SMR zone..
Feb 1 2020, 1:30 AM
jeff abandoned D22587: Add a lockless lookup mechanism that uses a SMR zone..
Feb 1 2020, 1:30 AM

Jan 31 2020

jeff retitled D23444: Add an explicit free state to busy_lock so that we can handle transientsfrom lockless lookup. from Add an explicit free state to busy_lock so that we can handle transients from lockless lookup. to Add an explicit free state to busy_lock so that we can handle transientsfrom lockless lookup..
Jan 31 2020, 11:07 PM
jeff created D23445: Add a lockless lookup mechanism that uses a SMR zone..
Jan 31 2020, 11:00 PM
jeff created D23444: Add an explicit free state to busy_lock so that we can handle transientsfrom lockless lookup..
Jan 31 2020, 11:00 PM
jeff committed rS357355: Add two missing fences with comments describing them. These were found by.
Add two missing fences with comments describing them. These were found by
Jan 31 2020, 10:21 PM
jeff added inline comments to D23440: smr: add some missed fences..
Jan 31 2020, 7:26 PM
jeff added inline comments to D23432: Tmpfs nomtime mount flag..
Jan 31 2020, 2:23 AM
jeff committed rS357317: Implement a simple UMA SMR stress testing tool..
Implement a simple UMA SMR stress testing tool.
Jan 31 2020, 2:19 AM
jeff committed rS357316: Don't use "All rights reserved" in new copyrights..
Don't use "All rights reserved" in new copyrights.
Jan 31 2020, 2:08 AM
jeff committed rS357315: Fix LINT build with MEMGUARD..
Fix LINT build with MEMGUARD.
Jan 31 2020, 2:03 AM
jeff closed D22586: Implement safe memory reclamation in UMA..
Jan 31 2020, 12:50 AM
jeff committed rS357314: Implement a safe memory reclamation feature that is tightly coupled with UMA..
Implement a safe memory reclamation feature that is tightly coupled with UMA.
Jan 31 2020, 12:50 AM

Jan 30 2020

jeff updated the diff for D22586: Implement safe memory reclamation in UMA..

Review feedback. Minor nits.

Jan 30 2020, 11:16 PM
jeff added inline comments to D22586: Implement safe memory reclamation in UMA..
Jan 30 2020, 6:46 AM
jeff added a comment to D22586: Implement safe memory reclamation in UMA..

One more performance update; This has less than half of the cost of enter()/exit() vs epoch. ~200 cycles vs ~500 cycles on my simple benchmark.

Jan 30 2020, 4:34 AM
jeff updated the diff for D22586: Implement safe memory reclamation in UMA..

Review feedback. Improved comments. Some minor fixes.

Jan 30 2020, 4:30 AM

Jan 27 2020

jeff added inline comments to D22586: Implement safe memory reclamation in UMA..
Jan 27 2020, 1:23 AM
jeff added inline comments to D22586: Implement safe memory reclamation in UMA..
Jan 27 2020, 12:10 AM
jeff updated the diff for D22586: Implement safe memory reclamation in UMA..

Address some review feedback. Still a few comments to clear up.

Jan 27 2020, 12:09 AM

Jan 26 2020

jeff added inline comments to D22586: Implement safe memory reclamation in UMA..
Jan 26 2020, 9:53 PM
jeff added a comment to D23291: vfs: add mandatory inactive processing to vget.

The question is really whether the next user is allowed to see the state of the file while needs inactive is set. In the cases described it is not harmful. I assert that the next user can see this incomplete state and what we're concerned with is properly tearing it down in a timely fashion. I would like to focus on solutions that only implement the required invariant and not something stronger than necessary.

Jan 26 2020, 9:37 PM
jeff added a comment to D23291: vfs: add mandatory inactive processing to vget.

I'm not sure why we are still pursuing this when the bugs relating to inactive processing were fixed when vget was changed to not drop the lock.

Jan 26 2020, 8:49 PM
jeff added inline comments to D22586: Implement safe memory reclamation in UMA..
Jan 26 2020, 2:48 AM
jeff updated the diff for D22586: Implement safe memory reclamation in UMA..

Use sequence instead of epoch to avoid confusion with the epoch algorithm.
epoch becomes wr_seq, the write sequence number.
epoch_min becomes rd_seq, the read sequence number.

Jan 26 2020, 2:34 AM

Jan 25 2020

jeff updated subscribers of D22586: Implement safe memory reclamation in UMA..
Jan 25 2020, 11:02 PM
jeff added inline comments to D22586: Implement safe memory reclamation in UMA..
Jan 25 2020, 9:24 PM
jeff set the repository for D22586: Implement safe memory reclamation in UMA. to rS FreeBSD src repository - subversion.
Jan 25 2020, 9:23 AM
jeff added a comment to D22586: Implement safe memory reclamation in UMA..

I have some quantitative data to support my performance claims. In my test SMR is ~3x faster while consuming 5% as much memory vs epoch.

Jan 25 2020, 9:20 AM
jeff updated the diff for D22586: Implement safe memory reclamation in UMA..

Delay uz_dtor() until the memory is safe to be reclaimed. This makes UMA SMR
compatible with existing use-after-free detection and allows zones to specify
typed callbacks to be notified when an item expired. The one limitation of
this system is that the udata argument to uma_zfree_arg() is not preserved.

Jan 25 2020, 2:28 AM

Jan 24 2020

jeff added inline comments to D23279: Remove some lingering page lock usages..
Jan 24 2020, 1:56 AM
jeff accepted D23343: lockmgr: don't touch the lock after unlock.

I am happy with this change but I have not followed all code paths to be sure none were left out.

Jan 24 2020, 1:53 AM
jeff accepted D23331: Handle a race of collapse with a retrying fault..

The goto is unfortunate but I see that without the loop becomes even weirder

Jan 24 2020, 1:52 AM
jeff accepted D23344: vfs: stop unlocking the vnode upfront in vput.

thank you

Jan 24 2020, 1:51 AM

Jan 23 2020

jeff updated the diff for D22586: Implement safe memory reclamation in UMA..

Merge to latest uma changes.

Jan 23 2020, 7:08 PM
jeff added a reviewer for D22586: Implement safe memory reclamation in UMA.: markj.
Jan 23 2020, 7:06 PM
jeff committed rS357028: (fault 9/9) Move zero fill into a dedicated function to make the object lock.
(fault 9/9) Move zero fill into a dedicated function to make the object lock
Jan 23 2020, 5:23 AM
jeff closed D23326: Move zero fill into its own function so that the object locking is more clear..
Jan 23 2020, 5:23 AM
jeff committed rS357027: (fault 8/9) Restructure some code to reduce duplication and simplify flow.
(fault 8/9) Restructure some code to reduce duplication and simplify flow
Jan 23 2020, 5:22 AM
jeff closed D23321: Restructure fault to eliminate a goto and label..
Jan 23 2020, 5:22 AM
jeff committed rS357026: (fault 7/9) Move fault population and allocation into a dedicated function.
(fault 7/9) Move fault population and allocation into a dedicated function
Jan 23 2020, 5:20 AM
jeff closed D23320: Move fault page allocation into its own routine..
Jan 23 2020, 5:20 AM
jeff committed rS357025: (fault 6/9) Move getpages and associated logic into a dedicated function..
(fault 6/9) Move getpages and associated logic into a dedicated function.
Jan 23 2020, 5:18 AM