• Tony Krowiak's avatar
    s390: vfio-ap: sysfs interfaces to configure control domains · 3b1eab7f
    Tony Krowiak authored
    Provides the sysfs interfaces for:
    
    1. Assigning AP control domains to the mediated matrix device
    
    2. Unassigning AP control domains from a mediated matrix device
    
    3. Displaying the control domains assigned to a mediated matrix
       device
    
    The IDs of the AP control domains assigned to the mediated matrix
    device are stored in an AP domain mask (ADM). The bits in the ADM,
    from most significant to least significant bit, correspond to
    AP domain numbers 0 to 255. On some systems, the maximum allowable
    domain number may be less than 255 - depending upon the host's
    AP configuration - and assignment may be rejected if the input
    domain ID exceeds the limit.
    
    When a control domain is assigned, the bit corresponding its domain
    ID will be set in the ADM. Likewise, when a domain is unassigned,
    the bit corresponding to its domain ID will be cleared in the ADM.
    
    The relevant sysfs structures are:
    
    /sys/devices/vfio_ap/matrix/
    ...... [mdev_supported_types]
    ......... [vfio_ap-passthrough]
    ............ [devices]
    ...............[$uuid]
    .................. assign_control_domain
    .................. unassign_control_domain
    
    To assign a control domain to the $uuid mediated matrix device's
    ADM, write its domain number to the assign_control_domain file.
    To unassign a domain, write its domain number to the
    unassign_control_domain file. The domain number is specified
    using conventional semantics: If it begins with 0x the number
    will be parsed as a hexadecimal (case insensitive) number;
    if it begins with 0, it is parsed as an octal number;
    otherwise, it will be parsed as a decimal number.
    
    For example, to assign control domain 173 (0xad) to the mediated
    matrix device $uuid:
    
    	echo 173 > assign_control_domain
    
    	or
    
    	echo 0255 > assign_control_domain
    
    	or
    
    	echo 0xad > assign_control_domain
    
    To unassign control domain 173 (0xad):
    
    	echo 173 > unassign_control_domain
    
    	or
    
    	echo 0255 > unassign_control_domain
    
    	or
    
    	echo 0xad > unassign_control_domain
    
    The assignment will be rejected if the APQI exceeds the maximum
    value for an AP domain:
      * If the AP Extended Addressing (APXA) facility is installed,
        the max value is 255
      * Else the max value is 15
    Signed-off-by: default avatarTony Krowiak <akrowiak@linux.ibm.com>
    Reviewed-by: default avatarHalil Pasic <pasic@linux.ibm.com>
    Reviewed-by: default avatarCornelia Huck <cohuck@redhat.com>
    Tested-by: default avatarMichael Mueller <mimu@linux.ibm.com>
    Tested-by: default avatarFarhan Ali <alifm@linux.ibm.com>
    Tested-by: default avatarPierre Morel <pmorel@linux.ibm.com>
    Message-Id: <20180925231641.4954-9-akrowiak@linux.vnet.ibm.com>
    Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
    3b1eab7f
vfio_ap_ops.c 17.7 KB