Skip to content

[BUG] Raw GPUDirect bench can't TX with memory.kind: huge — fill uses cudaMemcpyHostToDevice #230

Description

@RamyaGuru

daqiri_bench_raw_gpudirect reports zero TX bursts when the TX packet-buffer memory region is kind: huge (or host). The per-packet fill in tx_worker() (examples/raw_gpudirect_bench.cpp) copies a host template into each buffer with cudaMemcpy(..., cudaMemcpyHostToDevice), but with those kinds the buffers are CPU hugepages, so every copy fails and the fill loop bails out. This blocks measuring a CPU / host-DMA raw-Ethernet TX baseline on the same harness.

Fix: use cudaMemcpyDefault, which infers direction under UVA — identical behavior for the existing kind: device / host_pinned (device destination) and additionally working for CPU destinations.

Repro: point a daqiri_bench_raw_* TX+RX config's TX buffer region at kind: huge and run the bench → TX = 0 (seen on IGX Thor, DPDK raw engine).

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions