Page MenuHomeFreeBSD

bnovkov (Bojan Novković)
User

Projects

User Details

User Since
Jan 29 2022, 5:50 PM (129 w, 6 d)

Recent Activity

Thu, Jul 25

bnovkov updated the diff for D45863: vm: Introduce reservation-aware NOFREE page allocation routine.

Address @alc 's comments.
The bump allocator state was moved to struct vm_domain.
I was not entirely sure where to place the nofreeq struct within struct vm_domain, so please let me know if you think there's a better position w.r.t. cache usage.

Thu, Jul 25, 4:55 PM

Wed, Jul 24

bnovkov updated the diff for D45863: vm: Introduce reservation-aware NOFREE page allocation routine.

Address @alc 's and @markj 's comments:

Wed, Jul 24, 5:27 PM

Mon, Jul 22

bnovkov added a comment to D45163: vm: Allow kstack pages to come from different domains.
In D45163#1032283, @kib wrote:

What if you revert the order of allocation, first finding some domain which provides enough physical pages to back the stack, and then try to allocate KVA from corresponding arena?

Mon, Jul 22, 6:34 PM

Sun, Jul 21

bnovkov committed rG1cbd613f3343: db_pprint: Properly handle complex pointer types (authored by bnovkov).
db_pprint: Properly handle complex pointer types
Sun, Jul 21, 5:32 PM
bnovkov committed rG82f5dfc12139: db_pprint: Fix offset calculation for struct members (authored by bnovkov).
db_pprint: Fix offset calculation for struct members
Sun, Jul 21, 5:32 PM

Wed, Jul 17

bnovkov requested review of D45998: pmap_growkernel: Use VM_ALLOC_NOFREE when allocating pagetable pages.
Wed, Jul 17, 3:50 PM
bnovkov requested review of D45997: vm: Add a KVA arena for M_NEVERFREED allocations.
Wed, Jul 17, 3:38 PM

Mon, Jul 15

bnovkov added a comment to D45863: vm: Introduce reservation-aware NOFREE page allocation routine.
In D45863#1048057, @alc wrote:

Here is the amd64 pmap change:

Mon, Jul 15, 4:17 PM
bnovkov updated the diff for D45863: vm: Introduce reservation-aware NOFREE page allocation routine.

Address @alc 's and @mjg 's comments.

Mon, Jul 15, 4:08 PM

Sun, Jul 14

bnovkov updated the diff for D45863: vm: Introduce reservation-aware NOFREE page allocation routine.

Address @alc 's and @markj 's comments.

Sun, Jul 14, 1:41 PM
bnovkov requested review of D45970: vm: Introduce {VM_ALLOC, PG}_NOFREE flags.
Sun, Jul 14, 1:33 PM

Fri, Jul 12

bnovkov added inline comments to D45863: vm: Introduce reservation-aware NOFREE page allocation routine.
Fri, Jul 12, 5:12 PM

Thu, Jul 4

bnovkov added a comment to D45863: vm: Introduce reservation-aware NOFREE page allocation routine.
In D45863#1045744, @mjg wrote:

did fragmentation drop though?

Thu, Jul 4, 2:56 PM

Wed, Jul 3

bnovkov requested review of D45863: vm: Introduce reservation-aware NOFREE page allocation routine.
Wed, Jul 3, 7:10 PM
bnovkov abandoned D45044: uma: retire UMA_MD_SMALL_ALLOC.
Wed, Jul 3, 7:10 PM
bnovkov abandoned D45043: vm_reserv: introduce unmanaged reservations.
Wed, Jul 3, 7:10 PM
bnovkov abandoned D45046: vm_reserv: add reservation-aware UMA small_alloc .

Thanks, your answers clear things up! I had an incomplete overview of the issue, I see now that its best too keep VM_FREEPOOL_DIRECT.

Wed, Jul 3, 7:08 PM

Tue, Jul 2

bnovkov added a comment to D45046: vm_reserv: add reservation-aware UMA small_alloc .

