- User Since
- Mar 12 2014, 1:00 AM (323 w, 5 d)
Sat, May 23
Fri, May 22
Create the radix SMR structures earlier, during SI_SUB_SMR, right after
SI_SUB_VM. Use a global list of SMR structures to perform deferred
initialization of per-CPU structures. This allows us to choose a layout
for per-CPU data at SI_SUB_CPU.
Thu, May 21
Seems ok to me aside from the comment.
This fixes the problem for me.
Wed, May 20
- Simplify layout calculation.
- Add a block comment above pcpu_layout().
- Fix cpuhead initialization.
- Weaken the amd64 assertion about sizeof(struct pcpu).
Tue, May 19
Fix a syntax error reported by pho@.
@avg what do you think of this patch?
Mon, May 18
Sat, May 16
Fri, May 15
Thu, May 14
Don't forget to destroy the zone.
Wed, May 13
I see the recursion: socantrcvmore_locked() calls sorwakeup_locked(), which may call sowakeup(), which may call soisconnected() if an accept filter decided to accept the connection based on data resident in the receive buffer. In this case, the so_state update is rolled back...
- Restore DPCPU indirection in kernel modules for now. The value of DPCPU_START is kld-specific, so DPCPU_BASE_OFFSET() gives the wrong value for dpcpu fields allocated from the kld region (the modspace field).
- Fix a bug in uma_pcpu_init2(): when marking the bootstrap region as allocated, we have to allocate the region at the same granularity as it gets freed, i.e., a page at a time.
Tue, May 12
Looking at DPDK, it wants to determine the number of huge pages available in each domain before performing any allocation. I think the only way to get that information today is to read vm.phys_free, which is meant to be human-readable. We could add a set of sysctls vm.domain.<domidx>.largepage.<psind>.free to provide that information.
I thought the socket and sockbuf lock already had a well-defined lock order, the socket lock is acquired first. There are many examples in e.g., the poll and kevent code for sockets.
Mon, May 11
Remove executable bits.
I verified that head panics when running the test suite with kern.geom.mirror.launch_mirror_before_timeout=0, and that it passes with this patch applied.
Sun, May 10
Sat, May 9
Fri, May 8
- Add a vm_phys_seg entry for the bootstrap pcpu region.
- When pcpu_layout() backs the rest of the bootstrap region with 2MB pages, it must subtract 2MB from the allocation size for domain 0, since it is already backed by the initial pcpu bootstrap allocation.
- Rebase on D24755 to shrink the uma_core.c diff slightly.
Remove handling of pcpu kegs from zone_kva_available(). Now that such
kegs never use startup_alloc(), we don't need code to switch them from
startup_alloc() to the real pcpu slab allocator.