- User Since
- Aug 6 2017, 12:45 AM (128 w, 6 d)
I am happy with this change but I have not followed all code paths to be sure none were left out.
The goto is unfortunate but I see that without the loop becomes even weirder
Thu, Jan 23
Merge to latest uma changes.
Wed, Jan 22
Correct return values. Don't send pager errors back to vm_fault().
mea culpa. Can you commit to 12.x as well?
Fix a merge issue.
Decrease indent. Remove dead comment. Add missing KERN_RESTART define.
Tue, Jan 21
Mon, Jan 20
The mode == 0 issue is orthogonal. This guarantee was already broken for any filesystem that supported shared locks.
I agree with mjg. Inactive has been a half promise since shared locking went in. This is really my mess originally. Better to consistently not make the promise and clean up the interface.
Sun, Jan 19
Sat, Jan 18
Fri, Jan 17
This is a nice simplification
For the benefit of other readers; Ryan and I have discussed attempting a contig allocation with DMAP KVA first and then falling back to regular kva allocated sparse allocation. We could do this in the UMA multi-page allocator or natively in kmem_*. This would have the advantage that pmap_kextract() is very cheap and we use it to find the slab and also the domain for NUMA. It would have a disadvantage that it may increase memory fragmentation. If we take this approach we may want to only use power of two allocation sizes 'ppera' so that we don't negatively impact phys fragmentation.
else if ((keg->uk_flags & UMA_ZONE_CONTIG) != 0 && keg->uk_ppera > 1)
keg->uk_allocf = contig_alloc;
Thu, Jan 16
Should we make something specific to this pattern? vcancel()? vabandon()? vabort()
Wed, Jan 15
I agree that this whole thing needs to be holistically reworked. I do not object to this patch but I would like kib to review.
I do not object to this patch but I would be more comfortable with kib reviewing.
Tue, Jan 14
Mon, Jan 13
I am happy to tweak parameters and possibly function names in a follow up patch.