Reading this and the related patches, I am a bit uncertain as to why this code needs to live in the vm_reserv layer. From my reading, UMA's small page allocator is effectively using this code to maintain a list of 2MB allocations from which we draw slab allocations; a separate list is used to segregate slabs for UMA_ZONE_NOFREE zones.

What problems does this vm_reserv extension solve? I can see that this will segregate NOFREE slabs, which is a good thing, but we don't need to modify the vm_reserv layer for that; UMA could easily maintain a linked list of 2MB chunks from which NOFREE slabs are allocated. Once a chunk is exhausted, try to allocate a new one and put it at the head of the list, otherwise fall back to regular 4KB slab allocations. The NOFREE case is simple and doesn't need a lot of machinery.

Tue, Jul 2, 3:40 PM

Jun 16 2024

bnovkov committed rG774549fe06ac: riscv pmap: Release PTP reference on leaf ptpage allocation failure (authored by bnovkov).
riscv pmap: Release PTP reference on leaf ptpage allocation failure
Jun 16 2024, 4:21 PM
bnovkov closed D45580: riscv pmap: Release PTP reference on leaf ptpage allocation failure.
Jun 16 2024, 4:21 PM
bnovkov committed rGe8816b4b66ad: riscv pmap: Introduce 'pmap_abort_ptp' (authored by bnovkov).
riscv pmap: Introduce 'pmap_abort_ptp'
Jun 16 2024, 4:21 PM
bnovkov committed rG858ead4bcefb: powerpc_mmu_radix: Release PTP reference on leaf ptpage allocation failure (authored by bnovkov).
powerpc_mmu_radix: Release PTP reference on leaf ptpage allocation failure
Jun 16 2024, 4:21 PM
bnovkov committed rG200de4dc0716: powerpc_mmu_radix: Introduce 'pmap_abort_ptp' (authored by bnovkov).
powerpc_mmu_radix: Introduce 'pmap_abort_ptp'
Jun 16 2024, 4:21 PM
bnovkov committed rG5d4545a2270e: arm64 pmap: Release PTP reference on leaf ptpage allocation failure (authored by bnovkov).
arm64 pmap: Release PTP reference on leaf ptpage allocation failure
Jun 16 2024, 4:21 PM
bnovkov closed D45582: powerpc_mmu_radix: Release PTP reference on leaf ptpage allocation failure.
Jun 16 2024, 4:21 PM
bnovkov closed D45579: riscv pmap: Introduce 'pmap_abort_ptp'.
Jun 16 2024, 4:21 PM
bnovkov committed rGb53b21e8f81a: amd64 pmap: Release PTP reference on leaf ptpage allocation failure (authored by bnovkov).
amd64 pmap: Release PTP reference on leaf ptpage allocation failure
Jun 16 2024, 4:21 PM
bnovkov closed D45581: powerpc_mmu_radix: Introduce 'pmap_abort_ptp'.
Jun 16 2024, 4:21 PM
bnovkov closed D45578: arm64 pmap: Release PTP reference on leaf ptpage allocation failure.
Jun 16 2024, 4:21 PM
bnovkov closed D45577: amd64 pmap: Release PTP reference on leaf ptpage allocation failure.
Jun 16 2024, 4:21 PM
bnovkov added inline comments to D45046: vm_reserv: add reservation-aware UMA small_alloc .
Jun 16 2024, 4:07 PM
bnovkov updated the diff for D45046: vm_reserv: add reservation-aware UMA small_alloc .

Address @kib 's comments.

Jun 16 2024, 4:04 PM

Jun 13 2024

