Page MenuHomeFreeBSD

kajetan.puchalski_arm.com (Kajetan Puchalski)
mrkajetanp

Projects

User does not belong to any projects.

User Details

User Since
Mar 5 2026, 12:18 PM (14 w, 6 d)

Recent Activity

Tue, Jun 9

kajetan.puchalski_arm.com added inline comments to D56556: arm64/vmm: Make remaining registers use hypctx_*_sys_reg.
Tue, Jun 9, 4:42 PM
kajetan.puchalski_arm.com updated the diff for D56556: arm64/vmm: Make remaining registers use hypctx_*_sys_reg.

Fix indentation

Tue, Jun 9, 4:35 PM
kajetan.puchalski_arm.com updated the diff for D56555: arm64/vmm: Move host-side EL2 regs into sys_regs.

Fix indentation

Tue, Jun 9, 4:35 PM
kajetan.puchalski_arm.com updated the diff for D56556: arm64/vmm: Make remaining registers use hypctx_*_sys_reg.

Fix indentation

Tue, Jun 9, 3:33 PM
kajetan.puchalski_arm.com updated the diff for D56555: arm64/vmm: Move host-side EL2 regs into sys_regs.

Fix indentation

Tue, Jun 9, 3:33 PM
kajetan.puchalski_arm.com updated the diff for D56554: arm64/vmm: Move vttbr_el2 & vtimer into struct hypctx.

Fix indentation

Tue, Jun 9, 3:33 PM
kajetan.puchalski_arm.com updated the diff for D56553: arm64/vmm: Refactor vmm_hyp.c.

Fix indentation

Tue, Jun 9, 3:33 PM
kajetan.puchalski_arm.com updated the diff for D56552: arm64/vmm: Store non-VNCR registers in an array.

Fix indentation

Tue, Jun 9, 3:33 PM
kajetan.puchalski_arm.com updated the diff for D56556: arm64/vmm: Make remaining registers use hypctx_*_sys_reg.

Fix indentation

Tue, Jun 9, 3:28 PM
kajetan.puchalski_arm.com updated the diff for D56555: arm64/vmm: Move host-side EL2 regs into sys_regs.

Fix indentation

Tue, Jun 9, 3:28 PM
kajetan.puchalski_arm.com updated the diff for D56554: arm64/vmm: Move vttbr_el2 & vtimer into struct hypctx.

Fix indentation

Tue, Jun 9, 3:28 PM
kajetan.puchalski_arm.com updated the diff for D56553: arm64/vmm: Refactor vmm_hyp.c.

Fix indentation

Tue, Jun 9, 3:28 PM
kajetan.puchalski_arm.com updated the diff for D56552: arm64/vmm: Store non-VNCR registers in an array.

Fix indentation

Tue, Jun 9, 3:28 PM

Wed, May 20

kajetan.puchalski_arm.com updated the diff for D56556: arm64/vmm: Make remaining registers use hypctx_*_sys_reg.

Use genassym for assembly offsets

Wed, May 20, 1:12 PM
kajetan.puchalski_arm.com updated the diff for D56556: arm64/vmm: Make remaining registers use hypctx_*_sys_reg.

Address review comments

Wed, May 20, 11:42 AM
kajetan.puchalski_arm.com updated the diff for D56555: arm64/vmm: Move host-side EL2 regs into sys_regs.

Address review comments

Wed, May 20, 11:42 AM
kajetan.puchalski_arm.com updated the diff for D56554: arm64/vmm: Move vttbr_el2 & vtimer into struct hypctx.

Address review comments

Wed, May 20, 11:42 AM
kajetan.puchalski_arm.com updated the diff for D56553: arm64/vmm: Refactor vmm_hyp.c.

Address review comments

Wed, May 20, 11:42 AM
kajetan.puchalski_arm.com updated the diff for D56552: arm64/vmm: Store non-VNCR registers in an array.

Address review comments

Wed, May 20, 11:42 AM
kajetan.puchalski_arm.com updated the diff for D56551: arm64/vmm: Use the VNCR_EL2 memory page to store guest registers.

Address review comments

Wed, May 20, 11:42 AM

May 8 2026

kajetan.puchalski_arm.com updated the diff for D56556: arm64/vmm: Make remaining registers use hypctx_*_sys_reg.

