Page MenuHomeFreeBSD

bnovkov (Bojan Novković)
User

Projects

User Details

User Since
Jan 29 2022, 5:50 PM (115 w, 11 h)

Recent Activity

Wed, Apr 10

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
Wed, Apr 10, 3:39 PM
bnovkov closed D38852: vm: improve kstack_object pindex calculation scheme to avoid pindex holes.
Wed, Apr 10, 3:39 PM

Mon, Apr 8

bnovkov added inline comments to D40575: Implement the Free Memory Fragmentation Index (FMFI) metric.
Mon, Apr 8, 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.

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

Regenerate and simplify patch.

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

Sun, Apr 7

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

Thu, Apr 4

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
Thu, Apr 4, 10:49 PM

Wed, Apr 3

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
Wed, Apr 3, 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
Wed, Apr 3, 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.

Wed, Apr 3, 3:28 PM
bnovkov updated the diff for D38852: vm: improve kstack_object pindex calculation scheme to avoid pindex holes.

Update patch to track and properly release kstacks to domain arenas, address @kib 's comments.

Wed, Apr 3, 3:23 PM

Tue, Apr 2

bnovkov added a comment to D44565: vmm: Add support for specifying NUMA configuration.

It's not clear to me why we don't extend the vm_memmap structure instead.

Stepping back for a second, the goal of this patch is not really clear to me. I can see two possibilities:

  • We want to create a fake NUMA topology, e.g., to make it easier to use bhyve to test NUMA-specific features in guest kernels.
  • We want some way to have bhyve/vmm allocate memory from multiple physical NUMA domains on the host, and pass memory affinity information to the guest. In that case, vmm itself needs to ensure, for example, that the VM object for a given memseg has the correct NUMA allocation policy.

I think this patch ignores the second goal and makes it harder to implement in the future.

You're right, the primary goal was to have a way of faking NUMA topologies in a guest for kernel testing purposes. I did consider the second goal but ultimately decided to focus on the "fake" bits first and implement the rest in a separate patch.
I'll rework the patch so that it covers both goals.

It also appears to assume that each domain can be described with a single PA range, and I don't really understand why vmm needs to know the CPU affinity of each domain.

I'm not that happy about directly specifying PA ranges directly. The only other thing I could think of is to let the user specify the amount of memory per-domain and let bhyve deal with PA ranges, do you think that this is a more sane approach?
As for the CPU affinities, these are needed for SRAT but that can be done purely from userspace. I've kept them in vmm in case we might want to get NUMA topology info using bhyvectl, but I guess that information can be obtained from the guest itself. I'll remove the cpusets.

Tue, Apr 2, 3:30 PM

Sat, Mar 30

bnovkov updated the summary of D44567: bhyve: Add support for specifying VM NUMA configuration.
Sat, Mar 30, 4:36 PM
bnovkov requested review of D44567: bhyve: Add support for specifying VM NUMA configuration.
Sat, Mar 30, 4:33 PM
bnovkov requested review of D44566: libvmmapi: Add interfaces for setting and getting VM NUMA configuration.
Sat, Mar 30, 4:33 PM
bnovkov requested review of D44565: vmm: Add support for specifying NUMA configuration.
Sat, Mar 30, 4:33 PM

Fri, Mar 29

bnovkov committed rGbdc903460be4: kern_ctf.c: Don't print out warning messages unconditionally (authored by bnovkov).
kern_ctf.c: Don't print out warning messages unconditionally
Fri, Mar 29, 7:33 PM

Thu, Mar 28

bnovkov committed rG722b8e3cb62b: Fix style nits in kern_linker.c (authored by bnovkov).
Fix style nits in kern_linker.c
Thu, Mar 28, 7:38 PM
bnovkov committed rG637e67e03290: ddb: Drop obsolete -FreeBSD identifier from license (authored by bnovkov).
ddb: Drop obsolete -FreeBSD identifier from license
Thu, Mar 28, 7:34 PM
bnovkov added inline comments to D37899: ddb: Add basic CTF support [2/2].
Thu, Mar 28, 7:11 PM

Fri, Mar 22

bnovkov abandoned D37898: ddb: Add basic CTF support [1/2].
Fri, Mar 22, 4:07 AM
bnovkov closed D37899: ddb: Add basic CTF support [2/2].
Fri, Mar 22, 3:57 AM
bnovkov committed rGc21bc6f3c242: ddb: Add CTF-based pretty printing (authored by bnovkov).
ddb: Add CTF-based pretty printing
Fri, Mar 22, 3:57 AM
bnovkov added inline comments to D38852: vm: improve kstack_object pindex calculation scheme to avoid pindex holes.
Fri, Mar 22, 3:13 AM
bnovkov updated the diff for D38852: vm: improve kstack_object pindex calculation scheme to avoid pindex holes.

Address @kib 's comments.

Fri, Mar 22, 3:10 AM

Thu, Mar 21

bnovkov updated the diff for D44450: [WIP] vm: introduce batch page allocation.

Remove commented lines.

Thu, Mar 21, 4:36 AM
bnovkov requested review of D44450: [WIP] vm: introduce batch page allocation.
Thu, Mar 21, 4:34 AM

Fri, Mar 15

bnovkov added a comment to D38852: vm: improve kstack_object pindex calculation scheme to avoid pindex holes.

Apologies for the delay.
@markj and I will go through the patch once more during next week, so it should get commited soon.

Fri, Mar 15, 8:14 PM
bnovkov updated the diff for D38852: vm: improve kstack_object pindex calculation scheme to avoid pindex holes.

Rebase and address comments by @alc , @kib , and @dougm.

Fri, Mar 15, 8:06 PM

Feb 19 2024

bnovkov committed rG849599e28a87: committers-src: Add bnovkov@ with markj@ and jhb@ as mentors (authored by bnovkov).
committers-src: Add bnovkov@ with markj@ and jhb@ as mentors
Feb 19 2024, 3:58 PM
bnovkov closed D43963: committers-src: Add bnovkov@ with markj@ and jhb@ as mentors.
Feb 19 2024, 3:57 PM
bnovkov closed D43962: New src committer: Bojan Novković (bnovkov).

Committed in R9:607c4b857a65b68289e9d7f86a8855def93c09f0.

Feb 19 2024, 3:46 PM
bnovkov accepted D43962: New src committer: Bojan Novković (bnovkov).
Feb 19 2024, 3:46 PM
bnovkov abandoned D42406: bhyve: fix invalid argument in a GDB stub debug printf statement.
Feb 19 2024, 3:45 PM
bnovkov committed R9:607c4b857a65: New src committer: Bojan Novković (bnovkov) (authored by bnovkov).
New src committer: Bojan Novković (bnovkov)
Feb 19 2024, 3:34 PM

Feb 18 2024

bnovkov requested review of D43963: committers-src: Add bnovkov@ with markj@ and jhb@ as mentors.
Feb 18 2024, 5:38 PM
bofh renamed bnovkov from bojan.novkovic_fer.hr to bnovkov.
Feb 18 2024, 5:28 PM
bnovkov requested review of D43962: New src committer: Bojan Novković (bnovkov).
Feb 18 2024, 5:13 PM

Feb 3 2024

bnovkov added inline comments to D43622: vm_map_wire: speed up wiring for large virtual address ranges.
Feb 3 2024, 4:29 PM
bnovkov updated the diff for D43622: vm_map_wire: speed up wiring for large virtual address ranges.

Address @kib 's comments.

Feb 3 2024, 4:23 PM

Jan 26 2024

bnovkov requested review of D43622: vm_map_wire: speed up wiring for large virtual address ranges.
Jan 26 2024, 6:18 PM

Jan 6 2024

bnovkov accepted D43339: powerpc_mmu_radix: add leaf page for wired mappings when pmap_enter(psind=1).

Aside from the issue @markj pointed out, LGTM.

Jan 6 2024, 4:33 PM

Dec 12 2023

bnovkov updated the diff for D42298: bhyve: refactor gdbstub to enable single-stepping on AMD CPUs.

Address @jhb 's comments.

Dec 12 2023, 4:34 PM · bhyve

Nov 30 2023

bnovkov added a comment to D42405: vmm: refactor event reflection in AMD SVM.
In D42405#976891, @jhb wrote:

If you merge this first, then the breakpoint patch doesn't need 'handled = 0', right?

Nov 30 2023, 4:06 PM
bnovkov added inline comments to D42296: vmm: implement single-stepping for AMD CPUs.
Nov 30 2023, 4:05 PM · bhyve
bnovkov updated the diff for D42296: vmm: implement single-stepping for AMD CPUs.

Address @jhb 's comments.

Nov 30 2023, 4:02 PM · bhyve

Nov 29 2023

bnovkov added a comment to D38852: vm: improve kstack_object pindex calculation scheme to avoid pindex holes.
In D38852#975886, @bojan.novkovic_fer.hr wrote:

One other open issue that we didn't discuss much yet is what to do on 32-bit systems. Since the kernel virtual address space is much more limited there, it perhaps (probably?) doesn't make much sense to change the existing scheme. This is especially true if we start trying to align virtual mappings of stacks as Alan suggests.

Given the recent decision to deprecate and potentially remove support for 32-bit systems with 15.0, do you think that this is still an issue we should address?

Yes - the actual removal of 32-bit kernels isn't going to happen anytime soon. 15.0 is two years out, and it's not entirely clear to me that we're ready to remove 32-bit ARM support.

But, can't we handle this simply by making vm_kstack_pindex() use the old KVA<->pindex mapping scheme if _ILP32 is defined?

Nov 29 2023, 7:43 PM
bnovkov updated the diff for D38852: vm: improve kstack_object pindex calculation scheme to avoid pindex holes.

Address @markj 's comments:

  • multiline comment style fixes
  • use old mapping scheme on 32-bit systems
Nov 29 2023, 7:40 PM
bnovkov added inline comments to D42296: vmm: implement single-stepping for AMD CPUs.
Nov 29 2023, 4:11 PM · bhyve

Nov 27 2023

bnovkov added a comment to D38852: vm: improve kstack_object pindex calculation scheme to avoid pindex holes.

One other open issue that we didn't discuss much yet is what to do on 32-bit systems. Since the kernel virtual address space is much more limited there, it perhaps (probably?) doesn't make much sense to change the existing scheme. This is especially true if we start trying to align virtual mappings of stacks as Alan suggests.

Nov 27 2023, 6:25 PM
bnovkov updated the diff for D38852: vm: improve kstack_object pindex calculation scheme to avoid pindex holes.

Address @alc 's comments.

Nov 27 2023, 6:16 PM

Nov 13 2023

bnovkov updated the diff for D42564: tty: properly check character position when handling IUTF8 backspaces.

Upload diff with full context.

Nov 13 2023, 5:57 PM
bnovkov updated the summary of D42564: tty: properly check character position when handling IUTF8 backspaces.
Nov 13 2023, 5:23 PM
bnovkov requested review of D42564: tty: properly check character position when handling IUTF8 backspaces.
Nov 13 2023, 4:49 PM

Nov 8 2023

bnovkov updated the summary of D42517: vm_fault: revert D19670.
Nov 8 2023, 8:22 PM
bnovkov added a comment to D41633: riscv pmap: allocate leaf page table page for wired userspace superpages.

Would you like to do the honours of reverting the vm_fault change? :)

Nov 8 2023, 8:18 PM
bnovkov requested review of D42517: vm_fault: revert D19670.
Nov 8 2023, 8:17 PM

Nov 7 2023

bnovkov added a comment to D41633: riscv pmap: allocate leaf page table page for wired userspace superpages.

Sorry for the delayed reply. The above-mentioned riscv pmap commits are in main now - @bojan.novkovic_fer.hr would it be possible to rebase on top of that? Then I can commit this patch, and we can finally revert D19670.

Nov 7 2023, 6:16 PM
bnovkov updated the diff for D41633: riscv pmap: allocate leaf page table page for wired userspace superpages.

Rebased the patch.

Nov 7 2023, 6:14 PM

Oct 30 2023

bnovkov added inline comments to D42298: bhyve: refactor gdbstub to enable single-stepping on AMD CPUs.
Oct 30 2023, 5:25 PM · bhyve
bnovkov requested review of D42406: bhyve: fix invalid argument in a GDB stub debug printf statement.
Oct 30 2023, 5:24 PM
bnovkov added inline comments to D42298: bhyve: refactor gdbstub to enable single-stepping on AMD CPUs.
Oct 30 2023, 5:16 PM · bhyve
bnovkov updated the diff for D42298: bhyve: refactor gdbstub to enable single-stepping on AMD CPUs.

Address @corvink 's comments.

Oct 30 2023, 5:11 PM · bhyve
bnovkov added inline comments to D42296: vmm: implement single-stepping for AMD CPUs.
Oct 30 2023, 5:05 PM · bhyve
bnovkov updated the diff for D42296: vmm: implement single-stepping for AMD CPUs.

Address @corvink 's comments.

Oct 30 2023, 5:04 PM · bhyve
bnovkov updated the diff for D42295: vmm: enable software breakpoints for AMD CPUs.

Address @corvink's comments, unrelated exception reflection change was split into its own patch (D42405), updated commit message to be more clear.

Oct 30 2023, 4:57 PM · bhyve
bnovkov added a reviewer for D42405: vmm: refactor event reflection in AMD SVM: corvink.
Oct 30 2023, 4:57 PM
bnovkov updated the summary of D42405: vmm: refactor event reflection in AMD SVM.
Oct 30 2023, 4:56 PM
bnovkov requested review of D42405: vmm: refactor event reflection in AMD SVM.
Oct 30 2023, 4:56 PM

Oct 26 2023

bnovkov added a comment to D40772: Tentative physical memory compaction.

Note this became more important since we have ASLR turned on for 64 bit processes since 13.2-RELEASE. And ASLR adds great deal of fragmentation. It leads to significant performance degradation over long run due to superpages becoming unusable due memory fragmentation.

Oct 26 2023, 7:36 PM

Oct 19 2023

bnovkov updated the test plan for D42296: vmm: implement single-stepping for AMD CPUs.
Oct 19 2023, 4:13 PM · bhyve
bnovkov retitled D42295: vmm: enable software breakpoints for AMD CPUs from vmm: enable software breakpoints for AMD SVM to vmm: enable software breakpoints for AMD CPUs.
Oct 19 2023, 4:05 PM · bhyve
bnovkov requested review of D42299: vmm: implement VM_CAP_MASK_HWINTR on AMD CPUs.
Oct 19 2023, 4:05 PM · bhyve
bnovkov requested review of D42298: bhyve: refactor gdbstub to enable single-stepping on AMD CPUs.
Oct 19 2023, 4:01 PM · bhyve
bnovkov requested review of D42296: vmm: implement single-stepping for AMD CPUs.
Oct 19 2023, 3:56 PM · bhyve
bnovkov requested review of D42295: vmm: enable software breakpoints for AMD CPUs.
Oct 19 2023, 3:41 PM · bhyve

Oct 12 2023

bnovkov accepted D42164: teken: fix style in teken_wcwidth.h.

LGTM.

Oct 12 2023, 2:58 PM

Oct 11 2023

bnovkov updated the diff for D42147: tty/teken: fix UTF8 sequence validation logic .

Fix formatting for multiline comment in teken_utf8_bytes_to_codepoint.

Oct 11 2023, 6:57 PM
bnovkov updated the diff for D42147: tty/teken: fix UTF8 sequence validation logic .

Address @christos 's comments.

  • Add more detailed explanation of the use of __builtin_clz

Other fixes:

  • Codepoint calculation for two-byte sequences was missing one bit in the mask used for the leading character, fixed now
  • ttydisc_rubchar now falls back to non-UTF8 behaviour if teken_wcwidth returns an error
Oct 11 2023, 6:51 PM

Oct 10 2023

bnovkov requested review of D42147: tty/teken: fix UTF8 sequence validation logic .
Oct 10 2023, 5:56 PM

Oct 7 2023

bnovkov added a comment to D42067: tty: fix improper backspace behaviour for UTF8 characters when in canonical mode.

Tested both patches and they seem to run without problems. Is there a reason we don't want the IUTF8 flag to be set by default? At least in my opinion, backspacing UTF-8 characters is common enough that this should be a "builtin" feature, instead of having to run stty iutf8 in a startup script or do it manually. That being said, I am not exactly aware of the side effects (if any) this could have.

