Page MenuHomeFreeBSD

br (Ruslan Bukin)
User

Projects

User Details

User Since
Nov 27 2014, 10:57 AM (619 w, 2 d)

Recent Activity

Fri, Oct 9

br updated the diff for D60539: mgb: support for PCI11414.

Style.

Fri, Oct 9, 5:08 PM
br updated the summary of D60539: mgb: support for PCI11414.
Fri, Oct 9, 4:57 PM
br requested review of D60539: mgb: support for PCI11414.
Fri, Oct 9, 4:56 PM

Tue, Oct 6

br committed rG3e01ebda6829: riscv: support the new "riscv,isa-extensions" string-array. (authored by br).
riscv: support the new "riscv,isa-extensions" string-array.
Tue, Oct 6, 7:11 PM
br closed D60209: riscv: support new "riscv,isa-extensions" string-array.
Tue, Oct 6, 7:11 PM
br updated the diff for D60209: riscv: support new "riscv,isa-extensions" string-array.
  • explicit panic if the string does not fit static buffer
  • reuse isa_extensions static buffer in the legacy routine
Tue, Oct 6, 7:49 AM

Thu, Oct 1

br requested review of D60209: riscv: support new "riscv,isa-extensions" string-array.
Thu, Oct 1, 6:13 PM

Wed, Sep 30

br committed rG005af8327476: dwc4_dma: fix armv7 build. (authored by br).
dwc4_dma: fix armv7 build.
Wed, Sep 30, 1:47 PM
br committed rG9006a6ad1b30: dwc(4): Support a major update of Synopsys IP. (authored by br).
dwc(4): Support a major update of Synopsys IP.
Wed, Sep 30, 11:28 AM
br closed D59191: dwc(4): support Synopsys IP version 4 and 5.
Wed, Sep 30, 11:27 AM
br committed rG7a57dcda272c: gicv5_acpi: fix non-SMP build (authored by br).
gicv5_acpi: fix non-SMP build
Wed, Sep 30, 10:17 AM
br closed D60071: gicv5_acpi: fix non-SMP build.
Wed, Sep 30, 10:17 AM

Tue, Sep 29

br updated the diff for D59191: dwc(4): support Synopsys IP version 4 and 5.

Fix checksum offload for IPV6, both receive and transmit paths.

Tue, Sep 29, 5:13 PM

Mon, Sep 28

br added a comment to D59191: dwc(4): support Synopsys IP version 4 and 5.

The driver advertises the following: IFCAP_VLAN_MTU, IFCAP_HWCSUM and IFCAP_HWCSUM_IPV6. What happens if the user enables one of these? I only see that IFCAP_RXCSUM is implemented, albeit probably only partially. In all other cases, the driver either emits an invalid packet, is unable to receive a valid packet, or it panics.

Mon, Sep 28, 4:44 PM
br added inline comments to D59191: dwc(4): support Synopsys IP version 4 and 5.
Mon, Sep 28, 4:42 PM
br updated the diff for D59191: dwc(4): support Synopsys IP version 4 and 5.

resubmit correct file

Mon, Sep 28, 4:40 PM
br updated the diff for D59191: dwc(4): support Synopsys IP version 4 and 5.

remove wmb() on receive path as we don't set any descriptor bits prior setting OWN

Mon, Sep 28, 4:40 PM
br updated the diff for D59191: dwc(4): support Synopsys IP version 4 and 5.

implement IP checksum offload on receive path

Mon, Sep 28, 4:15 PM

Sun, Sep 27

br requested review of D60071: gicv5_acpi: fix non-SMP build.
Sun, Sep 27, 5:35 PM

Thu, Sep 24

br added inline comments to D59695: riscv: incoming MSI controller (IMSIC) support.
Thu, Sep 24, 7:19 AM
br updated the diff for D59695: riscv: incoming MSI controller (IMSIC) support.

Address @mhorne comments.

Thu, Sep 24, 7:18 AM

Wed, Sep 23

br added inline comments to D59191: dwc(4): support Synopsys IP version 4 and 5.
Wed, Sep 23, 9:45 AM
br updated the diff for D59191: dwc(4): support Synopsys IP version 4 and 5.

remove debug

Wed, Sep 23, 9:45 AM
br updated the diff for D59191: dwc(4): support Synopsys IP version 4 and 5.
  • add panic() calls in place of TODO comments
  • add wmb()
Wed, Sep 23, 9:44 AM
br updated the diff for D59695: riscv: incoming MSI controller (IMSIC) support.

fix hartid type (should be uint32_t)

Wed, Sep 23, 9:25 AM

Tue, Sep 22

br updated the diff for D59695: riscv: incoming MSI controller (IMSIC) support.

include the full patch

Tue, Sep 22, 7:59 AM
br added a comment to D59695: riscv: incoming MSI controller (IMSIC) support.

Glad to see this moving forward. I only skimmed the overall structure, and in particular I am not confident about MSI code.

My main concern is about this 'pool' mechanism. Why is it important to preallocate these irqsrc structures, and is there any way to be smarter about it (upper bound, or runtime expansion of the pool as-needed?). Unless I am mistaken there is not a high reuse rate.

Tue, Sep 22, 7:56 AM
br updated the diff for D59695: riscv: incoming MSI controller (IMSIC) support.

remove irq pool to simplify operation. Allocate and register IRQs on demand

Tue, Sep 22, 7:49 AM

Mon, Sep 21

