On Thu, 4 Jan 2024 10:39:41 -0700 Alex Williamson <alex.william...@redhat.com> wrote:
> On Thu, 4 Jan 2024 16:40:39 +0000 > Ankit Agrawal <ank...@nvidia.com> wrote: > > > Had a discussion with RH folks, summary follows: > > > > 1. To align with the current spec description pointed by Jonathan, we first > > do > > a separate object instance per GI node as suggested by Jonathan. i.e. > > a acpi-generic-initiator would only link one node to the device. To > > associate a set of nodes, those number of object instances should be > > created. > > 2. In parallel, we work to get the spec updated. After the update, we switch > > to the current implementation to link a PCI device with a set of NUMA > > nodes. > > > > Alex/Jonathan, does this sound fine? > > > > Yes, as I understand Jonathan's comments, the acpi-generic-initiator > object should currently define a single device:node relationship to > match the ACPI definition. Doesn't matter for this, but it's a many_device:single_node relationship as currently defined. We should be able to support that in any new interfaces for QEMU. > Separately a clarification of the spec > could be pursued that could allow us to reinstate a node list option > for the acpi-generic-initiator object. In the interim, a user can > define multiple 1:1 objects to create the 1:N relationship that's > ultimately required here. Thanks, Yes, a spec clarification would work, probably needs some text to say a GI might not be an initiator as well - my worry is theoretical backwards compatibility with a (probably nonexistent) OS that assumes the N:1 mapping. So you may be in new SRAT entry territory. Given that, an alternative proposal that I think would work for you would be to add a 'placeholder' memory node definition in SRAT (so allow 0 size explicitly - might need a new SRAT entry to avoid backwards compat issues). Then put the GPU initiator part in a GI node and use the HMAT Memory Proximity Domain Attributes magic linkage entry "Proximity Domain for the Attached Initiator" to associate the placeholder memory nodes with the GI / GPU. I'd go to ASWG with a big diagram and ask 'how do I do this!' If you do it code first I'm happy to help out with refining the proposal. I just don't like the time of ASWG calls so tend to not make them in person. Or just emulate UEFI's CDAT (from CXL, but not CXL specific) from your GPU and make it a driver problem ;) Jonathan > > Alex >