Correct nVHE omission

May 8 2026, 2:45 PM
kajetan.puchalski_arm.com updated the diff for D56555: arm64/vmm: Move host-side EL2 regs into sys_regs.

Correct nVHE omission

May 8 2026, 2:45 PM
kajetan.puchalski_arm.com updated the diff for D56554: arm64/vmm: Move vttbr_el2 & vtimer into struct hypctx.

Correct nVHE omission

May 8 2026, 2:44 PM
kajetan.puchalski_arm.com updated the diff for D56553: arm64/vmm: Refactor vmm_hyp.c.

Correct nVHE omission

May 8 2026, 2:44 PM

May 1 2026

kajetan.puchalski_arm.com added inline comments to D56551: arm64/vmm: Use the VNCR_EL2 memory page to store guest registers.
May 1 2026, 11:11 AM
kajetan.puchalski_arm.com updated the diff for D56556: arm64/vmm: Make remaining registers use hypctx_*_sys_reg.

Use Static_assert to ensure correct struct hypctx size

May 1 2026, 11:10 AM
kajetan.puchalski_arm.com updated the diff for D56555: arm64/vmm: Move host-side EL2 regs into sys_regs.

Use Static_assert to ensure correct struct hypctx size

May 1 2026, 11:10 AM
kajetan.puchalski_arm.com updated the diff for D56554: arm64/vmm: Move vttbr_el2 & vtimer into struct hypctx.

Use Static_assert to ensure correct struct hypctx size

May 1 2026, 11:10 AM
kajetan.puchalski_arm.com updated the diff for D56553: arm64/vmm: Refactor vmm_hyp.c.

Use Static_assert to ensure correct struct hypctx size

May 1 2026, 11:09 AM
kajetan.puchalski_arm.com updated the diff for D56552: arm64/vmm: Store non-VNCR registers in an array.

Use Static_assert to ensure correct struct hypctx size

May 1 2026, 11:09 AM
kajetan.puchalski_arm.com updated the diff for D56551: arm64/vmm: Use the VNCR_EL2 memory page to store guest registers.

Use Static_assert to ensure correct struct hypctx size

May 1 2026, 11:09 AM

Apr 28 2026

kajetan.puchalski_arm.com updated the diff for D56556: arm64/vmm: Make remaining registers use hypctx_*_sys_reg.

Correct register name

Apr 28 2026, 4:32 PM
kajetan.puchalski_arm.com added a comment to D56551: arm64/vmm: Use the VNCR_EL2 memory page to store guest registers.

I think this should be all outstanding issues sorted out now. To adapt this to CHERI you could do something as simple as:

Apr 28 2026, 3:03 PM
kajetan.puchalski_arm.com updated the diff for D56556: arm64/vmm: Make remaining registers use hypctx_*_sys_reg.

Address remaining style review comments

Apr 28 2026, 2:14 PM
kajetan.puchalski_arm.com updated the diff for D56555: arm64/vmm: Move host-side EL2 regs into sys_regs.

Address remaining style review comments

Apr 28 2026, 2:14 PM
kajetan.puchalski_arm.com updated the diff for D56554: arm64/vmm: Move vttbr_el2 & vtimer into struct hypctx.

Address remaining style review comments

Apr 28 2026, 2:14 PM
kajetan.puchalski_arm.com updated the diff for D56553: arm64/vmm: Refactor vmm_hyp.c.

Address remaining style review comments

Apr 28 2026, 2:14 PM
kajetan.puchalski_arm.com updated the diff for D56552: arm64/vmm: Store non-VNCR registers in an array.

Address remaining style review comments

Apr 28 2026, 2:14 PM
kajetan.puchalski_arm.com updated the diff for D56551: arm64/vmm: Use the VNCR_EL2 memory page to store guest registers.

Address remaining style review comments

Apr 28 2026, 2:14 PM

Apr 24 2026

kajetan.puchalski_arm.com updated the diff for D56556: arm64/vmm: Make remaining registers use hypctx_*_sys_reg.

Use char* for ptr arithmetic

Apr 24 2026, 11:09 AM
kajetan.puchalski_arm.com updated the diff for D56555: arm64/vmm: Move host-side EL2 regs into sys_regs.

