Page MenuHomeFreeBSD

alc (Alan Cox)
User

Projects

User Details

User Since
Dec 14 2014, 5:52 AM (208 w, 1 d)

Recent Activity

Yesterday

alc committed rS341766: blst_leaf_alloc updates bighint for a leaf when an allocation is successful.
blst_leaf_alloc updates bighint for a leaf when an allocation is successful
Sun, Dec 9, 5:55 PM
alc closed D18474: Stop updating leaf hint after last block allocation when cursor affected resul.
Sun, Dec 9, 5:55 PM

Sat, Dec 8

alc accepted D18474: Stop updating leaf hint after last block allocation when cursor affected resul.

Ask Peter to test this patch.

Sat, Dec 8, 4:38 AM
alc added inline comments to D18474: Stop updating leaf hint after last block allocation when cursor affected resul.
Sat, Dec 8, 4:05 AM
alc added inline comments to D18474: Stop updating leaf hint after last block allocation when cursor affected resul.
Sat, Dec 8, 3:46 AM

Fri, Dec 7

alc added inline comments to D18474: Stop updating leaf hint after last block allocation when cursor affected resul.
Fri, Dec 7, 5:02 PM

Wed, Dec 5

alc committed rS341602: Terminate a blist_alloc search when a blst_meta_alloc call fails with.
Terminate a blist_alloc search when a blst_meta_alloc call fails with
Wed, Dec 5, 6:29 PM
alc closed D17999: Avoid testing bighint in blist_alloc.
Wed, Dec 5, 6:29 PM

Sun, Dec 2

alc added inline comments to D17999: Avoid testing bighint in blist_alloc.
Sun, Dec 2, 8:06 PM

Thu, Nov 29

alc accepted D18374: Adjust v_freecnt when blacklisting pages..
Thu, Nov 29, 3:37 PM

Wed, Nov 28

alc added inline comments to D17226: Implement M_NEXTFIT..
Wed, Nov 28, 7:38 AM
alc added inline comments to D17226: Implement M_NEXTFIT..
Wed, Nov 28, 7:17 AM

Tue, Nov 27

alc accepted D18345: Fix assert condition in pmap_large_unmap().
Tue, Nov 27, 8:37 PM
alc added inline comments to D18345: Fix assert condition in pmap_large_unmap().
Tue, Nov 27, 5:15 PM

Mon, Nov 26

alc added inline comments to D17226: Implement M_NEXTFIT..
Mon, Nov 26, 4:40 PM

Sun, Nov 25

alc accepted D17227: Use M_NEXTFIT in memguard..
Sun, Nov 25, 6:22 PM
alc accepted D18329: Avoid unneeded check in vmspace_alloc()..
Sun, Nov 25, 5:50 PM

Sat, Nov 24

alc committed rS340914: blist_meta_alloc assumes that mask=scan->bm_bitmap is nonzero. But if the.
blist_meta_alloc assumes that mask=scan->bm_bitmap is nonzero. But if the
Sat, Nov 24, 9:52 PM
alc closed D18058: Handle the possiblity that the cursor has already passed the free blocks of a meta-node..
Sat, Nov 24, 9:52 PM
alc added a comment to D18058: Handle the possiblity that the cursor has already passed the free blocks of a meta-node..
In D18058#388822, @pho wrote:

D18058.id50652.diff ran the stress2/misc/stealer.sh test scenario for 11 hours before freezing up: https://people.freebsd.org/~pho/stress/log/dougm015.txt

Sat, Nov 24, 9:42 PM
alc added a comment to D18058: Handle the possiblity that the cursor has already passed the free blocks of a meta-node..

Allow bighint to be updated for a meta-node where the cursor lies ahead of all nonempty children, or even when there are no nonempty children, since blist_alloc depends on a reduction of the root bighint to allow a failed allocation to finish.

Alternatively, we could change the test in blist_alloc to depend on something other than bighint. This is the only case where having a too-large bighint breaks things.

Sat, Nov 24, 9:42 PM

Wed, Nov 21

alc added inline comments to D17226: Implement M_NEXTFIT..
Wed, Nov 21, 6:53 PM
alc added inline comments to D17227: Use M_NEXTFIT in memguard..
Wed, Nov 21, 6:32 PM
alc accepted D18058: Handle the possiblity that the cursor has already passed the free blocks of a meta-node..

Yes, this is clearly a bug. Hopefully, it is the one that Peter is tripping over.

Wed, Nov 21, 5:11 PM

Mon, Nov 19

alc added inline comments to D13671: Collection of fixes for OOM handling of some corner cases..
Mon, Nov 19, 5:28 PM
alc committed rS340637: Use swp_pager_isondev() throughout. Submitted by: ota@j.email.ne.jp.
Use swp_pager_isondev() throughout. Submitted by: ota@j.email.ne.jp
Mon, Nov 19, 5:17 PM
alc closed D16712: inline swp_pager_isondev() function and use it 2 other places.
Mon, Nov 19, 5:17 PM
alc added a comment to D16712: inline swp_pager_isondev() function and use it 2 other places.
In D16712#385630, @alc wrote:
In D16712#385624, @kib wrote:

Prefer to remove the inline keyword.

Okay, I'm going to commit this change in a few hours without the inline keyword.

Mon, Nov 19, 5:04 PM

Sun, Nov 18

alc added a comment to D16712: inline swp_pager_isondev() function and use it 2 other places.
In D16712#385624, @kib wrote:

Prefer to remove the inline keyword.

Sun, Nov 18, 11:11 PM
alc added inline comments to D13671: Collection of fixes for OOM handling of some corner cases..
Sun, Nov 18, 8:57 PM
alc committed rS340546: Tidy up vm_map_simplify_entry() and its recently introduced helper.
Tidy up vm_map_simplify_entry() and its recently introduced helper
Sun, Nov 18, 1:27 AM
alc closed D17635: Avoid duplicate set_max_free after unlink.
Sun, Nov 18, 1:27 AM

Sat, Nov 17

alc added a comment to D17635: Avoid duplicate set_max_free after unlink.

I like the introduction of the #define, but I'd to rename it to have the suffix _MASK. The point being that when a reader sees a use case as opposed to the definition the reader doesn't think that it's yet another flag.

Sat, Nov 17, 6:30 PM

Fri, Nov 16

alc added inline comments to D17635: Avoid duplicate set_max_free after unlink.
Fri, Nov 16, 6:47 PM
alc added a comment to D5603: ASLR.

On a somewhat related note, the version of jemalloc that we use in HEAD and 12.x is frequently allocating small, unaligned chunks from the kernel. In contrast, older versions were (always?) allocating large, aligned chunks. You can see the effects here: P196. Clang reads source files using mmap(2), and between most mapped files there is a sliver of anonymous heap. For "buildworld", I estimate that this has reduced superpage promotions by 1/3. The explicit clustering of anonymous memory allocations by this patch likely cures this problem.

Fri, Nov 16, 6:32 PM
alc added inline comments to D17980: simplify next_leaf.
Fri, Nov 16, 6:19 PM
alc added a comment to D5603: ASLR.

ASR has a measurable performance hit; ASLR does not.

I'd be quite interested in the detail here if you can provide a link or reference to this.

How expensive is pulling from the entropy pool at least once, at most five times, per call to mmap?

Fri, Nov 16, 5:56 PM
alc added a comment to D17635: Avoid duplicate set_max_free after unlink.

Later today, I'm going to commit the bits here that are orthogonal to the main point of this patch. In other words, the bits that migrated here from an earlier, abandoned review that Kostik had asked about last week (if I recall correctly).

Fri, Nov 16, 5:26 PM
alc added inline comments to D17635: Avoid duplicate set_max_free after unlink.
Fri, Nov 16, 5:15 PM

Thu, Nov 15

alc accepted D17981: arm64 pmap: Handle kernel mappings in pmap_remove_l2()..
Thu, Nov 15, 9:51 PM
alc accepted D17981: arm64 pmap: Handle kernel mappings in pmap_remove_l2()..

Aside from my one comment, this looks fine. Once that comment is addressed, consider this change "Accepted" by me.

Thu, Nov 15, 5:11 AM
alc added inline comments to D17981: arm64 pmap: Handle kernel mappings in pmap_remove_l2()..
Thu, Nov 15, 5:07 AM

Sat, Nov 10

alc accepted D12635: Allow allocations across meta boundaries.
Sat, Nov 10, 8:22 PM
alc added a comment to D17937: Avoid calling pmap_enter(psind = 1) on the kernel_pmap..

arm64 is missing code from pmap_remove_l2() that reinstalls the (empty) page table page in the kernel pmap.

Sat, Nov 10, 7:27 PM
alc added a comment to D17937: Avoid calling pmap_enter(psind = 1) on the kernel_pmap..

In regards to

mt = PHYS_TO_VM_PAGE(*pde & PG_FRAME);

