Linux s390 Architecture development
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Anthony Krowiak" <akrowiak@linux.ibm.com>
Cc: linux-s390@vger.kernel.org,
	"Alexander Gordeev" <agordeev@linux.ibm.com>,
	"Vasily Gorbik" <gor@linux.ibm.com>,
	kvm@vger.kernel.org, "Heiko Carstens" <hca@linux.ibm.com>
Subject: Re: [PATCH v3 15/15] s390/vfio-ap: Add live guest migration chapter to vfio-ap.rst
Date: Tue, 30 Jun 2026 11:54:19 +0000	[thread overview]
Message-ID: <20260630115419.DF07A1F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260630104132.1598851-16-akrowiak@linux.ibm.com>

Thank you for your contribution! Sashiko AI review found 3 potential issue(s) to consider:
- [Low] Malformed reStructuredText syntax leading to potential build warnings (grid table and nested lists).
- [Low] Multiple typographical, grammatical errors, and inconsistent variable names in the newly added text.
- [Low] Logical contradiction in section heading.
--

commit 5afeaef82632a184153d66843b7e2a58e98d0cdd
Author: Anthony Krowiak <akrowiak@linux.ibm.com>

s390/vfio-ap: Add live guest migration chapter to vfio-ap.rst
    
This commit adds a 'Live Guest Migration' chapter to the vfio-ap.rst
documentation. It describes the details for initiating live guest migration
for a guest to which AP adapters, domains and control domains have been
passed through.

> diff --git a/Documentation/arch/s390/vfio-ap.rst b/Documentation/arch/s390/vfio-ap.rst
> index ac0c07f76ddd7..fc0707c0dffd6 100644
> --- a/Documentation/arch/s390/vfio-ap.rst
> +++ b/Documentation/arch/s390/vfio-ap.rst

[ ... ]

> +To be considered compatible, the AP configuration for the destination host must
> +meet these requirements:
>  
> -      (QEMU) device-del id=<device-id>
> +* Each AP adapter, domain and control domain number assigned to the source
> +  guest's AP configuration must be in the destination host's AP
> +  configuration. This can be verified as follows:
>  
> -      For example, to hot unplug the vfio_ap mediated device that was specified
> -      on the qemu command line with 'id=hostdev0' when the guest was started:
> +  * On the source host, display the AP configuration of the source guest:
>  
> -         (QEMU) device-del id=hostdev0
> +    .. code-block:: bash
>  
> -After live migration of the KVM guest completes, an AP configuration can be
> -restored to the KVM guest by hot plugging a vfio_ap mediated device on the target
> -system into the guest in one of two ways:
> +       cat /sys/devices/vfio_ap/matrix/$UUID/guest_matrix
> +       cat /sys/devices/vfio_ap/matrix/$UUID/control_domains
>  
> -1. If the KVM guest was started with libvirt, you can hot plug a matrix mediated
> -   device into the guest via the following virsh commands:
> +    .. note::
> +       Replace ``$UUID`` with the actual UUID of your mediated device.
>  
> -   virsh attach-device <guestname> <path-to-device-xml>
> +  * Display the AP configuration of the destination host:
>  
> -      For example, to hot plug mdev 62177883-f1bb-47f0-914d-32a22e3a8804 into
> -      the guest named 'my-guest':
> +    .. code-block:: bash
>  
> -         virsh attach-device my-guest ~/config/my-guest-hostdev.xml
> +       lszcrypt -V
> +       cat /sys/bus/ap/ap_control_domain_mask
>  
> -            The contents of my-guest-hostdev.xml:
> +    Note that each bit in the ap_control_domain_mask corresponds to
> +    correspond to domain numbers 0-255. If a bit is set to one, then

[Severity: Low]
This isn't a bug, but the phrase "corresponds to correspond to" appears
to be duplicated.

> +    the control domain is available on the destination host. For
> +    example:

[ ... ]

> ++-----------------------------------------------------------------------------+
> +| Table Keys                                                                  |
> ++=============================================================================+
> +|                                                                             |
> +| [1]        The hardware capability must be the same for both the source     |
> +|            and destination queue device.                                    |
> +|                                                                             |
> +| [2]        The source and destination queues must either both have          |
> +|            full native card function or both have stateless functions.      |
> +|            If the functional capabilities don't match, then the source      |
> +|            queue can have stateless capabilities since full native card     |
> +|            function can handle stateless functions; otherwise, migration    |
> +|            will fail.                                                       |
> +|                                                                             |
> +| [3]        The AP type on the source and destination guests can             |
> +|            differ if the queue passed through to the target guest is a      |
> +|            newer model (backwards compatible)                               |
> ++--------------+--------------------------------------------------------------+

[Severity: Low]
Will this malformed table bottom border cause sphinx build warnings?

The table body defines a single column, but the bottom border is split
into two columns by the + character, which violates reStructuredText grid 
table syntax.

> +
> +* To verify the hardware capabilities are compatible:
> +
> +  * On both the source and destination hosts, display the hardware capabilities
> +    for each AP adapter in the AP configuration for that host::
> +
> +       cat /sys/bus/ap/devices/card$APID/ap_functions
> +
> +    .. note::
> +       The ``$APID`` is the two-character adapter number in hexidecimal format;

[Severity: Low]
This isn't a bug, but there is a typo in the word "hexidecimal".

> +       for example, card02 or card1f. The ``/sys/bus/ap/devices`` directory
> +       also lists the APQNs of the queue devices installed in the respective
> +       host system with the first two characters being the APID.
> +
> +  * Verify the hardware capabilities for each AP adapter device on the source
> +    and destination host are compatible. The ``ap_functions`` attribute is a
> +    bitmask. The bits in the mask read from left to right starting with bit 0.
> +    Each bit that is set to one indicates the corresponding hardware capability
> +    is installed:
> +
> +    * Bits 0-3 are the facilities bits. Each bit value must match for the AP
> +      devices on the source and destination systems. The values indicate the
> +      following:
> +      * bit-0: APSC is installed
> +      * bit-1: AP4KM is installed
> +      * bit-2: AP4KC is installed

[Severity: Low]
Is a blank line needed before the nested list items (starting with bit-0)
to avoid reStructuredText parsing warnings?

> +
> +    * Bits 3-5 specify the adapter Modes. Only one of these bits will be set to
> +      one and must be the same for both the source and destination adapter
> +      devices:
> +      * bit-3: CCA-mode
> +      * bit-4: Accelerator-mode
> +      * bit-5: XCP-mode (EP11)
> +
> +    * Bit 6 specifies whether APXA is installed and must be the same for both
> +      the source and destination adapter devices.
> +
> +    * Bit 7 specifies command whether command filtering is installed

[Severity: Low]
This isn't a bug, but the phrase "command whether command filtering" has
duplicated words.

> +      and must be the same for both the source and destination adapter devices.

[ ... ]

> +One or more queues are not bound to the vfio_ap driver on the destination host
> +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> +The queue devices passed through to the source guest are not installed in the
> +destination host or are not bound to its vfio_ap device driver.
> +
> +**Source host**
> +
> ++--------------+----------------------------------------------------------------+
> +| Log          | Message                                                        |
> ++==============+================================================================+
> +| Console log: | error: operation failed: migration failed. Message from the    |
> +|              | source host: operation failed: job 'migration out' failed:     |
> +|              | Sibling indicated error 1. Message from the destination host:  |
> +|              | operation failed: job 'migration in' failed: load of migration |
> +|              | failed: No such device: Failed to load vmstate version_id: 1,  |
> +|              | ret: -19                                                       |
> ++--------------+----------------------------------------------------------------+
> +
> +**Destinaton host**

[Severity: Low]
This isn't a bug, but there is a typo in the word "Destinaton".

> +
> ++--------------+----------------------------------------------------------------+
> +| Kernel log:  | vfio_ap_mdev $UUID: Queue $APID.$APQI not available to         |
> +|              | vfio_ap driver on target host                                  |
> ++--------------+----------------------------------------------------------------+
> +| QEMU log:    | shutting down, reason=failed                                   |
> +|              | qemu-system-s390x: terminating on signal $SIGNAL_NUM from      |
> +|              | pid $PID $DAEMON                                               |
> ++--------------+----------------------------------------------------------------+

[ ... ]

> +**Destination host**
> +
> ++--------------+----------------------------------------------------------------+
> +| Log          | Message                                                        |
> ++==============+================================================================+
> +| Console log: | vfio_ap_mdev $UUID: migration failed: Failed to get hwinfo for |
> +|              | queue $APQN on target host: rc=$RESPONSE-CODE"                 |

[Severity: Low]
This isn't a bug, but there appears to be an unmatched trailing quote 
character at the end of the rc=$RESPONSE-CODE string.