bnovkov updated the summary of D45582: powerpc_mmu_radix: Release PTP reference on leaf ptpage allocation failure.
Jun 13 2024, 4:35 PM
bnovkov updated the summary of D45581: powerpc_mmu_radix: Introduce 'pmap_abort_ptp'.
Jun 13 2024, 4:35 PM
bnovkov requested review of D45582: powerpc_mmu_radix: Release PTP reference on leaf ptpage allocation failure.
Jun 13 2024, 4:35 PM
bnovkov requested review of D45581: powerpc_mmu_radix: Introduce 'pmap_abort_ptp'.
Jun 13 2024, 4:35 PM
bnovkov updated the summary of D45580: riscv pmap: Release PTP reference on leaf ptpage allocation failure.
Jun 13 2024, 4:31 PM
bnovkov updated the summary of D45579: riscv pmap: Introduce 'pmap_abort_ptp'.
Jun 13 2024, 4:31 PM
bnovkov requested review of D45580: riscv pmap: Release PTP reference on leaf ptpage allocation failure.
Jun 13 2024, 4:31 PM
bnovkov requested review of D45579: riscv pmap: Introduce 'pmap_abort_ptp'.
Jun 13 2024, 4:30 PM
bnovkov updated the summary of D45578: arm64 pmap: Release PTP reference on leaf ptpage allocation failure.
Jun 13 2024, 4:28 PM
bnovkov requested review of D45578: arm64 pmap: Release PTP reference on leaf ptpage allocation failure.
Jun 13 2024, 4:28 PM
bnovkov updated the summary of D45577: amd64 pmap: Release PTP reference on leaf ptpage allocation failure.
Jun 13 2024, 4:27 PM
bnovkov requested review of D45577: amd64 pmap: Release PTP reference on leaf ptpage allocation failure.
Jun 13 2024, 4:27 PM

Jun 9 2024

bnovkov added a comment to D45046: vm_reserv: add reservation-aware UMA small_alloc .

I spent some time evaluating this patch with four different metrics (thanks @markj for the first two):

  • Number of reservations with at least one NOFREE page
  • Number of reservations with at least one UMA slab, excluding NOFREE slabs
  • vm.pde.promotions
  • vm.pde.mappings
Jun 9 2024, 4:26 PM
bnovkov updated the diff for D45044: uma: retire UMA_MD_SMALL_ALLOC.

Regenerate diff.

Jun 9 2024, 4:09 PM

Jun 7 2024

bnovkov added inline comments to D45502: arm64 pmap: Defer bti lookup.
Jun 7 2024, 9:38 PM

Jun 5 2024

bnovkov added a comment to D45046: vm_reserv: add reservation-aware UMA small_alloc .

I spent some time evaluating this patch with four different metrics (thanks @markj for the first two):

  • Number of reservations with at least one NOFREE page
  • Number of reservations with at least one UMA slab, excluding NOFREE slabs
  • vm.pde.promotions
  • vm.pde.mappings
Jun 5 2024, 5:55 PM
bnovkov updated the diff for D45046: vm_reserv: add reservation-aware UMA small_alloc .

Update vm_reserv_uma_small_alloc to retry if someone else filled up a partial reservation.

Jun 5 2024, 5:34 PM

May 27 2024

bnovkov committed rG4c053c17f2c8: zfs: Update use of UMA-related symbols in arc_available_memory (authored by bnovkov).
zfs: Update use of UMA-related symbols in arc_available_memory
May 27 2024, 1:48 PM

May 26 2024

bnovkov added a comment to D45368: uma: Fix improper uses of UMA_MD_SMALL_ALLOC.

What about arc_available_memory() in sys/contrib/openzfs/module/os/freebsd/zfs/arc_os.c? Isn't that still broken?

May 26 2024, 10:03 PM
bnovkov committed rGd25ed6504383: uma: Fix improper uses of UMA_MD_SMALL_ALLOC (authored by bnovkov).
uma: Fix improper uses of UMA_MD_SMALL_ALLOC
May 26 2024, 2:28 PM
bnovkov closed D45368: uma: Fix improper uses of UMA_MD_SMALL_ALLOC.
May 26 2024, 2:28 PM
bnovkov requested review of D45368: uma: Fix improper uses of UMA_MD_SMALL_ALLOC.
May 26 2024, 8:08 AM

May 25 2024

bnovkov accepted D44739: arm64/vmm: Add breakpoint and single-stepping support.

Looks good!

