[PATCH 1/3] iommufd: Remove IOMMUFD_PAGE_RESP_FAILURE

Lu Baolu posted 3 patches 1 year, 5 months ago
[PATCH 1/3] iommufd: Remove IOMMUFD_PAGE_RESP_FAILURE
Posted by Lu Baolu 1 year, 5 months ago
The response code of IOMMUFD_PAGE_RESP_FAILURE was defined to be
equivalent to the "Response Failure" in PCI spec, section 10.4.2.1.
This response code indicates that one or more pages within the
associated request group have encountered or caused an unrecoverable
error. Therefore, this response disables the PRI at the function.

Modern I/O virtualization technologies, like SR-IOV, share PRI among
the assignable device units. Therefore, a response failure on one unit
might cause I/O failure on other units.

Remove this response code so that user space can only respond with
SUCCESS or INVALID. The VMM is recommended to emulate a failure response
as a PRI reset, or PRI disable and changing to a non-PRI domain.

Fixes: c714f15860fc ("iommufd: Add fault and response message definitions")
Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
---
 include/uapi/linux/iommufd.h | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/include/uapi/linux/iommufd.h b/include/uapi/linux/iommufd.h
index ede2b464a761..e31385b75d0b 100644
--- a/include/uapi/linux/iommufd.h
+++ b/include/uapi/linux/iommufd.h
@@ -765,14 +765,10 @@ struct iommu_hwpt_pgfault {
  * @IOMMUFD_PAGE_RESP_INVALID: Could not handle this fault, don't retry the
  *                             access. This is the "Invalid Request" in PCI
  *                             10.4.2.1.
- * @IOMMUFD_PAGE_RESP_FAILURE: General error. Drop all subsequent faults from
- *                             this device if possible. This is the "Response
- *                             Failure" in PCI 10.4.2.1.
  */
 enum iommufd_page_response_code {
 	IOMMUFD_PAGE_RESP_SUCCESS = 0,
 	IOMMUFD_PAGE_RESP_INVALID,
-	IOMMUFD_PAGE_RESP_FAILURE,
 };
 
 /**
-- 
2.34.1
RE: [PATCH 1/3] iommufd: Remove IOMMUFD_PAGE_RESP_FAILURE
Posted by Tian, Kevin 1 year, 5 months ago
> From: Lu Baolu <baolu.lu@linux.intel.com>
> Sent: Wednesday, July 10, 2024 4:34 PM
> 
> The response code of IOMMUFD_PAGE_RESP_FAILURE was defined to be
> equivalent to the "Response Failure" in PCI spec, section 10.4.2.1.
> This response code indicates that one or more pages within the
> associated request group have encountered or caused an unrecoverable
> error. Therefore, this response disables the PRI at the function.
> 
> Modern I/O virtualization technologies, like SR-IOV, share PRI among
> the assignable device units. Therefore, a response failure on one unit
> might cause I/O failure on other units.
> 
> Remove this response code so that user space can only respond with
> SUCCESS or INVALID. The VMM is recommended to emulate a failure
> response
> as a PRI reset, or PRI disable and changing to a non-PRI domain.
> 
> Fixes: c714f15860fc ("iommufd: Add fault and response message definitions")
> Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
> ---
>  include/uapi/linux/iommufd.h | 4 ----
>  1 file changed, 4 deletions(-)
> 
> diff --git a/include/uapi/linux/iommufd.h b/include/uapi/linux/iommufd.h
> index ede2b464a761..e31385b75d0b 100644
> --- a/include/uapi/linux/iommufd.h
> +++ b/include/uapi/linux/iommufd.h
> @@ -765,14 +765,10 @@ struct iommu_hwpt_pgfault {
>   * @IOMMUFD_PAGE_RESP_INVALID: Could not handle this fault, don't retry
> the
>   *                             access. This is the "Invalid Request" in PCI
>   *                             10.4.2.1.
> - * @IOMMUFD_PAGE_RESP_FAILURE: General error. Drop all subsequent
> faults from
> - *                             this device if possible. This is the "Response
> - *                             Failure" in PCI 10.4.2.1.
>   */
>  enum iommufd_page_response_code {
>  	IOMMUFD_PAGE_RESP_SUCCESS = 0,
>  	IOMMUFD_PAGE_RESP_INVALID,
> -	IOMMUFD_PAGE_RESP_FAILURE,
>  };
> 

It's probably good to add some words here for why FAILURE is
not allowed.

Reviewed-by: Kevin Tian <kevin.tian@intel.com>