• Tony Krowiak's avatar
    s390/vfio-ap: let on_scan_complete() callback filter matrix and update guest's APCB · 774d1019
    Tony Krowiak authored
    When adapters and/or domains are added to the host's AP configuration, this
    may result in multiple queue devices getting created and probed by the
    vfio_ap device driver. For each queue device probed, the matrix of adapters
    and domains assigned to a matrix mdev will be filtered to update the
    guest's APCB. If any adapters or domains get added to or removed from the
    APCB, the guest's AP configuration will be dynamically updated (i.e., hot
    plug/unplug). To dynamically update the guest's configuration, its VCPUs
    must be taken out of SIE for the period of time it takes to make the
    update. This is disruptive to the guest's operation and if there are many
    queues probed due to a change in the host's AP configuration, this could be
    troublesome. The problem is exacerbated by the fact that the
    'on_scan_complete' callback also filters the mdev's matrix and updates
    the guest's AP configuration.
    
    In order to reduce the potential amount of disruption to the guest that may
    result from a change to the host's AP configuration, let's bypass the
    filtering of the matrix and updating of the guest's AP configuration in the
    probe callback - if due to a host config change - and defer it until the
    'on_scan_complete' callback is invoked after the AP bus finishes its device
    scan operation. This way the filtering and updating will be performed only
    once regardless of the number of queues added.
    Signed-off-by: default avatarTony Krowiak <akrowiak@linux.ibm.com>
    Reviewed-by: default avatarHalil Pasic <pasic@linux.ibm.com>
    Fixes: 48cae940 ("s390/vfio-ap: refresh guest's APCB by filtering AP resources assigned to mdev")
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20240115185441.31526-4-akrowiak@linux.ibm.comSigned-off-by: default avatarAlexander Gordeev <agordeev@linux.ibm.com>
    774d1019
vfio_ap_ops.c 70.9 KB