> ++--------------+----------------------------------------------------------------+
> +| QEMU log:    | shutting down, reason=failed                                   |
> +|              | qemu-system-s390x: terminating on signal $SIGNAL-ID from pid   |
> +|              | $PID $DAEMON                                                   |
> ++--------------+----------------------------------------------------------------+
> +
> +.. note::
> +   * $UUID is the UUID of the mediated device being migrated from the source host.
> +   * $APQN (for example, 00.0033) of the queue device that is not compatible.
> +   * $RESPONSE_CODE is the response code from the AP instruction.
> +   * $SIGNAL_NUM is the signal number of the signal that caused the QEMU process
> +     to terminate.
> +   * $PID is the process ID of the QEMU process on the destination host.
> +   * $DAEMON is the name of the QEMU daemon process.
> +   * This message will be logged for each queue for which this error is detected.
> +
> +The AP configurations of the source guest and destination host not incompatible
> +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[Severity: Low]
Does this heading have a double negative? 

The text below it enumerates failures when the configurations are not 
compatible, but the heading says "not incompatible" which logically means
they are compatible.

> +The functional capabilities or facilities available on one or more of the queues
> +passed through to the source guest are not compatible with the queue device with
> +the same APQN on the destination system (see the Hardware Capabilities table above)
> +

[ ... ]

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260630104132.1598851-1-akrowiak@linux.ibm.com?part=15

      reply	other threads:[~2026-06-30 11:54 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-30 10:41 [PATCH v3 00/15] s390/vfio-ap: Add live guest migration support Anthony Krowiak
2026-06-30 10:41 ` [PATCH v3 01/15] s390/vfio-ap: Provide function to get the number of queues assigned to mdev Anthony Krowiak
2026-06-30 10:41 ` [PATCH v3 02/15] s390/vfio-ap: Data structures for facilitating vfio device migration Anthony Krowiak
2026-06-30 10:55   ` sashiko-bot
2026-06-30 10:41 ` [PATCH v3 03/15] s390/vfio-ap: Initialize/release vfio device migration data Anthony Krowiak
2026-06-30 11:04   ` sashiko-bot
2026-06-30 10:41 ` [PATCH v3 04/15] s390/vfio-ap: Reset migration state in VFIO_DEVICE_RESET ioctl handler Anthony Krowiak
2026-06-30 11:10   ` sashiko-bot
2026-06-30 10:41 ` [PATCH v3 05/15] s390-vfio-ap: Callback to get/set vfio device mig state during guest migration Anthony Krowiak
2026-06-30 11:11   ` sashiko-bot
2026-06-30 10:41 ` [PATCH v3 06/15] s390/vfio-ap: Transition guest migration state from STOP to STOP_COPY Anthony Krowiak
2026-06-30 11:23   ` sashiko-bot
2026-06-30 10:41 ` [PATCH v3 07/15] s390/vfio-ap: File ops called to save the vfio device migration state Anthony Krowiak
2026-06-30 11:26   ` sashiko-bot
2026-06-30 10:41 ` [PATCH v3 08/15] s390/vfio-ap: Transition device migration state from STOP to RESUMING Anthony Krowiak
2026-06-30 11:28   ` sashiko-bot
2026-06-30 10:41 ` [PATCH v3 09/15] s390/vfio-ap: Add method to set a new guest AP configuration Anthony Krowiak
2026-06-30 11:34   ` sashiko-bot
2026-06-30 10:41 ` [PATCH v3 10/15] s390/vfio-ap: File ops called to resume the vfio device migration Anthony Krowiak
2026-06-30 11:37   ` sashiko-bot
2026-06-30 10:41 ` [PATCH v3 11/15] s390/vfio-ap: Transition device migration state to STOP Anthony Krowiak
2026-06-30 11:46   ` sashiko-bot
2026-06-30 10:41 ` [PATCH v3 12/15] s390/vfio-ap: Transition device migration state from STOP to RUNNING and vice versa Anthony Krowiak
2026-06-30 11:48   ` sashiko-bot
2026-06-30 10:41 ` [PATCH v3 13/15] s390/vfio-ap: Callback to get the size of data to be migrated during guest migration Anthony Krowiak
2026-06-30 11:49   ` sashiko-bot
2026-06-30 10:41 ` [PATCH v3 14/15] s390/vfio-ap: Add 'migratable' feature to sysfs 'features' attribute Anthony Krowiak
2026-06-30 11:56   ` sashiko-bot
2026-06-30 10:41 ` [PATCH v3 15/15] s390/vfio-ap: Add live guest migration chapter to vfio-ap.rst Anthony Krowiak
2026-06-30 11:54   ` sashiko-bot [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260630115419.DF07A1F000E9@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=agordeev@linux.ibm.com \
    --cc=akrowiak@linux.ibm.com \
    --cc=gor@linux.ibm.com \
    --cc=hca@linux.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=sashiko-reviews@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox