Page MenuHomeFreeBSD

br (Ruslan Bukin)
User

Projects

User Details

User Since
Nov 27 2014, 10:57 AM (590 w, 4 d)

Recent Activity

Wed, Mar 18

br requested review of D55922: RISC-V IOMMU support.
Wed, Mar 18, 5:23 PM

Thu, Mar 5

br committed rGd3eaa40282c7: riscv: save FPE state in cpu_fork(). (authored by jsihv_gmx.com).
riscv: save FPE state in cpu_fork().
Thu, Mar 5, 9:02 AM
br closed D53804: riscv cpu_fork(), saving fpe state.
Thu, Mar 5, 9:02 AM · riscv
br committed rGdff2758b5fa7: static dtb: add BTI note (authored by br).
static dtb: add BTI note
Thu, Mar 5, 8:56 AM
br closed D55636: static dtb: add BTI note.
Thu, Mar 5, 8:56 AM
br added a comment to D55492: virtio_net: Use bus_dma for rxq/txq buffers.

also - are D55492 and D55564 supposed to be tested together in a stack? which should be applied first?

Apply D55492, then D55564.
Just tested these in qemu: vtnet put behind an IOMMU controller on RISC-V with translation enabled, seem to work fine!

Thu, Mar 5, 8:36 AM · network

Wed, Mar 4

br added a comment to D55636: static dtb: add BTI note.

Same toolchain (latest), but without this change a few functions don't have landing pad: copyin/copyout and sched_idletd.

Wed, Mar 4, 2:45 PM
br added a comment to D55636: static dtb: add BTI note.

How does it fix the Branch Target exception? The kernel doesn't care about the note, it's just there to ensure all source files are built with BTI enabled.

Wed, Mar 4, 11:45 AM

Tue, Mar 3

br requested review of D55636: static dtb: add BTI note.
Tue, Mar 3, 8:15 PM

Mon, Mar 2

br added a comment to D55564: virtio_net: Use bus_dma for command/ack buffers.

Change header tag alignment size.

Mon, Mar 2, 12:12 PM

Fri, Feb 27

br added a comment to D55492: virtio_net: Use bus_dma for rxq/txq buffers.

Could you try https://reviews.freebsd.org/D55564 (in addition to this change set) please?

Fri, Feb 27, 6:13 PM · network
br added inline comments to D55564: virtio_net: Use bus_dma for command/ack buffers.
Fri, Feb 27, 6:12 PM
br added a comment to D55369: arm64 iommu: fixes.

found another bug here, will resubmit

Fri, Feb 27, 11:16 AM
br added a comment to D55492: virtio_net: Use bus_dma for rxq/txq buffers.

I'm getting a little confused now. Does vtnet work on RISC-V IOMMU without my changes?

Fri, Feb 27, 11:11 AM · network
br accepted D53804: riscv cpu_fork(), saving fpe state.
Fri, Feb 27, 9:41 AM · riscv

Wed, Feb 25

br added a comment to D55492: virtio_net: Use bus_dma for rxq/txq buffers.

looks like some part of vtnet still tries to pass physical addresses instead of bus dma addresses, so I get page faults

riscv_fq_intr
riscv_iommu0: Fault: event 0xd received: Read page fault
riscv_iommu0: iotval 0x80e4940a iotval2: 0x0
riscv_iommu0: Fault: event 0xd received: Read page fault
riscv_iommu0: iotval 0x80e4940a iotval2: 0x0
riscv_iommu0: Fault: event 0xd received: Read page fault
riscv_iommu0: iotval 0x80e4940d iotval2: 0x0
riscv_iommu0: Fault: event 0xd received: Read page fault
riscv_iommu0: iotval 0x80e4940d iotval2: 0x0
riscv_iommu0: Fault: event 0xf received: Write/AMO page fault
riscv_iommu0: iotval 0x80e4940f iotval2: 0x0
riscv_iommu0: Fault: event 0xf received: Write/AMO page fault
riscv_iommu0: iotval 0x80e4940f iotval2: 0x0
vtnet0: cannot disable all-multicast mode
Wed, Feb 25, 5:31 PM · network
br added a comment to D55492: virtio_net: Use bus_dma for rxq/txq buffers.
In D55492#1270135, @br wrote:

Could you try again with the most recent change please?

same panic

Apologies, not sure what I was thinking with the previous change. Can you try the current change please?

Wed, Feb 25, 2:42 PM · network
br added a comment to D55492: virtio_net: Use bus_dma for rxq/txq buffers.

Could you try again with the most recent change please?

same panic

Wed, Feb 25, 2:20 PM · network
br added a comment to D55492: virtio_net: Use bus_dma for rxq/txq buffers.

Should the alignment for the rx & tx DMA tags be VTNET_ETHER_ALIGN?

Wed, Feb 25, 12:08 PM · network
br added a comment to D55492: virtio_net: Use bus_dma for rxq/txq buffers.

note function names in backtrace sometimes wrong, so it is more like

bus_dmamap_load_mbuf_sg() -> iommu_bus_dmamap_load_buffer() -> iommu_bus_dmamap_load_something() -> iommu_bus_dmamap_load_something1() -> panic
Wed, Feb 25, 12:05 PM · network
br added a comment to D55492: virtio_net: Use bus_dma for rxq/txq buffers.
vtnet0: unable to set MAC address
vtnet0: cannot disable promiscuous mode
vtnet0: cannot disable all-multicast mode
vtnet0: error setting host MAC filter table
panic: alignment failed: ctx 0xffffffd0010d0e80 start 0x20c000 offset 82 align 0x4
cpuid = 0
time = 1772019624
KDB: stack backtrace:
db_trace_self() at db_trace_self
db_fetch_ksymtab() at db_fetch_ksymtab+0x142
kdb_backtrace() at kdb_backtrace+0x2c
vpanic() at vpanic+0x16e
panic() at panic+0x26
iommu_domain_fini() at iommu_domain_fini+0x36a
iommu_is_buswide_ctx() at iommu_is_buswide_ctx+0x806
bus_dmamap_load_mbuf_sg() at bus_dmamap_load_mbuf_sg+0x60
vtmmio_attach() at vtmmio_attach+0x488c
vtmmio_attach() at vtmmio_attach+0x6656
vtmmio_attach() at vtmmio_attach+0x5652
ether_ioctl() at ether_ioctl+0x1a0
vtmmio_attach() at vtmmio_attach+0x5844
in_control_ioctl() at in_control_ioctl+0x9ac
rtnl_ifaces_destroy() at rtnl_ifaces_destroy+0x1a1e
rtnl_register_messages() at rtnl_register_messages+0x2a0
nl_send() at nl_send+0x3ca
nl_taskqueue_handler() at nl_taskqueue_handler+0x34e
taskqueue_run() at taskqueue_run+0x1f0
taskqueue_thread_loop() at taskqueue_thread_loop+0xd4
fork_exit() at fork_exit+0x68
fork_trampoline() at fork_trampoline+0xa
KDB: enter: panic
[ thread pid 0 tid 100062 ]
Stopped at      kdb_enter+0x3a: sd      zero,560(s1)
Wed, Feb 25, 11:54 AM · network
br added a comment to D55492: virtio_net: Use bus_dma for rxq/txq buffers.

A quick test on RISC-V IOMMU gives me this issue:

vtnet0: unable to set MAC address
vtnet0: cannot disable promiscuous mode
vtnet0: cannot disable all-multicast mode
vtnet0: error setting host MAC filter table
panic: alignment failed: ctx 0xffffffd0010d0e80 start 0x20c000 offset 82 align 0x4
Wed, Feb 25, 11:44 AM · network
br added a comment to D53804: riscv cpu_fork(), saving fpe state.

if td1 is always curthread, then a kassert is needed

Wed, Feb 25, 8:32 AM · riscv

Tue, Feb 24

br accepted D54960: virtio_blk: Use bus_dma for command/ack buffer allocations.

I tested this on RISC-V IOMMU under QEMU ("virt" machine) and modern virtio PCI -- seem to work!

Tue, Feb 24, 9:01 PM

Feb 19 2026

br requested review of D55369: arm64 iommu: fixes.
Feb 19 2026, 2:37 PM
br committed rG7e8284c6ad95: iommu_gas: Fix assertion. (authored by br).
iommu_gas: Fix assertion.
Feb 19 2026, 2:02 PM
br closed D55326: iommu_gas: fix assertion.
Feb 19 2026, 2:01 PM

Feb 18 2026

br abandoned D21920: HWPMC tracing support (9) -- libpmcstat.
Feb 18 2026, 8:06 AM
br abandoned D15095: HWPMC tracing support (8) -- pmctrace ARM Coresight.
Feb 18 2026, 8:05 AM
br abandoned D15094: HWPMC tracing support (7) -- pmctrace Intel PT.
Feb 18 2026, 8:05 AM
br abandoned D15092: HWPMC tracing support (6) -- pmctrace main.
Feb 18 2026, 8:05 AM
br abandoned D15091: HWPMC tracing support (5) -- Intel PT.
Feb 18 2026, 8:05 AM
br abandoned D15090: HWPMC tracing support (4) -- ARM Coresight.
Feb 18 2026, 8:05 AM
br abandoned D15088: HWPMC tracing support (3) -- libpmc.
Feb 18 2026, 8:05 AM
br abandoned D15089: HWPMC tracing support (2) -- VM.
Feb 18 2026, 8:04 AM
br abandoned D12875: HWPMC tracing support (1) -- main.
Feb 18 2026, 8:04 AM

Feb 17 2026

br added inline comments to D54960: virtio_blk: Use bus_dma for command/ack buffer allocations.
Feb 17 2026, 2:30 PM
br added inline comments to D54960: virtio_blk: Use bus_dma for command/ack buffer allocations.
Feb 17 2026, 8:58 AM
br requested review of D55326: iommu_gas: fix assertion.
Feb 17 2026, 8:49 AM

Feb 16 2026

br added inline comments to D54960: virtio_blk: Use bus_dma for command/ack buffer allocations.
Feb 16 2026, 3:19 PM
br added inline comments to D54960: virtio_blk: Use bus_dma for command/ack buffer allocations.
Feb 16 2026, 10:48 AM

Feb 11 2026

br added a comment to D55220: virtio: get a correct tag for IOMMU operation.

Oh I see, the point is about what's passed up as the second argument, not what device the method is invoked on. I guess then my question becomes why is the DMA tag special? We don't do this for resources, and we don't do this for the bus space tag. Is that just because normally it's virtio_pci doing the resource allocation?

Feb 11 2026, 9:02 AM

Feb 10 2026

br added a comment to D55220: virtio: get a correct tag for IOMMU operation.

How does this differ from the default implementation specified in sys/kern/bus_if.m, namely bus_generic_get_dma_tag?

Feb 10 2026, 3:13 PM
br requested review of D55220: virtio: get a correct tag for IOMMU operation.
Feb 10 2026, 2:05 PM

Jan 30 2026

br added a comment to D43452: riscv: Introduce support for Incoming MSI Controller (IMSIC).

how hard it would be to implement MSI interface here? to support MSI interrupts from devices, which is a crucial functionality

Jan 30 2026, 4:38 PM · riscv

Jan 22 2026

br updated the diff for D54826: Import the Hardware Counters (HWC) Framework.

remove unused functions/prototypes

Jan 22 2026, 4:40 PM
br requested review of D54826: Import the Hardware Counters (HWC) Framework.
Jan 22 2026, 2:39 PM

Jan 15 2026

br accepted D54676: arm64/iommu: Fix a resource leak in smmu_domain_alloc().
Jan 15 2026, 8:36 AM

Jan 7 2026

br added a comment to D54531: riscv cbo: fix cache underflushing.

Indeed. I do find however that this actually fixes my issue with if_xae when tag alignment requirement for TX/RX buffers is downgraded to lower values.

Jan 7 2026, 8:56 AM

Jan 5 2026

br requested review of D54531: riscv cbo: fix cache underflushing.
Jan 5 2026, 5:48 PM

Dec 16 2025

br committed rG012f1e4ae350: axidma(4): switch interrupt type. (authored by br).
axidma(4): switch interrupt type.
Dec 16 2025, 9:29 AM

Dec 14 2025

br accepted D54216: remove sys/dts/arm/socfpga_*_sdmmc.dts.
Dec 14 2025, 11:24 AM · ARM

Dec 12 2025

br committed rGc52253232a78: xae(4): remove unused function. (authored by br).
xae(4): remove unused function.
Dec 12 2025, 3:50 PM

Nov 27 2025

br committed rG06a4a092e684: riscv: include Xilinx PCIe controller driver. (authored by br).
riscv: include Xilinx PCIe controller driver.
Nov 27 2025, 9:01 AM

Nov 26 2025

br committed rG974ecf68903d: xae(4), axidma(4): rewrite DMA operation. (authored by br).
xae(4), axidma(4): rewrite DMA operation.
Nov 26 2025, 4:40 PM
br closed D53932: xae, axidma: rewrite.
Nov 26 2025, 4:39 PM
br requested review of D53932: xae, axidma: rewrite.
Nov 26 2025, 4:23 PM

Nov 25 2025

br closed D53903: em(4): fix capability bounds to access checksum context.
Nov 25 2025, 9:22 AM
br committed rG64ee9c166ce5: em(4): fix capability bounds needed to access checksum context. (authored by br).
em(4): fix capability bounds needed to access checksum context.
Nov 25 2025, 9:22 AM
br requested review of D53903: em(4): fix capability bounds to access checksum context.
Nov 25 2025, 8:55 AM
br committed rGb87f6330013f: nvme(4): Increase HMB alignment. (authored by br).
nvme(4): Increase HMB alignment.
Nov 25 2025, 8:47 AM
br closed D53296: nvme host buffer (HMB): alignment quirck for Crucial NVME.
Nov 25 2025, 8:46 AM

Nov 15 2025

br updated the diff for D53296: nvme host buffer (HMB): alignment quirck for Crucial NVME.

Agree on using PAGE_SIZE for everyone. Most likely more controllers have this issue (even within Crucial model range), so it is a way easier to align to page_size all of them rather than deal with bug reports from users. We are a general purpose OS.
And again, Linux align to PAGE_SIZE all of them as well.

Nov 15 2025, 9:47 PM
br updated the diff for D53296: nvme host buffer (HMB): alignment quirck for Crucial NVME.

rename macro

Nov 15 2025, 8:17 PM
br updated the diff for D53296: nvme host buffer (HMB): alignment quirck for Crucial NVME.

The issue arise on Crucial P310 only, so convert to a quirk

Nov 15 2025, 12:17 PM

Oct 31 2025

br accepted D53496: riscv/vmm: Remove a redundant maxcpu check in vm_alloc_vcpu().

looks redundant. thanks

Oct 31 2025, 2:02 PM

Oct 27 2025

br committed rG8a25a04058a8: xilinx pci: Codasip Prime board support (authored by br).
xilinx pci: Codasip Prime board support
Oct 27 2025, 7:58 PM
br closed D53295: xilinx pcib fixes.
Oct 27 2025, 7:57 PM

Oct 24 2025

br added a comment to D53296: nvme host buffer (HMB): alignment quirck for Crucial NVME.

What I see when 32 byte requested it actually gives us PAGE_SIZE aligned address, which works.

Oct 24 2025, 7:08 AM

Oct 23 2025

br added a comment to D53296: nvme host buffer (HMB): alignment quirck for Crucial NVME.

