Re: git: c499ad6f997c - main - virtio: Use bus_dma for ring and indirect buffer allocations

From: Andrew Turner <andrew_at_FreeBSD.org>
Date: Mon, 09 Mar 2026 16:38:24 UTC
> On 8 Mar 2026, at 17:39, Herbert J. Skuhra <herbert@gojira.at> wrote:
> 
> On Tue, 03 Mar 2026 18:37:57 +0100, Andrew Turner wrote:
>> 
>> The branch main has been updated by andrew:
>> 
>> URL: https://cgit.FreeBSD.org/src/commit/?id=c499ad6f997c8c5f61c88925e6d1e826d0c0f6c4
>> 
>> commit c499ad6f997c8c5f61c88925e6d1e826d0c0f6c4
>> Author:     Sarah Walker <sarah.walker2@arm.com>
>> AuthorDate: 2026-03-03 16:08:11 +0000
>> Commit:     Andrew Turner <andrew@FreeBSD.org>
>> CommitDate: 2026-03-03 16:29:15 +0000
>> 
>>    virtio: Use bus_dma for ring and indirect buffer allocations
>> 
>>    While the majority of virtio platforms will be fully coherent, some may
>>    require cache maintenance or other specific device memory handling (eg for
>>    secure partitioning). Using bus_dma allows for these usecases.
>> 
>>    The virtio buffers are marked as coherent; this should ensure that sync
>>    calls are no-ops in the common cases.
>> 
>>    Reviewed by:    andrew
>>    Sponsored by:   Arm Ltd
>>    Differential Revision:  https://reviews.freebsd.org/D54959
>> ---
>> sys/dev/virtio/virtio_ring.h |  27 ++++--
>> sys/dev/virtio/virtqueue.c   | 216 +++++++++++++++++++++++++++++++++++++------
>> 2 files changed, 209 insertions(+), 34 deletions(-)
> 
> After this change I see a lot of "kernel: vtnet0: watchdog timeout on
> queue xx" errors on amd64 (arm64 seems to be OK).
> 
> Reverting this commit resolves the issue.

Can you try the change in https://reviews.freebsd.org/D55766? It re-adds memory barriers for amd64.

Andrew