the earlier call to pmap_remove_pde() and its helper function, pmap_remove_kernel_pde(), reinstalled the page table page that mt references, so this is correct code.

Sat, Nov 10, 7:19 PM
alc added inline comments to D12635: Allow allocations across meta boundaries.
Sat, Nov 10, 7:05 PM
alc added inline comments to D12635: Allow allocations across meta boundaries.
Sat, Nov 10, 5:39 PM

Nov 9 2018

alc added inline comments to D17826: Use atomic_fcmpset in pmap_promote_pde()..
Nov 9 2018, 3:49 AM

Nov 7 2018

alc updated subscribers of D17897: Fix a use-after-free in swp_pager_meta_free()..
Nov 7 2018, 10:43 PM

Nov 6 2018

alc accepted D17827: Remove execute permissions from mappings in exec_map and pipe_map..
Nov 6 2018, 8:26 PM

Nov 5 2018

alc added inline comments to D17826: Use atomic_fcmpset in pmap_promote_pde()..
Nov 5 2018, 7:12 AM

Nov 4 2018

alc added inline comments to D17826: Use atomic_fcmpset in pmap_promote_pde()..
Nov 4 2018, 6:10 PM

Oct 28 2018

alc added inline comments to D14005: initializing map->header.eflags allows skipping some &map->header tests.
Oct 28 2018, 7:33 PM
alc accepted D14005: initializing map->header.eflags allows skipping some &map->header tests.

I would also suggest mentioning the use of this new flag in the comment at the top of the struct vm_map definition where we talk about min and max offset.

Oct 28 2018, 6:57 PM
alc added inline comments to D14005: initializing map->header.eflags allows skipping some &map->header tests.
Oct 28 2018, 6:44 PM
alc added reviewers for D14005: initializing map->header.eflags allows skipping some &map->header tests: kib, markj.
Oct 28 2018, 6:23 PM
alc added a comment to D17635: Avoid duplicate set_max_free after unlink.

I would like to see D14005 completed and committed first.

Oct 28 2018, 5:17 PM

Oct 27 2018

alc committed rS339819: Eliminate typically pointless calls to vm_fault_prefault() on soft, copy-.
Eliminate typically pointless calls to vm_fault_prefault() on soft, copy-
Oct 27 2018, 5:50 PM
alc closed D17367: Eliminate pointless calls to vm_fault_prefault().
Oct 27 2018, 5:50 PM
alc added a comment to D17367: Eliminate pointless calls to vm_fault_prefault().
In D17367#376853, @kib wrote:
In D17367#376752, @alc wrote:
I *really* wish that vm_fault() knew whether the copy-on-write fault was caused by a protection violation or an invalid mapping.  I think that a better heuristic for determining whether to call vm_fault_prefault() would be based on that knowledge.  Specifically, I would call vm_fault_prefault() when the mapping was invalid.

We can try to approximately calculate this information, but it is not reliable even on x86. For instance, we get a nonsensical error code for spurious page faults. But still, translating the bits from x86 exceptional error code into some additional information to vm_fault() is easy.

It might be that vm_fault() should be prepared to not get the hint about the fault cause at all.

Oct 27 2018, 5:25 PM

Oct 21 2018

alc added inline comments to D17635: Avoid duplicate set_max_free after unlink.
Oct 21 2018, 11:19 PM
alc added inline comments to D17635: Avoid duplicate set_max_free after unlink.
Oct 21 2018, 11:03 PM
alc added a comment to D17635: Avoid duplicate set_max_free after unlink.

This seems plausible.

Oct 21 2018, 8:16 PM
alc added inline comments to D17635: Avoid duplicate set_max_free after unlink.
Oct 21 2018, 8:06 PM
alc added a comment to D17367: Eliminate pointless calls to vm_fault_prefault().

I *really* wish that vm_fault() knew whether the copy-on-write fault was caused by a protection violation or an invalid mapping. I think that a better heuristic for determining whether to call vm_fault_prefault() would be based on that knowledge. Specifically, I would call vm_fault_prefault() when the mapping was invalid.

Oct 21 2018, 7:15 PM
alc added inline comments to D17639: address late reviewer concerns about helper functions patch.
Oct 21 2018, 6:18 PM
alc added a comment to D17635: Avoid duplicate set_max_free after unlink.

This creates an edge-case that we've never had to think about before, that we have overlapping entries in both the list and binary search tree (BST) of entries. Specifically, what I really don't like is that you are performing a splay on such a BST. So, now, I have to think about how splay will handle that edge-case.

Oct 21 2018, 6:03 PM
alc added inline comments to D17610: Use helper functions to reduce code duplication in merging vm_entry neighbors.
Oct 21 2018, 5:40 PM

Oct 20 2018

alc added a comment to D17622: Use adj_free field in vm_map_entry_t instead of computing e->next->start - e->end.

Before making any of these changes, I would like to see an argument made as to whether the adj_free field is actually of benefit to us. For example, does it actually reduce the number of map entries that findspace() touches, and thereby reduce the number of cache misses? Or does its small contribution to the size of a map entry actually result in more cache misses?

Oct 20 2018, 9:19 PM
alc added inline comments to D14005: initializing map->header.eflags allows skipping some &map->header tests.
Oct 20 2018, 8:33 PM
alc accepted D17626: Add an assertion to pmap_enter()..
Oct 20 2018, 8:27 PM
alc added inline comments to D17626: Add an assertion to pmap_enter()..
Oct 20 2018, 8:12 PM

Oct 19 2018

alc added inline comments to D13671: Collection of fixes for OOM handling of some corner cases..
Oct 19 2018, 5:03 PM

Oct 18 2018

alc accepted D17612: Do not flush cache for PCIe config window..
Oct 18 2018, 8:18 PM
alc added a comment to D17070: pmap_large_map() KPI.

This can be closed.

Oct 18 2018, 5:08 PM
alc accepted D17439: Make it possible to disable NUMA support with a tunable..
Oct 18 2018, 5:02 PM
alc accepted D17304: Swap in processes unless there's a global memory shortage..
Oct 18 2018, 4:08 PM
alc accepted D17416: Initialize global domainsets during boot..
Oct 18 2018, 6:21 AM

Oct 16 2018

alc accepted D17070: pmap_large_map() KPI.

My only remaining unarticulated concern is that an errant call to pmap_large_map_wb_large() could allocate page table pages. (I think that function's outer loop should look more like pmap_protect() or pmap_remove().) However, assuming no errant calls, this revision looks good.

Oct 16 2018, 4:22 PM
alc accepted D17483: Don't import 0 into the quantum cache..
Oct 16 2018, 3:43 PM

Oct 15 2018

alc added inline comments to D17070: pmap_large_map() KPI.
Oct 15 2018, 6:54 PM
alc added a comment to D17070: pmap_large_map() KPI.

These are my last comments.

Oct 15 2018, 5:14 PM
alc added inline comments to D17070: pmap_large_map() KPI.
Oct 15 2018, 5:03 PM
alc added inline comments to D17070: pmap_large_map() KPI.
Oct 15 2018, 4:51 PM
alc added inline comments to D17070: pmap_large_map() KPI.
Oct 15 2018, 4:45 PM
alc added inline comments to D17483: Don't import 0 into the quantum cache..
Oct 15 2018, 4:37 PM

Oct 9 2018

alc accepted D17483: Don't import 0 into the quantum cache..

Reported by: Brett Gutstein <bgutstein@rice.edu>

Oct 9 2018, 4:51 PM
alc added a comment to D17070: pmap_large_map() KPI.

I'm done.

Oct 9 2018, 4:48 PM

Oct 7 2018

alc added inline comments to D17070: pmap_large_map() KPI.
Oct 7 2018, 7:52 PM
alc added inline comments to D17070: pmap_large_map() KPI.
Oct 7 2018, 7:35 PM
alc added inline comments to D17070: pmap_large_map() KPI.
Oct 7 2018, 7:23 PM
alc added inline comments to D17070: pmap_large_map() KPI.
Oct 7 2018, 6:55 PM
alc added inline comments to D17070: pmap_large_map() KPI.
Oct 7 2018, 6:51 PM
alc added inline comments to D17070: pmap_large_map() KPI.
Oct 7 2018, 6:38 PM
alc added inline comments to D17070: pmap_large_map() KPI.
Oct 7 2018, 6:27 PM
alc added inline comments to D17070: pmap_large_map() KPI.
Oct 7 2018, 5:35 PM

Oct 5 2018

alc added inline comments to D17070: pmap_large_map() KPI.
Oct 5 2018, 3:51 PM
alc added inline comments to D17070: pmap_large_map() KPI.
Oct 5 2018, 3:42 PM
alc added inline comments to D17070: pmap_large_map() KPI.
Oct 5 2018, 3:23 PM

Oct 4 2018

alc added inline comments to D17070: pmap_large_map() KPI.
Oct 4 2018, 5:43 PM