Good points. I will check with Codasip if this is something to do with CHERI (I don't see any connection however)

Oct 23 2025, 4:49 PM
br updated the summary of D53296: nvme host buffer (HMB): alignment quirck for Crucial NVME.
Oct 23 2025, 11:03 AM
br updated the summary of D53296: nvme host buffer (HMB): alignment quirck for Crucial NVME.
Oct 23 2025, 11:02 AM
br updated the test plan for D53296: nvme host buffer (HMB): alignment quirck for Crucial NVME.
Oct 23 2025, 10:57 AM
br updated the test plan for D53296: nvme host buffer (HMB): alignment quirck for Crucial NVME.
Oct 23 2025, 10:57 AM
br updated the test plan for D53296: nvme host buffer (HMB): alignment quirck for Crucial NVME.
Oct 23 2025, 10:51 AM
br requested review of D53296: nvme host buffer (HMB): alignment quirck for Crucial NVME.
Oct 23 2025, 10:46 AM
br requested review of D53295: xilinx pcib fixes.
Oct 23 2025, 10:42 AM

Oct 16 2025

br accepted D53134: pci/n1sdp: Disable HotPlug.
Oct 16 2025, 10:58 AM

Sep 2 2025

br added a comment to D50751: mmcspi: fix STOP retry.

Thanks @pkelsey. I will look at this once again (I did not forget about this but need to restore my CVA6 setup).

Sep 2 2025, 2:29 PM

Aug 18 2025

br accepted D51994: dev/fdt: Remove fdt_ic_list.
Aug 18 2025, 4:08 PM
br accepted D51993: virtio: Remove the unused poll method.
Aug 18 2025, 4:03 PM

Aug 5 2025

br updated the diff for D40477: HWT: ARM CoreSight support.

Regenerate

Aug 5 2025, 7:42 PM

Jul 11 2025

br committed rG55a25c753100: hwt(4): fix spelling. (authored by br).
hwt(4): fix spelling.
Jul 11 2025, 2:58 PM

Jul 9 2025

br committed rGbc2e3360107a: hwt(4): Add initial man page. (authored by br).
hwt(4): Add initial man page.
Jul 9 2025, 4:00 PM
br closed D51192: hwt(4) man page.
Jul 9 2025, 4:00 PM
br updated the diff for D51192: hwt(4) man page.

Add hwt.4 to the build and create MLINKS

Jul 9 2025, 1:11 PM
br added a comment to D51192: hwt(4) man page.

https://man-dev.freebsd.org/vt
And in current (not synced to web interface yet), check out uftdi, uchcom, or pf

Jul 9 2025, 12:40 PM
br updated the diff for D51192: hwt(4) man page.

rework SYNOPSIS

Jul 9 2025, 12:38 PM
br added inline comments to D51192: hwt(4) man page.
Jul 9 2025, 7:20 AM

Jul 8 2025

br added inline comments to D51192: hwt(4) man page.
Jul 8 2025, 6:28 PM
br updated the diff for D51192: hwt(4) man page.

improve HOOKS section

Jul 8 2025, 11:46 AM
br updated the diff for D51192: hwt(4) man page.

Address @ziaee comments

Jul 8 2025, 7:38 AM

Jul 7 2025

br updated the diff for D51192: hwt(4) man page.

reorder

Jul 7 2025, 3:23 PM
br updated the diff for D51192: hwt(4) man page.

Spelling

Jul 7 2025, 3:04 PM
br updated the diff for D51192: hwt(4) man page.

Fix issues found by mandoc lint

Jul 7 2025, 2:53 PM
br requested review of D51192: hwt(4) man page.
Jul 7 2025, 2:50 PM

Jul 3 2025

br committed rG906d7a4b521c: hwt: fix !SMP build. (authored by br).
hwt: fix !SMP build.
Jul 3 2025, 8:51 PM
br committed rG070d185b2f53: hwt: fix build. (authored by br).
hwt: fix build.
Jul 3 2025, 8:44 PM
br committed rGdf114daef4c4: Import the Hardware Trace (HWT) framework. (authored by br).
Import the Hardware Trace (HWT) framework.
Jul 3 2025, 3:03 PM
br closed D40466: Hardware Trace (HWT) framework.
Jul 3 2025, 3:03 PM