Re: [RFC 00/13] vfio: introduce vfio-cxl to support CXL type-2 accelerator passthrough

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 10/19/24 06:30, Zhi Wang wrote:
On 04/10/2024 14.40, Jonathan Cameron wrote:
External email: Use caution opening links or attachments


Presumably, the host creates one large CXL region that covers the entire
DPA, while QEMU can virtually partition it into different regions and
map them to different virtual CXL region if QEMU presents multiple HDM
decoders to the guest.
I'm not sure why it would do that. Can't think why you'd break up
a host region - maybe I'm missing something.

It is mostly concerning about a device can have multiple HDM decoders.
In the current design, a large physical CXL (pCXL) region with the whole
DPA will be passed to the userspace. Thinking that the guest will see
the virtual multiple HDM decoders, which usually SW is asking for, the
guest SW might create multiple virtual CXL regions. In that case QEMU
needs to map them into different regions of the pCXL region.
Don't let the guest see multiple HDM decoders?

There is no obvious reason why it would want them other than type
differences.

Why is it useful for a type 2 device to be setup for multiple CXL regions?
It shouldn't be a performance thing. Might be convenient for management
I guess, but the driver can layer it's own allocator etc on top of a single
region so I'm not sure I see a reason to do this...

Sorry for the late reply as I were confirming the this requirement with
folks. It make sense to have only one HDM decoder for the guest CXL
type-2 device driver. I think it is similar to efx_cxl according to the
code. Alejandro, it would be nice you can confirm this.


Not sure if how sfc does this should be taken as any confirmation of expected behavior/needs, but we plan to have just one HDM decoder and one region covering it all.


But maybe it is important to make clear the distinction between an HDM decoder and CXL regions linked to it. In other words, I can foresee different regions programmed by the driver because the way coherency is going to be handled by the device changes for each region. So supporting multiple regions makes sense with just one decoder. Not sure if we should rely on an use case for supporting more than one region ...


Thanks,
Zhi.
Jonathan






[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux