Page MenuHomeFreeBSD

jeff (Jeffrey Roberson)
User

Projects

User Details

User Since
Aug 6 2017, 12:45 AM (106 w, 5 d)

Recent Activity

Wed, Aug 21

D21357: Move OBJT_VNODE specific code from vm_object_terminate() to vnode_destroy_vobject(). is now accepted and ready to land.
Wed, Aug 21, 9:49 PM
jeff added a comment to D21357: Move OBJT_VNODE specific code from vm_object_terminate() to vnode_destroy_vobject()..

In general I like this but the double setting of OBJ_DEAD does make it harder to detect things like double frees.

Wed, Aug 21, 9:31 PM

Tue, Aug 20

jeff added inline comments to D21331: Eliminate redundant code by introducing a vm_page_grab_valid().
Tue, Aug 20, 8:33 PM
jeff added inline comments to D21332: Augment vm_page_grab to support more cases that want to acquire busy locks..
Tue, Aug 20, 8:23 PM
jeff added inline comments to D21332: Augment vm_page_grab to support more cases that want to acquire busy locks..
Tue, Aug 20, 8:16 PM
jeff added a comment to D21331: Eliminate redundant code by introducing a vm_page_grab_valid().

So it is ok to skip has_pages for vnode objects? This is a slight optimization that seems worthwhile to me.

Tue, Aug 20, 7:15 PM
jeff abandoned D21313: Eliminate redundant code by introducing a vm_page_grab_valid that will use the pager to bring in pages that are not valid..
Tue, Aug 20, 1:21 AM
jeff retitled D21332: Augment vm_page_grab to support more cases that want to acquire busy locks. from Augment vm_page_grab to support more cases that want to acquire busy locks. Add a new function, vm_page_busy_acquire(), to support others. to Augment vm_page_grab to support more cases that want to acquire busy locks..
Tue, Aug 20, 1:09 AM
jeff created D21332: Augment vm_page_grab to support more cases that want to acquire busy locks..
Tue, Aug 20, 1:04 AM
jeff retitled D21331: Eliminate redundant code by introducing a vm_page_grab_valid() from Eliminate redundant code by introducing a vm_page_grab_valid that will use the pager to bring in pages that are not valid. to Eliminate redundant code by introducing a vm_page_grab_valid().
Tue, Aug 20, 1:01 AM
jeff created D21331: Eliminate redundant code by introducing a vm_page_grab_valid().
Tue, Aug 20, 12:47 AM
jeff added a comment to D21255: Remove the page lock dependency on busy sleeps by using sleepq to avoid races..

Respond to review feedback. Eliminate the object locking changes for now.

Tue, Aug 20, 12:46 AM

Mon, Aug 19

jeff updated the summary of D21329: Bind to a CPU in the device's domain if UMA will allocate the memory there..
Mon, Aug 19, 11:41 PM
jeff created D21329: Bind to a CPU in the device's domain if UMA will allocate the memory there..
Mon, Aug 19, 11:39 PM
jeff committed rS351241: Use an atomic reference count for paging in progress so that callers do not.
Use an atomic reference count for paging in progress so that callers do not
Mon, Aug 19, 11:10 PM
jeff closed D21311: Use atomics for paging in progress..
Mon, Aug 19, 11:10 PM
jeff committed rS351235: Permit vm_pager_has_page() to run with a shared lock. Introduce.
Permit vm_pager_has_page() to run with a shared lock. Introduce
Mon, Aug 19, 10:25 PM
jeff closed D21310: Allow calls to vm_pager_haspages with the object read locked.
Mon, Aug 19, 10:25 PM
D16667: Extend uma_reclaim() to permit different reclamation targets. is now accepted and ready to land.
Mon, Aug 19, 9:30 PM
jeff added inline comments to D21311: Use atomics for paging in progress..
Mon, Aug 19, 5:56 PM
D20486: Change synchonization rules for page reference counting. is now accepted and ready to land.
Mon, Aug 19, 1:03 AM
jeff added inline comments to D20486: Change synchonization rules for page reference counting..
Mon, Aug 19, 12:00 AM

Sun, Aug 18

jeff committed rS351200: Allocate all per-cpu datastructures in domain correct memory..
Allocate all per-cpu datastructures in domain correct memory.
Sun, Aug 18, 11:44 PM
jeff closed D21242: Reallocate pcpu area on the correct domain..
Sun, Aug 18, 11:44 PM
jeff added inline comments to D20486: Change synchonization rules for page reference counting..
Sun, Aug 18, 11:40 PM
jeff committed rS351198: Allocate amd64's page array using pages and page directory pages from the.
Allocate amd64's page array using pages and page directory pages from the
Sun, Aug 18, 11:08 PM
jeff closed D21252: Allocate the vm_page_array on domain correct memory..
Sun, Aug 18, 11:08 PM
jeff committed rS351188: Add a blocking wait bit to refcount. This allows refs to be used as a simple.
Add a blocking wait bit to refcount. This allows refs to be used as a simple
Sun, Aug 18, 11:44 AM
jeff closed D21254: Add support for blocking waits to refcounts..
Sun, Aug 18, 11:44 AM
jeff created D21313: Eliminate redundant code by introducing a vm_page_grab_valid that will use the pager to bring in pages that are not valid..
Sun, Aug 18, 9:27 AM
jeff updated the summary of D21311: Use atomics for paging in progress..
Sun, Aug 18, 8:54 AM
jeff created D21311: Use atomics for paging in progress..
Sun, Aug 18, 8:50 AM
jeff retitled D21310: Allow calls to vm_pager_haspages with the object read locked from Allow read locked objects to call has_pages to Allow calls to vm_pager_haspages with the object read locked.
Sun, Aug 18, 8:46 AM
jeff created D21310: Allow calls to vm_pager_haspages with the object read locked.
Sun, Aug 18, 8:44 AM
jeff added a comment to D21242: Reallocate pcpu area on the correct domain..

If there is no strong objection I will commit this tomorrow.

Sun, Aug 18, 8:36 AM
jeff added inline comments to D21252: Allocate the vm_page_array on domain correct memory..
Sun, Aug 18, 8:35 AM
jeff updated the summary of D21252: Allocate the vm_page_array on domain correct memory..

Address review feedback. Move the page array between the direct map and kva.

Sun, Aug 18, 8:32 AM
jeff committed rS351183: Remove unnecessary debugging from r351181 that caused powerpc build to fail..
Remove unnecessary debugging from r351181 that caused powerpc build to fail.
Sun, Aug 18, 8:07 AM
jeff committed rS351182: vm_phys_avail_find is only used on NUMA kernels. Fix a build error..
vm_phys_avail_find is only used on NUMA kernels. Fix a build error.
Sun, Aug 18, 7:43 AM
jeff committed rS351181: Encapsulate phys_avail manipulation in a set of simple routines. Add a.
Encapsulate phys_avail manipulation in a set of simple routines. Add a
Sun, Aug 18, 7:06 AM
jeff closed D21251: Add phys_avail allocation routines..
Sun, Aug 18, 7:06 AM
jeff added inline comments to D21251: Add phys_avail allocation routines..
Sun, Aug 18, 6:40 AM

Fri, Aug 16

jeff closed D21250: Move phys_avail and dump_avail into MI code..
Fri, Aug 16, 4:56 PM
jeff committed rS351108: Move phys_avail definition into MI code. It is consumed in the MI layer and.
Move phys_avail definition into MI code. It is consumed in the MI layer and
Fri, Aug 16, 12:45 AM

Thu, Aug 15

jeff added a reviewer for D21242: Reallocate pcpu area on the correct domain.: mmacy.
Thu, Aug 15, 7:29 PM

Wed, Aug 14

jeff added a comment to D21255: Remove the page lock dependency on busy sleeps by using sleepq to avoid races..

Address review feedback. Clean up patch. Switch to fcmpset and rel semantics.

Wed, Aug 14, 11:11 PM
jeff added inline comments to D21255: Remove the page lock dependency on busy sleeps by using sleepq to avoid races..
Wed, Aug 14, 10:50 PM
jeff added a comment to D21254: Add support for blocking waits to refcounts..

Address review feedback

Wed, Aug 14, 10:35 PM

Tue, Aug 13

jeff added a comment to D21254: Add support for blocking waits to refcounts..

Address some of Markj's feedback. Move the last ref drop into a dedicated function to lessen text bloat.

Tue, Aug 13, 9:56 PM
jeff added inline comments to D21255: Remove the page lock dependency on busy sleeps by using sleepq to avoid races..
Tue, Aug 13, 8:48 PM
jeff added inline comments to D21255: Remove the page lock dependency on busy sleeps by using sleepq to avoid races..
Tue, Aug 13, 8:43 PM
jeff updated the summary of D21255: Remove the page lock dependency on busy sleeps by using sleepq to avoid races..
Tue, Aug 13, 8:16 PM
jeff updated the summary of D21254: Add support for blocking waits to refcounts..
Tue, Aug 13, 8:10 PM
jeff created D21255: Remove the page lock dependency on busy sleeps by using sleepq to avoid races..
Tue, Aug 13, 8:08 PM
jeff created D21254: Add support for blocking waits to refcounts..
Tue, Aug 13, 8:02 PM
jeff added inline comments to D21250: Move phys_avail and dump_avail into MI code..
Tue, Aug 13, 5:56 PM
jeff updated the summary of D21250: Move phys_avail and dump_avail into MI code..
Tue, Aug 13, 5:53 PM
jeff updated the summary of D21252: Allocate the vm_page_array on domain correct memory..
Tue, Aug 13, 5:47 PM
jeff created D21252: Allocate the vm_page_array on domain correct memory..
Tue, Aug 13, 5:41 PM
jeff retitled D21251: Add phys_avail allocation routines. from Add phys_avail processing routines. to Add phys_avail allocation routines..
Tue, Aug 13, 5:40 PM
jeff updated the summary of D21250: Move phys_avail and dump_avail into MI code..
Tue, Aug 13, 5:36 PM
jeff created D21251: Add phys_avail allocation routines..
Tue, Aug 13, 5:31 PM
jeff created D21250: Move phys_avail and dump_avail into MI code..
Tue, Aug 13, 5:31 PM
jeff added inline comments to D21242: Reallocate pcpu area on the correct domain..
Tue, Aug 13, 5:09 PM
jeff added inline comments to D21242: Reallocate pcpu area on the correct domain..
Tue, Aug 13, 7:31 AM
jeff committed rS350972: Move scheduler state into the per-cpu area where it can be allocated on the.
Move scheduler state into the per-cpu area where it can be allocated on the
Tue, Aug 13, 4:54 AM
jeff closed D19315: Dynamically allocate per-cpu scheduler state.
Tue, Aug 13, 4:54 AM
jeff retitled D21242: Reallocate pcpu area on the correct domain. from Reallocate pcpu area on the correct domain if it is not already. Parts of this diff were originally from kib. to Reallocate pcpu area on the correct domain..
Tue, Aug 13, 1:52 AM
jeff created D21242: Reallocate pcpu area on the correct domain..
Tue, Aug 13, 1:49 AM

Tue, Aug 6

jeff committed rS350663: Cache kernel stacks in UMA. This gives us NUMA support, better concurrency,.
Cache kernel stacks in UMA. This gives us NUMA support, better concurrency,
Tue, Aug 6, 11:15 PM
jeff closed D20931: Cache kernel stacks in UMA so that we get NUMA support, better concurrency and statistics with less redundant code..
Tue, Aug 6, 11:15 PM
jeff committed rS350661: Implement a MINBUCKET zone flag so we can use minimal caching on zones that.
Implement a MINBUCKET zone flag so we can use minimal caching on zones that
Tue, Aug 6, 11:05 PM
jeff closed D20930: Add support for a MINBUCKET zone flag..
Tue, Aug 6, 11:05 PM
jeff committed rS350659: Add two new kernel options to control memory locality on NUMA hardware..
Add two new kernel options to control memory locality on NUMA hardware.
Tue, Aug 6, 9:50 PM
jeff closed D20929: Add a UMA option to support cross domain frees while preserving locality for first-touch zones..
Tue, Aug 6, 9:50 PM

Mon, Jul 29

jeff added inline comments to D20929: Add a UMA option to support cross domain frees while preserving locality for first-touch zones..
Mon, Jul 29, 5:34 PM

Jul 21 2019

jeff added inline comments to D20486: Change synchonization rules for page reference counting..
Jul 21 2019, 6:07 PM

Jul 13 2019

jeff added a comment to D20931: Cache kernel stacks in UMA so that we get NUMA support, better concurrency and statistics with less redundant code..
In D20931#454068, @kib wrote:
In D20931#453942, @jeff wrote:
In D20931#453715, @kib wrote:

I think that the patch is functionally fine.
It looks strange that

  1. For newly created stack, you set the backing object domain policy to prefer domain of the current cpu.
  2. You do not encode any preference when allocating from cache.

When allocating from cache the preference was recorded when it was inserted into cache in kstack_import(). The object is initialized and pointed to by the pages.

So it is UMA_ZONE_NUMA which gives the locality when satisfying the allocation from cache ?

I think the one thing that is questionable here is the PREFER vs FIXED. I should probably fix them both as PREFER. Do you agree?

I think yes.

Jul 13 2019, 8:39 PM
jeff added inline comments to D20931: Cache kernel stacks in UMA so that we get NUMA support, better concurrency and statistics with less redundant code..
Jul 13 2019, 5:28 PM
D20931: Cache kernel stacks in UMA so that we get NUMA support, better concurrency and statistics with less redundant code. now requires review to proceed.

Address review feedback

Jul 13 2019, 5:28 PM

Jul 12 2019

jeff added a comment to D20928: Handle stacked CPU binding..

The kernel memory allocators do not check the thread's numa policy. To do so on every allocation would really be prohibitively expensive. Instead the zones have simpler policies that are always enforced the same way.

Jul 12 2019, 8:52 PM
jeff added a comment to D20928: Handle stacked CPU binding..
In D20928#453818, @jhb wrote:

Hmm, do you require this going forward? I think it's probably fine, but changing the binding is going to possibly break some assumption in the calling code and the purpose of the panic was to force the calling code to be aware of that and handle it (e.g. by unbinding before calling bus_bind_intr() or the like so that then the calling code is aware of the change and can handle the migration if needed.)

Jul 12 2019, 8:35 PM
jeff added a comment to D20931: Cache kernel stacks in UMA so that we get NUMA support, better concurrency and statistics with less redundant code..
In D20931#453715, @kib wrote:

I think that the patch is functionally fine.
It looks strange that

  1. For newly created stack, you set the backing object domain policy to prefer domain of the current cpu.
  2. You do not encode any preference when allocating from cache.
Jul 12 2019, 8:31 PM
jeff retitled D20931: Cache kernel stacks in UMA so that we get NUMA support, better concurrency and statistics with less redundant code. from Cache kernel stacks in UMA so that we get NUMA support, better concurrency and statistics with less redundant code. to Cache kernel stacks in UMA so that we get NUMA support, better concurrency and statistics with less redundant code..
Jul 12 2019, 1:05 AM
jeff created D20931: Cache kernel stacks in UMA so that we get NUMA support, better concurrency and statistics with less redundant code..
Jul 12 2019, 1:03 AM
jeff updated the summary of D20930: Add support for a MINBUCKET zone flag..
Jul 12 2019, 1:02 AM
jeff created D20930: Add support for a MINBUCKET zone flag..
Jul 12 2019, 1:01 AM
jeff retitled D20929: Add a UMA option to support cross domain frees while preserving locality for first-touch zones. from Add a UMA option to support cross domain frees while preserving locality for first-touch zones. to Add a UMA option to support cross domain frees while preserving locality for first-touch zones..
Jul 12 2019, 12:58 AM
jeff created D20929: Add a UMA option to support cross domain frees while preserving locality for first-touch zones..
Jul 12 2019, 12:55 AM
jeff added reviewers for D20928: Handle stacked CPU binding.: jhb, kib.

This is a small diff to fix a bug I ran into with another patch. There are very few cases where it is necessary. The other option would be to have a stack of some kind in sched_bind() but that does not seem attractive.

Jul 12 2019, 12:54 AM
jeff created D20928: Handle stacked CPU binding..
Jul 12 2019, 12:53 AM

Jul 10 2019

jeff added inline comments to D20486: Change synchonization rules for page reference counting..
Jul 10 2019, 9:21 PM

Jun 28 2019

jeff added a comment to D20763: Add PG_CACHE_ALLOC..

My recollection is that when I implemented the cache there simply wasn't a lot of traffic for the other free pools and I didn't want to increase fragmentation. I have no objection to doing so now. I do believe we should have some separation for UMA NOFREE zones whether that is a different pool or some other layer I can not say.

Jun 28 2019, 5:47 PM

Feb 25 2019

jeff added a comment to D19337: Improve vmem tuning for platforms without a direct map..

We probably shouldn't enable NUMA on 32 bit platforms. It doesn't make a ton of sense.

Feb 25 2019, 2:22 AM

Feb 24 2019

jeff created D19315: Dynamically allocate per-cpu scheduler state.
Feb 24 2019, 2:53 AM

Dec 18 2018

jeff added inline comments to D17773: UMA limits in zone & more.
Dec 18 2018, 7:35 AM

Nov 21 2018

jeff added a comment to D17465: Socket level scheduling support for Multi Socket system.

I have a more complete version of a similar concept sitting in a local repo. Give me a few weeks to get it together and we can discuss.

Nov 21 2018, 6:42 AM

Oct 30 2018

jeff accepted D17419: Use malloc_domainset(9) instead of malloc_domain(M_WAITOK)..

Thank you for taking the time to iterate and get this right.

Oct 30 2018, 11:40 PM

Oct 17 2018

jeff added a comment to D17420: Use a vm_domainset iterator in keg_fetch_slab()..

I like this

Oct 17 2018, 9:12 PM
jeff added a comment to D17418: Make malloc_domain(9) fall back to other domains..

I still feel it would be nice to make kmem_ and malloc_ take a policy possibly with an inline that converts a number into a preferred policy. There is likely no reason that kmem_ allocations should fail if the requested domain is unavailable.

Oct 17 2018, 9:11 PM