May 25 2024, 9:48 PM
bnovkov committed rG0a44b8a56d23: vm: Simplify startup page dumping conditional (authored by bnovkov).
vm: Simplify startup page dumping conditional
May 25 2024, 5:26 PM
bnovkov committed rGda76d349b6b1: uma: Deduplicate uma_small_alloc (authored by bnovkov).
uma: Deduplicate uma_small_alloc
May 25 2024, 5:25 PM
bnovkov closed D45085: vm: simplify conditional for dumping startup pages.
May 25 2024, 5:25 PM
bnovkov closed D45084: uma: deduplicate uma_small_alloc.
May 25 2024, 5:25 PM

May 20 2024

bnovkov updated the diff for D45043: vm_reserv: introduce unmanaged reservations.

Address @kib 's comment - unmanaged reservations are now distinguished using an invalid vm_object value instead of a separate variable.

May 20 2024, 7:13 PM

May 18 2024

bnovkov updated the diff for D44567: bhyve: Add support for specifying VM NUMA configuration.

Update patch.

May 18 2024, 1:57 PM
bnovkov updated the diff for D44566: libvmmapi: Add support for setting up and configuring guest NUMA domains.

Update patch and summary.

May 18 2024, 1:49 PM
bnovkov updated the diff for D44565: vmm: Add support for specifying NUMA configuration.

Reworked patch and updated summary.

May 18 2024, 1:38 PM

May 13 2024

bnovkov added inline comments to D45084: uma: deduplicate uma_small_alloc.
May 13 2024, 7:18 PM
bnovkov updated the diff for D45084: uma: deduplicate uma_small_alloc.

Address multiple comments:

  • enabled UMA_MD_SMALL_ALLOC unconditionally
  • removed redundant include guard in ppc uma_machdep
  • removed obsolete u_int8_t types
May 13 2024, 7:15 PM
bnovkov added inline comments to D45043: vm_reserv: introduce unmanaged reservations.
May 13 2024, 5:23 PM

May 12 2024

bnovkov added a comment to D45163: vm: Allow kstack pages to come from different domains.
In D45163#1030231, @mjg wrote:

why even support something like this?

instead, if pages can't be all be allocated from one domain, the code could be patched to free up whatever it did and try a different one

May 12 2024, 10:24 AM

May 11 2024

bnovkov updated the diff for D45163: vm: Allow kstack pages to come from different domains.

Remove redundant m == NULL check.

May 11 2024, 5:43 PM
bnovkov updated the diff for D45163: vm: Allow kstack pages to come from different domains.

Simplify vm_thread_stack_back page allocation loop.

May 11 2024, 5:15 PM
bnovkov updated the summary of D45163: vm: Allow kstack pages to come from different domains.
May 11 2024, 10:40 AM
bnovkov added inline comments to D38852: vm: improve kstack_object pindex calculation scheme to avoid pindex holes.
May 11 2024, 10:37 AM
bnovkov requested review of D45163: vm: Allow kstack pages to come from different domains.
May 11 2024, 10:34 AM

May 8 2024

bnovkov added inline comments to D45084: uma: deduplicate uma_small_alloc.
May 8 2024, 5:12 PM
bnovkov added inline comments to D45085: vm: simplify conditional for dumping startup pages.
May 8 2024, 4:55 PM
bnovkov updated the diff for D45085: vm: simplify conditional for dumping startup pages.

Add missing arm vmparam.h updates.

May 8 2024, 4:50 PM

May 3 2024

bnovkov updated the diff for D45046: vm_reserv: add reservation-aware UMA small_alloc .

Removed stray UMA code from diff.

May 3 2024, 8:34 PM
bnovkov requested review of D45085: vm: simplify conditional for dumping startup pages.
May 3 2024, 8:26 PM
bnovkov updated the diff for D45044: uma: retire UMA_MD_SMALL_ALLOC.

Address @markj 's comment - uma_small_alloc code deduplication was carved out into a separate revision.

May 3 2024, 8:21 PM
bnovkov requested review of D45084: uma: deduplicate uma_small_alloc.
May 3 2024, 8:09 PM

May 2 2024

