kyua test -k /usr/tests/sys/Kyuafile
Details
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
Why did you convert all mbuf zones to contig? Only jumbo 9k and jumbo 16k really require that.
else if ((keg->uk_flags & UMA_ZONE_CONTIG) != 0 && keg->uk_ppera > 1)
keg->uk_allocf = contig_alloc;
Note that CONTIG just specifies a constraint. It does not force the allocator change unless we're allocating more than one page. This was specified for mbufs because drivers do expect them to be contig and if UMA makes a layout decision that forces them into multiple pages we need to be sure to honor the constraint.
I see. That's because in next review we may produce multipage slabs with an allocation crossing a boundary.
Yes, that's right. In fact, the smaller mbufs are actually still okay with multipage slabs due to their power-of-2 size, but I thought it was better to make the constraint explicit.
sys/i386/i386/pmap.c | ||
---|---|---|
907 ↗ | (On Diff #66923) | Aren't you relaxing a constraint here? vm_paddr_t is always 64 bits wide but the PDPT physical address has to fit in CR3, which is a 32-bit register. |
sys/i386/i386/pmap.c | ||
---|---|---|
907 ↗ | (On Diff #66923) | You're right, I'll revert the pmap changes and just add UMA_ZONE_CONTIG to the flags here. |
review feedback: leave pmap_pdpt_allocf alone, just tag the zone.
Also tag the zones using slb_uma_real_alloc (it does contig allocs).