Oct 7 2023, 4:31 PM
bnovkov added a comment to D42066: (s)tty: add support for IUTF8 input flag.

I've updated the manpages for stty and termios and moved IUTF8 behind __BSD_VISIBLE.

Oct 7 2023, 4:27 PM
bnovkov updated the diff for D42066: (s)tty: add support for IUTF8 input flag.

Address @imp 's and @christos 's comments.

Oct 7 2023, 4:26 PM

Oct 6 2023

bnovkov added a comment to D38852: vm: improve kstack_object pindex calculation scheme to avoid pindex holes.

Quick update: I've tested the patch with different numbers of kstack guard pages (1-4) and encountered no issues.
Each run consisted of running the test suite and a rebuild of the whole kernel.

Oct 6 2023, 7:12 PM
bnovkov added a comment to F68370328: kstack_pindex_formula.png.

I have, there are no duplicates for 1-4 guard pages.
I also think that duplicates are mathematically impossible in this case, since this function is bijective for each value in its domain.
Its domain, however is not contiguous.
I've whipped up a quick graph for the first few kvas {F68913014}.

Oct 6 2023, 7:08 PM

Oct 5 2023

bnovkov added inline comments to D42066: (s)tty: add support for IUTF8 input flag.
Oct 5 2023, 7:24 PM
bnovkov added inline comments to D42067: tty: fix improper backspace behaviour for UTF8 characters when in canonical mode.
Oct 5 2023, 7:14 PM
bnovkov updated the diff for D42067: tty: fix improper backspace behaviour for UTF8 characters when in canonical mode.

Address @christos 's comments - properly handle zero width characters.

Oct 5 2023, 7:03 PM

Oct 3 2023

bnovkov requested review of D42067: tty: fix improper backspace behaviour for UTF8 characters when in canonical mode.
Oct 3 2023, 5:12 PM
bnovkov requested review of D42066: (s)tty: add support for IUTF8 input flag.
Oct 3 2023, 4:50 PM

Oct 1 2023

bnovkov added a comment to D41635: i386 pmap: allocate leaf page table page for wired userspace superpages.

@markj I tried the new mlock superpage test case, the patch didn't cause a panic.

Oct 1 2023, 6:44 PM
bnovkov added a comment to D38852: vm: improve kstack_object pindex calculation scheme to avoid pindex holes.

I've updated the diff to work with an arbitrary number of guard pages but I didn't have time to test this with different guard page configurations - I'll do this in the coming days and report back.
The formula has been slightly reworked to account for the direction of stack growth (+ 1 to the result of lin_pindex(kva) / kstack_size and different condition for detecting guard pages).

Oct 1 2023, 6:36 PM
bnovkov updated the diff for D38852: vm: improve kstack_object pindex calculation scheme to avoid pindex holes.

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

Oct 1 2023, 6:32 PM
bnovkov attached a referenced file: F68370328: kstack_pindex_formula.png.
Oct 1 2023, 5:12 PM

Sep 27 2023

bnovkov added a comment to D38852: vm: improve kstack_object pindex calculation scheme to avoid pindex holes.
In D38852#956753, @kib wrote:

So what is the main purpose of this change? To get linear, without gaps, pindexes for the kernel stack obj?

Sep 27 2023, 7:59 PM
bnovkov added a comment to D41635: i386 pmap: allocate leaf page table page for wired userspace superpages.
In D41635#957353, @alc wrote:

I've just committed 902ed64fecbe which eliminates the need for zeroing the PTP and the possibility of an assertion failure if you pass the same arguments to pmap_insert_pt_page() as you did on amd64. pmap_insert_pt_page() now has the needed extra argument.

Sep 27 2023, 5:42 PM
bnovkov updated the diff for D41635: i386 pmap: allocate leaf page table page for wired userspace superpages.

Address @alc 's comments.

Sep 27 2023, 5:38 PM

Sep 22 2023

bnovkov updated the summary of D38852: vm: improve kstack_object pindex calculation scheme to avoid pindex holes.
Sep 22 2023, 3:41 PM

Sep 20 2023

bnovkov updated the diff for D41635: i386 pmap: allocate leaf page table page for wired userspace superpages.

Address @alc 's comments.

Sep 20 2023, 6:38 PM