User Details
- User Since
- Dec 14 2014, 5:52 AM (387 w, 3 d)
Apr 14 2022
Apr 13 2022
Apr 5 2022
Mar 28 2022
Peter, can you please test this?
I do, however, think that this deserves explanation in the form of a comment.
Mar 25 2022
Andrew, I'll give this patch a final look over the weekend.
Mar 19 2022
Mar 18 2022
Mar 16 2022
Mar 15 2022
Mar 14 2022
Feb 18 2022
Feb 16 2022
Feb 15 2022
Jan 31 2022
Jan 28 2022
Hmm. At first this didn't make sense to me. The "assertions" were written this way so that systm.h wouldn't have to be included, but the prototype for panic() is provided by systm.h. So, this code might as well have used KASSERT all along.
Jan 27 2022
I'm quite surprised to see this feature supported by the Graviton 2. I would only have expected to see this feature on micro-architectures that implement SMT/hyperthreading. In fact, the last paragraph of https://developer.arm.com/documentation/101811/0101/Address-spaces-in-AArch64 essentially says so. I wonder if it's simply a NOP on Graviton 2.
Jan 20 2022
Jan 19 2022
Jan 18 2022
Jan 11 2022
Jan 9 2022
Jan 8 2022
I'll take a look at this tomorrow.
Here is the start of pmap_qenter(). Note the right shift followed by left shift:
Jan 7 2022
As an aside, I just verified that arm64 is already setting the equivalent bits.
Jan 6 2022
Jan 3 2022
Jan 1 2022
@andrew didn't you have a patch for implementing CnP support? If so, could you please post it?
Add comments at the head of pmap_invalidate_{all,page,range}(). In particular, document pmap_invalidate_all() as always invalidating all intermediate-level entries.
Dec 31 2021
Implement Mark's suggested optimization plus a related optimization to handling a singleton valid range as the last mapping in the PTP. Please check the logic carefully.
Dec 29 2021
Dec 28 2021
Dec 27 2021
Dec 26 2021
Dec 24 2021
Dec 23 2021
Should we introduce analogous functions on amd64 and riscv?
Update comment. Add level KASSERT.
Dec 22 2021
As an aside, while reviewing all of the callers to pmap_pte(), I noticed that pmap_is_prefaultable() is incorrectly implemented. It is going to return FALSE when it should return TRUE, and occasionally the opposite.
Dec 21 2021
See https://reviews.freebsd.org/D33597 for the pmap_pte_exists() prototype.
Dec 20 2021
I'm confused. I don't see how this change makes any functional difference. The original code set *level == 0 and returned NULL when the L0 entry was not L0_TABLE, and only under those circumstances.
Dec 16 2021
Dec 15 2021
In the commit message, I would somehow explain that the consequence of the bug was only that the wrong reservations might be broken, not that unaligned or inappropriately boundary crossing memory would be returned by contigmalloc(), et al.
Dec 14 2021
Dec 13 2021
Dec 12 2021
Dec 11 2021
Dec 6 2021
Dec 5 2021
Dec 4 2021
I think that's all I have to say.
Dec 3 2021
Nov 29 2021
Individually, the updated comments make perfect sense from a purely localized standpoint, that is, they explain what is happening in that place. However, if I put myself in the place of a first-time reader of this code, the question that I would ask that isn't explained by either the old or updated comments is why any data is paged in at shutdown time.