User Details
- User Since
- Dec 14 2014, 5:52 AM (519 w, 1 d)
Tue, Nov 5
Apr 9 2024
Apr 8 2024
Just so we're all on the same page, I want to point out the following: While this patch achieves contiguity, it doesn't guarantee 2 MB alignment. Let 'F' represent a fully populated 2 MB reservation, 'E', represent a partially populated reservation, where the population begins in the middle and goes to the end, and 'B' is the complement of 'E', where the population begins at the start and ends in the middle. Typically, the physical memory allocation for one chunk of stacks on amd64 looks like 'EFFFB'. While it would be nice to achieve 'FFFF', this patch is already a great improvement over the current state of affairs.
Apr 7 2024
Update to reflect committed change.
Apr 6 2024
Eliminate an unnecessary variable.
Add KASSERT to vm_reserv_is_populated().
Apr 3 2024
Rename pmap_enter_object()'s helpers to not have 64k or 2m in their names.
Apr 1 2024
Mar 30 2024
Mar 24 2024
Reopen after reservation size fix was committed.
Mar 18 2024
Correct VM_NFREEORDER for 16KB page size.
Mar 13 2024
Teach sysctl vm.pmap.kernel_maps to correctly count ATTR_CONTIGUOUS superpages when the base page size is 16KB.
Mar 12 2024
Add (void) casts. Refill a comment whose lines were too long.
Mar 10 2024
I'd really like to see this committed.
Jan 28 2024
Despite the long name, it's still two characters shorter than the original code. :-)
Jan 27 2024
What happens if we increase VM_NFREEORDER, e.g., 262144, to support 1 GB allocations? I think that you might might want to have a different constant to cap the lazy init chunk size.
Jan 18 2024
Jan 11 2024
Dec 21 2023
Dec 1 2023
Nov 30 2023
Eliot and I have addressed most of Mark's comments.
Nov 29 2023
Nov 28 2023
Nov 27 2023
Thanks, Mark. We'd like to see the output from sysctl vm.pmap.kernel_maps too.
Nov 25 2023
There was one function where PTE_TO_PHYS/PHYS_TO_PTE conversion hadn't been done yet.
Nov 24 2023
pmap_kremove_device: fix 2MB mapping removal; optimize TLB invalidation
Nov 23 2023
Nov 13 2023
Nov 12 2023
Nov 11 2023
I'm convinced that it's correct. That said, even the person who reported the problem is probably not exercising this while loop:
while (!vm_addr_ok(VM_PAGE_TO_PHYS(m_ret), size, alignment, boundary) && ...
We may want to issue this as an errata for 14.0, so can we have a minimal version without style changes?
Nov 10 2023
Nov 9 2023
Nov 2 2023
Oct 26 2023
Oct 20 2023
Oct 18 2023
Oct 17 2023
Oct 10 2023
Oct 8 2023
@markj Are you overloaded? Should I commit this?
For the most part, these changes are setting the guarded bit on mappings that are already no-execute. Is there a reason to do that? To be clear, I don't object to doing so. It just seems redundant.