On 1/27/25 15:15, David Hildenbrand wrote:
On 27.01.25 14:41, Michal Prívozník wrote:
> On 1/27/25 13:44, David Hildenbrand wrote:
>> On 27.01.25 13:01, Boris Fiuczynski wrote:
>>> On 1/24/25 13:35, David Hildenbrand wrote:
>>>> On 24.01.25 13:21, Michal Privoznik wrote:
>>>>> Drop explicit request to place virtio-mem on PCI bus from the
>>>>> input memory-hotplug-virtio-mem-s390x.xml and demonstrate how the
>>>>> device is automatically placed onto CCW.
>>>>>
>>>>
>>>> Could it still be manually placed on the PCI bus?
>
> It can, but as you point out, qemu refuses to start.
>
>>>>
>>>> As of now, virtio-mem-pci is not supported on s390x -- IIRC
>>>> plugging the
>>>> device would fail -- but maybe, in a distant future it might be
>>>> supported.
>>>>
>>>
>>> David,
>>
>> Hi Boris,
>>
>>> the libvirt probing of capabilities with qemu v9.2.0-1203-gd6430c17d7
>>> returns virtio-mem-pci support based on the QOM. Should that be fixed?
>>
>> Right, it's similar to virtio-balloon-pci: while it is compiled into
>> QEMU, plugging these devices will fail due to lack of MSI-X support. [1]
>>
>> For virtio-mem-pci, in addition to MSI-X support, we'll have to wire up
>> the (un)plug handlers in the machine, which are currently blocked:
>>
>> Which leaves us with three options:
>>
>> (1) Leave it as is: device is compiled in but cannot be used, just like
>> virtio-balloon-pci
>> (2) Implement MSI-X and (un)plug support
>> (3) Do not compile the device in
>
> This last option is something I've experimented with, but then got lost
> in the weeds of code interdeps.
Yes, that last thing happened to me when I last looked into that ...
> In the end I've decided it's not a huge
> problem, is it. In my patches (e.g. 5/8) I look what bus is virtio-mem
> attached to and check for corresponding capability.
>
> OTOH, support for .prealloc and .dynamic-memslots is detected from
> virtio-mem-pci device. If virtio-mem-pci device would be compiled out
> then libvirt would need a code to check these attributes for virtio-
> mem-ccw.
Yes, that would be unfortunate.
Looks like I have it running, so we can just support it in QEMU as it
seems.
I see you already posted patches. Let me take a look.
We should default to CCW on s390x, though.
Absolutely! And that's what my patches do too. Unless the device is
explicitly placed onto PCI bus (<address type='pci'/>) libvirt puts it
onto CCW, which in turn selects virtio-mem-ccw when building cmd line.
Michal