bnovkov added a comment to D45045: malloc(9): introduce M_NEVERFREED.
In D45045#1027214, @kib wrote:

Why not M_NOFREE?

M_NOFREE was already taken by sys/mbuf.h, M_NEVERFREED is one of the alternative names proposed by @alc .

May 2 2024, 4:59 PM
bnovkov added inline comments to D45044: uma: retire UMA_MD_SMALL_ALLOC.
May 2 2024, 4:41 PM
bnovkov updated the diff for D45044: uma: retire UMA_MD_SMALL_ALLOC.

Address @mhorne 's and @kib 's comments:

May 2 2024, 4:38 PM

May 1 2024

bnovkov updated the summary of D45045: malloc(9): introduce M_NEVERFREED.
May 1 2024, 1:59 PM
bnovkov updated the test plan for D45046: vm_reserv: add reservation-aware UMA small_alloc .
May 1 2024, 1:57 PM
bnovkov requested review of D45046: vm_reserv: add reservation-aware UMA small_alloc .
May 1 2024, 1:54 PM
bnovkov requested review of D45045: malloc(9): introduce M_NEVERFREED.
May 1 2024, 1:47 PM
bnovkov requested review of D45044: uma: retire UMA_MD_SMALL_ALLOC.
May 1 2024, 1:44 PM
bnovkov requested review of D45043: vm_reserv: introduce unmanaged reservations.
May 1 2024, 1:36 PM

Apr 30 2024

bnovkov accepted D45019: vm: Fix error handling in vm_thread_stack_back().
Apr 30 2024, 7:29 AM

Apr 10 2024

bnovkov committed rG7a79d0669761: vm: improve kstack_object pindex calculation to avoid pindex holes (authored by bnovkov).
vm: improve kstack_object pindex calculation to avoid pindex holes
Apr 10 2024, 3:39 PM
bnovkov closed D38852: vm: improve kstack_object pindex calculation scheme to avoid pindex holes.
Apr 10 2024, 3:39 PM

Apr 8 2024

bnovkov added inline comments to D40575: Implement the Free Memory Fragmentation Index (FMFI) metric.
Apr 8 2024, 6:28 PM
bnovkov added a comment to D40772: Tentative physical memory compaction.

As promised, I've removed some redundant bits from the patch, it should be a bit clearer now.

Apr 8 2024, 6:17 PM
bnovkov updated the diff for D40772: Tentative physical memory compaction.

Regenerate and simplify patch.

Apr 8 2024, 6:00 PM
bnovkov added inline comments to D38852: vm: improve kstack_object pindex calculation scheme to avoid pindex holes.
Apr 8 2024, 5:39 PM

Apr 7 2024

bnovkov added inline comments to D38852: vm: improve kstack_object pindex calculation scheme to avoid pindex holes.
Apr 7 2024, 4:58 PM

Apr 4 2024

bnovkov updated the diff for D38852: vm: improve kstack_object pindex calculation scheme to avoid pindex holes.

Address @markj 's comments and fix a couple of issues:

  • Certain kstack KVA chunks were released back to the parent arena with improper alignment, causing vmem_xfree to panic
  • swapping in thread kstacks triggered a panic as the former code relied on vm_page_grab_pages
Apr 4 2024, 10:49 PM

Apr 3 2024

bnovkov committed rG872c4402af13: ddb: Don't throw away qualifier when pretty-printing unnamed pointers (authored by bnovkov).
ddb: Don't throw away qualifier when pretty-printing unnamed pointers
Apr 3 2024, 4:19 PM
bnovkov committed rGaada453dcbaa: ddb: Properly pretty-print non-labeled enum values (authored by bnovkov).
ddb: Properly pretty-print non-labeled enum values
Apr 3 2024, 4:19 PM
bnovkov added a comment to D38852: vm: improve kstack_object pindex calculation scheme to avoid pindex holes.

Sorry for the delay, @markj reported a panic when booting this patch on a NUMA machine and it took me a while to set up a NUMA environment and properly fix the issue.

Apr 3 2024, 3:28 PM