linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC] Legacy Virtio Driver with Device Has Limited Memory Access
@ 2024-05-16  4:38 Shunsuke Mie
  2024-05-16 12:59 ` Manivannan Sadhasivam
  0 siblings, 1 reply; 22+ messages in thread
From: Shunsuke Mie @ 2024-05-16  4:38 UTC (permalink / raw)
  To: linux-pci, Manivannan Sadhasivam

Hi virtio folks,

I'm writing to discuss finding a workaround with Virtio drivers and legacy
devices with limited memory access.

# Background
The Virtio specification defines a feature (VIRTIO_F_ACCESS_PLATFORM) to
indicate devices requiring restricted memory access or IOMMU translation. This
feature bit resides at position 33 in the 64-bit Features register on modern
interfaces. When the linux virtio driver finds the flag, the driver uses DMA
API that handles to use of appropriate memory.

# Problem
However, legacy devices only have a 32-bit register for the features bits.
Consequently, these devices cannot represent the ACCESS_PLATFORM bit. As a
result, legacy devices with restricted memory access cannot function
properly[1]. This is a legacy spec issue, but I'd like to find a workaround.

# Proposed Solutions
I know these are not ideal, but I propose the following solution.
Driver-side:
    - Implement special handling similar to xen_domain.
In xen_domain, linux virtio driver enables to use the DMA API.
    - Introduce a CONFIG option to adjust the DMA API behavior.
Device-side:
Due to indistinguishability from the guest's perspective, a device-side
solution might be difficult.

I'm open to any comments or suggestions you may have on this issue or
alternative approaches.

[1] virtio-net PCI endpoint function using PCIe Endpoint Framework,
https://lore.kernel.org/lkml/54ee46c3-c845-3df3-8ba0-0ee79a2acab1@igel.co.jp/t/
The Linux PCIe endpoint framework is used to implement the virtio-net device on
a legacy interface. This is necessary because of the framework and hardware
limitation.

Thanks,
Shunsuke

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2024-06-19  8:28 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-16  4:38 [RFC] Legacy Virtio Driver with Device Has Limited Memory Access Shunsuke Mie
2024-05-16 12:59 ` Manivannan Sadhasivam
2024-05-16 13:13   ` Michael S. Tsirkin
2024-05-20 10:24   ` Shunsuke Mie
2024-05-30 15:07     ` Manivannan Sadhasivam
2024-05-20 13:22   ` Michael S. Tsirkin
2024-06-14  9:50     ` Manivannan Sadhasivam
2024-06-17 23:41       ` Shunsuke Mie
2024-06-18  6:54         ` Manivannan Sadhasivam
2024-06-18  9:47         ` Michael S. Tsirkin
2024-06-18 10:15           ` Shunsuke Mie
2024-06-18 10:33             ` Michael S. Tsirkin
2024-06-18 10:40               ` Shunsuke Mie
2024-06-18 10:47                 ` Michael S. Tsirkin
2024-06-18 12:51                   ` Shunsuke Mie
2024-06-19  7:32                     ` Michael S. Tsirkin
2024-06-19  7:39                       ` Manivannan Sadhasivam
2024-06-19  7:58                         ` Michael S. Tsirkin
2024-06-19  8:28                           ` Manivannan Sadhasivam
2024-06-19  7:07         ` Christoph Hellwig
2024-06-18 10:09       ` Michael S. Tsirkin
2024-05-30 16:43   ` Michael S. Tsirkin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).