Use char* for ptr arithmetic

Apr 24 2026, 11:09 AM
kajetan.puchalski_arm.com updated the diff for D56554: arm64/vmm: Move vttbr_el2 & vtimer into struct hypctx.

Use char* for ptr arithmetic

Apr 24 2026, 11:09 AM
kajetan.puchalski_arm.com updated the diff for D56553: arm64/vmm: Refactor vmm_hyp.c.

Use char* for ptr arithmetic

Apr 24 2026, 11:09 AM
kajetan.puchalski_arm.com updated the diff for D56552: arm64/vmm: Store non-VNCR registers in an array.

Use char* for ptr arithmetic

Apr 24 2026, 11:09 AM
kajetan.puchalski_arm.com updated the diff for D56551: arm64/vmm: Use the VNCR_EL2 memory page to store guest registers.

Use char* for ptr arithmetic

Apr 24 2026, 11:09 AM

Apr 23 2026

kajetan.puchalski_arm.com added a comment to D56551: arm64/vmm: Use the VNCR_EL2 memory page to store guest registers.

Then why are some places using *hypctx_sys_reg directly and mutating it?

Apr 23 2026, 5:39 PM
kajetan.puchalski_arm.com updated the diff for D56556: arm64/vmm: Make remaining registers use hypctx_*_sys_reg.

Fix omission

Apr 23 2026, 5:31 PM
kajetan.puchalski_arm.com updated the diff for D56555: arm64/vmm: Move host-side EL2 regs into sys_regs.

Fix omission

Apr 23 2026, 5:31 PM
kajetan.puchalski_arm.com updated the diff for D56554: arm64/vmm: Move vttbr_el2 & vtimer into struct hypctx.

Fix omission

Apr 23 2026, 5:31 PM
kajetan.puchalski_arm.com updated the diff for D56553: arm64/vmm: Refactor vmm_hyp.c.

Fix omission

Apr 23 2026, 5:31 PM
kajetan.puchalski_arm.com added a comment to D56551: arm64/vmm: Use the VNCR_EL2 memory page to store guest registers.

As in we'd change the definition of the hypctx_sysreg enum itself? And then do "something" to special case it in the function? And have a new hypctx_sys_reg_cap that returned uintcap_t *? That seems like it could work. Though I've tagged @markj on this review as he did the initial adaptation of the proposed bhyve/arm64 code to Morello.

Apr 23 2026, 5:13 PM
kajetan.puchalski_arm.com added a comment to D56551: arm64/vmm: Use the VNCR_EL2 memory page to store guest registers.

I would really like to not land this patch before it's clear there's an *easy* path to making this work on Morello.

Apr 23 2026, 4:38 PM
kajetan.puchalski_arm.com added a comment to D56551: arm64/vmm: Use the VNCR_EL2 memory page to store guest registers.

Ah thanks, that's good to know! I'm new to all things BSD, always nice to get some additional context :)

Apr 23 2026, 4:27 PM
kajetan.puchalski_arm.com added a comment to D56551: arm64/vmm: Use the VNCR_EL2 memory page to store guest registers.

It looks like the two capability registers this change affects are elr_el1 and vbar_el1. Both of these have at least 128 bits of space before the next register, so storage shouldn't be a problem for Morello.

sp_el0, tpidr_el0, tpidrro_el0, and tpidr_el1 could be split into a new capability array when they are managed in a later change.

Also sp_el1 and tpidr_el2 in the VNCR space (why is tpidr_el2 even in there? I don't know if I want to know...). I would really like to not land this patch before it's clear there's an *easy* path to making this work on Morello. Breaking bhyve on Morello would be really quite unfortunate and hostile towards CheriBSD.

Apr 23 2026, 4:18 PM
kajetan.puchalski_arm.com updated the diff for D56556: arm64/vmm: Make remaining registers use hypctx_*_sys_reg.

Fix non-VHE omission

Apr 23 2026, 2:39 PM
kajetan.puchalski_arm.com updated the diff for D56555: arm64/vmm: Move host-side EL2 regs into sys_regs.

Fix non-VHE omission

Apr 23 2026, 2:39 PM
kajetan.puchalski_arm.com updated the diff for D56554: arm64/vmm: Move vttbr_el2 & vtimer into struct hypctx.

Fix non-VHE omission

Apr 23 2026, 2:39 PM
kajetan.puchalski_arm.com updated the diff for D56553: arm64/vmm: Refactor vmm_hyp.c.

Fix non-VHE omission

Apr 23 2026, 2:39 PM
kajetan.puchalski_arm.com updated the diff for D56552: arm64/vmm: Store non-VNCR registers in an array.

Fix non-VHE omission

Apr 23 2026, 2:39 PM
kajetan.puchalski_arm.com updated the diff for D56551: arm64/vmm: Use the VNCR_EL2 memory page to store guest registers.

Fix non-VHE omission

Apr 23 2026, 2:38 PM
kajetan.puchalski_arm.com updated the diff for D56556: arm64/vmm: Make remaining registers use hypctx_*_sys_reg.

Handle non-VHE, store the vncr page as a pointer

Apr 23 2026, 2:28 PM
kajetan.puchalski_arm.com updated the diff for D56555: arm64/vmm: Move host-side EL2 regs into sys_regs.

Handle non-VHE, store the vncr page as a pointer

Apr 23 2026, 2:28 PM
kajetan.puchalski_arm.com updated the diff for D56554: arm64/vmm: Move vttbr_el2 & vtimer into struct hypctx.

Handle non-VHE, store the vncr page as a pointer

Apr 23 2026, 2:28 PM
kajetan.puchalski_arm.com updated the diff for D56553: arm64/vmm: Refactor vmm_hyp.c.

Handle non-VHE, store the vncr page as a pointer

Apr 23 2026, 2:28 PM
kajetan.puchalski_arm.com updated the diff for D56552: arm64/vmm: Store non-VNCR registers in an array.

Handle non-VHE, store the vncr page as a pointer

Apr 23 2026, 2:28 PM
kajetan.puchalski_arm.com updated the diff for D56551: arm64/vmm: Use the VNCR_EL2 memory page to store guest registers.

Handle non-VHE, store the vncr page as a pointer

Apr 23 2026, 2:28 PM

Apr 22 2026

kajetan.puchalski_arm.com added a comment to D56551: arm64/vmm: Use the VNCR_EL2 memory page to store guest registers.

We will need to handle accessing different sized registers to support FEAT_D128, e.g. VTTBR_EL2 will be 128 bit there.

Apr 22 2026, 1:38 PM
kajetan.puchalski_arm.com added inline comments to D56551: arm64/vmm: Use the VNCR_EL2 memory page to store guest registers.
Apr 22 2026, 1:25 PM
kajetan.puchalski_arm.com updated the diff for D56556: arm64/vmm: Make remaining registers use hypctx_*_sys_reg.

Encode VNCR values into enum hypctx_sysreg as 64-bit offsets

Apr 22 2026, 1:24 PM
kajetan.puchalski_arm.com updated the diff for D56555: arm64/vmm: Move host-side EL2 regs into sys_regs.

Encode VNCR values into enum hypctx_sysreg as 64-bit offsets

Apr 22 2026, 1:24 PM
kajetan.puchalski_arm.com updated the diff for D56554: arm64/vmm: Move vttbr_el2 & vtimer into struct hypctx.

Encode VNCR values into enum hypctx_sysreg as 64-bit offsets

Apr 22 2026, 1:23 PM
kajetan.puchalski_arm.com updated the diff for D56553: arm64/vmm: Refactor vmm_hyp.c.

Encode VNCR values into enum hypctx_sysreg as 64-bit offsets

Apr 22 2026, 1:23 PM
kajetan.puchalski_arm.com updated the diff for D56552: arm64/vmm: Store non-VNCR registers in an array.

Encode VNCR values into enum hypctx_sysreg as 64-bit offsets

Apr 22 2026, 1:23 PM
kajetan.puchalski_arm.com updated the diff for D56551: arm64/vmm: Use the VNCR_EL2 memory page to store guest registers.

Encode VNCR values into enum hypctx_sysreg as 64-bit offsets

Apr 22 2026, 1:23 PM
kajetan.puchalski_arm.com added inline comments to D56551: arm64/vmm: Use the VNCR_EL2 memory page to store guest registers.
Apr 22 2026, 1:08 PM
kajetan.puchalski_arm.com updated the diff for D56556: arm64/vmm: Make remaining registers use hypctx_*_sys_reg.

Update

Apr 22 2026, 1:00 PM
kajetan.puchalski_arm.com updated the diff for D56555: arm64/vmm: Move host-side EL2 regs into sys_regs.

Update

Apr 22 2026, 1:00 PM
kajetan.puchalski_arm.com updated the diff for D56554: arm64/vmm: Move vttbr_el2 & vtimer into struct hypctx.

Update with changes to other commits in the stack

Apr 22 2026, 12:59 PM
kajetan.puchalski_arm.com updated the diff for D56553: arm64/vmm: Refactor vmm_hyp.c.

Update

Apr 22 2026, 12:59 PM
kajetan.puchalski_arm.com updated the diff for D56552: arm64/vmm: Store non-VNCR registers in an array.

Update with changes to other commits in the stack

Apr 22 2026, 12:57 PM
kajetan.puchalski_arm.com updated the diff for D56551: arm64/vmm: Use the VNCR_EL2 memory page to store guest registers.

Merge hypctx & VNCR into one allocation, adjust pointer type

Apr 22 2026, 12:54 PM

Apr 21 2026

kajetan.puchalski_arm.com updated kajetan.puchalski_arm.com.
Apr 21 2026, 2:02 PM
kajetan.puchalski_arm.com updated the diff for D56550: arm64/vmm: Add FEAT_NV2 definitions.

Update register indentation

Apr 21 2026, 1:57 PM
kajetan.puchalski_arm.com added a comment to D56551: arm64/vmm: Use the VNCR_EL2 memory page to store guest registers.

Yes, exactly. This loses all type system flexibility. At least if you just made a struct that matched the VNCR layout we could change the types, and ok it wouldn't then match, but that wouldn't matter for our use case (and if a CHERI + Arm + nested virt system ever exists then the layout can be made to match that). Whereas now we'd have to go and meticulously tweak all the magic VNCR constants to give us a layout that works, and tweak the one-function-to-rule-them-all to be two functions, one for integers and one for capabilities, since we have multiple types.

Apr 21 2026, 1:27 PM
kajetan.puchalski_arm.com added a comment to D56551: arm64/vmm: Use the VNCR_EL2 memory page to store guest registers.

This is really quite an obnoxious change to deal with for Morello, where some of these registers are 128-bit capabilities not 64-bit integers...

Apr 21 2026, 11:45 AM
kajetan.puchalski_arm.com updated the summary of D56552: arm64/vmm: Store non-VNCR registers in an array.
Apr 21 2026, 11:30 AM
kajetan.puchalski_arm.com updated the summary of D56550: arm64/vmm: Add FEAT_NV2 definitions.
Apr 21 2026, 11:29 AM
kajetan.puchalski_arm.com updated the diff for D56550: arm64/vmm: Add FEAT_NV2 definitions.

Fix commit description

Apr 21 2026, 11:27 AM
kajetan.puchalski_arm.com requested review of D56556: arm64/vmm: Make remaining registers use hypctx_*_sys_reg.
Apr 21 2026, 11:10 AM
kajetan.puchalski_arm.com requested review of D56555: arm64/vmm: Move host-side EL2 regs into sys_regs.
Apr 21 2026, 11:09 AM
kajetan.puchalski_arm.com requested review of D56554: arm64/vmm: Move vttbr_el2 & vtimer into struct hypctx.
Apr 21 2026, 11:09 AM
kajetan.puchalski_arm.com requested review of D56553: arm64/vmm: Refactor vmm_hyp.c.
Apr 21 2026, 11:09 AM
kajetan.puchalski_arm.com requested review of D56552: arm64/vmm: Store non-VNCR registers in an array.
Apr 21 2026, 11:09 AM
kajetan.puchalski_arm.com requested review of D56551: arm64/vmm: Use the VNCR_EL2 memory page to store guest registers.
Apr 21 2026, 11:08 AM
kajetan.puchalski_arm.com requested review of D56550: arm64/vmm: Add FEAT_NV2 definitions.
Apr 21 2026, 11:08 AM