Hi all,
A few days ago during the review of the P11 patches, Cedric suggested
removing the use of qdev_get_machine()
[https://lore.kernel.org/qemu-devel/[email protected]/]
and instead using MMIO to obtain the address of remote virtualization
structures. However, it wasn't feasible to implement this change
alongside the P11 updates, so we opted for a temporary workaround to
eliminate the use of qdev_get_machine().
[https://lore.kernel.org/qemu-devel/[email protected]/]
Now, we are planning to revisit and improve the way we access remote
controllers. We have considered a couple of approaches:
1. Implement MMIO operations for all BARs
Redirect all remote access through the BARs instead of iterating over
all XIVE instances to retrieve the virtualization structure addresses.
2. Use a dedicated MMIO offset to return the address of the
virtualization structure:
This is a simpler solution, similar to what Cedric implemented for P9,
the idea is to define a special MMIO offset that when accessed returns
the address directly. This avoids the need for qdev_get_machine() and
keeps the design simple.
Any suggestions or feedback on these approaches.
Thanks
Ganesh