br updated the diff for D59695: riscv: incoming MSI controller (IMSIC) support.
  • don't claim to be root PIC
  • switch to intc bus
  • NIRQ: lower down the value to 8192
  • allocate memory for pcpu_data and imsic_irq_pool
Mon, Sep 21, 6:58 PM
br updated the diff for D59813: riscv intc: convert to a bus.

Initialize the child PIC with interrupts disabled on the root PIC

Mon, Sep 21, 6:48 PM

Fri, Sep 18

br updated the diff for D59813: riscv intc: convert to a bus.

Another idea draft for discussion

Fri, Sep 18, 8:12 PM
br added a comment to D59813: riscv intc: convert to a bus.

Please go read all of D40474

Fri, Sep 18, 3:05 PM
br requested review of D59813: riscv intc: convert to a bus.
Fri, Sep 18, 2:30 PM

Tue, Sep 15

br requested review of D59695: riscv: incoming MSI controller (IMSIC) support.
Tue, Sep 15, 8:56 AM
br accepted D59689: riscv: Preserve savectx return address with vector support.
Tue, Sep 15, 6:40 AM

Sep 3 2026

br added a comment to D59251: xdma.4: Connect to the build.

Hi let me improve it a bit first as it looks incomplete

Sep 3 2026, 6:36 PM

Aug 27 2026

br added a comment to D59191: dwc(4): support Synopsys IP version 4 and 5.

Because both the DMA and the CPU may write to descriptors simultaneously, the driver must require BUS_DMA_COHERENT memory.

Aug 27 2026, 10:08 AM

Aug 26 2026

br added a comment to D59191: dwc(4): support Synopsys IP version 4 and 5.

Oh, I did not know eqos(4) was imported from NetBSD!

Aug 26 2026, 11:09 AM
br requested review of D59191: dwc(4): support Synopsys IP version 4 and 5.
Aug 26 2026, 8:23 AM

Aug 17 2026

br added a comment to D58370: snd_hdspe: Avoid allocation in the interrupt handler.

Thanks. We needed that for many years as detaching was sometimes panic system:)

Aug 17 2026, 2:01 PM
br accepted D58370: snd_hdspe: Avoid allocation in the interrupt handler.
Aug 17 2026, 2:00 PM

Jun 24 2026

br committed rG34397aec163c: riscv: Use namespace-safe type __uint64_t to not depend on sys/types.h (authored by br).
riscv: Use namespace-safe type __uint64_t to not depend on sys/types.h
Jun 24 2026, 9:11 AM
br committed rGd7a393095cfd: riscv: Vector Extension (RVV) support. (authored by br).
riscv: Vector Extension (RVV) support.
Jun 24 2026, 8:08 AM
br closed D56414: riscv: vector extension support.
Jun 24 2026, 8:08 AM

Jun 10 2026

br added a comment to D56414: riscv: vector extension support.

No support for ucontext.h posix API (looks like legacy)

This does need to work; what does Linux do?

Jun 10 2026, 10:18 AM
br updated the diff for D56414: riscv: vector extension support.

Implement ucontext.h POSIX API

Jun 10 2026, 10:15 AM

Jun 3 2026

br added a comment to D57405: libc: fix strtold NaN representation on riscv.

Hm, seems the current version is the same as the arm file, and now it's the same as the aarch64 one? I'm guessing copying from arm is how this came to be...

Jun 3 2026, 6:07 PM

May 16 2026

br committed rG7eb71fd267c6: riscv: fix GENERIC-NODEBUG build (authored by br).
riscv: fix GENERIC-NODEBUG build
May 16 2026, 8:21 PM

May 12 2026

br committed rGbcecad2c24aa: riscv: IOMMU support (authored by br).
riscv: IOMMU support
May 12 2026, 10:21 AM
br closed D55922: RISC-V IOMMU support.
May 12 2026, 10:21 AM
br updated the diff for D55922: RISC-V IOMMU support.

Regenerate

May 12 2026, 10:06 AM

May 4 2026

br added inline comments to D55922: RISC-V IOMMU support.
May 4 2026, 11:08 AM

Apr 15 2026

br requested review of D56414: riscv: vector extension support.
Apr 15 2026, 4:00 PM

Mar 18 2026

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

Mar 5 2026

br committed rGd3eaa40282c7: riscv: save FPE state in cpu_fork(). (authored by jsihv_gmx.com).
riscv: save FPE state in cpu_fork().
Mar 5 2026, 9:02 AM
br closed D53804: riscv cpu_fork(), saving fpe state.
Mar 5 2026, 9:02 AM · riscv
br committed rGdff2758b5fa7: static dtb: add BTI note (authored by br).
static dtb: add BTI note
Mar 5 2026, 8:56 AM
br closed D55636: static dtb: add BTI note.
Mar 5 2026, 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!

Mar 5 2026, 8:36 AM · network

Mar 4 2026

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.

Mar 4 2026, 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.

Mar 4 2026, 11:45 AM

Mar 3 2026

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

Mar 2 2026

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

Change header tag alignment size.

Mar 2 2026, 12:12 PM

Feb 27 2026

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?

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

found another bug here, will resubmit

Feb 27 2026, 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?

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

Feb 25 2026

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
Feb 25 2026, 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?

Feb 25 2026, 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

Feb 25 2026, 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?

Feb 25 2026, 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
Feb 25 2026, 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)
Feb 25 2026, 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
Feb 25 2026, 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

Feb 25 2026, 8:32 AM · riscv

Feb 24 2026

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!

Feb 24 2026, 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