Re: [kvm-unit-tests PATCH v2 4/8] s390x: lib: css: separate wait for IRQ and check I/O completion

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 3/29/21 10:21 AM, Thomas Huth wrote:
On 25/03/2021 10.39, Pierre Morel wrote:
We will may want to check the result of an I/O without waiting
for an interrupt.
For example because we do not handle interrupt.
Let's separate waiting for interrupt and the I/O complretion check.

Signed-off-by: Pierre Morel <pmorel@xxxxxxxxxxxxx>
---
  lib/s390x/css.h     |  1 +
  lib/s390x/css_lib.c | 13 ++++++++++---
  2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/lib/s390x/css.h b/lib/s390x/css.h
index 0058355..5d1e1f0 100644
--- a/lib/s390x/css.h
+++ b/lib/s390x/css.h
@@ -317,6 +317,7 @@ int css_residual_count(unsigned int schid);
  void enable_io_isc(uint8_t isc);
  int wait_and_check_io_completion(int schid);
+int check_io_completion(int schid);
  /*
   * CHSC definitions
diff --git a/lib/s390x/css_lib.c b/lib/s390x/css_lib.c
index f5c4f37..1e5c409 100644
--- a/lib/s390x/css_lib.c
+++ b/lib/s390x/css_lib.c
@@ -487,18 +487,25 @@ struct ccw1 *ccw_alloc(int code, void *data, int count, unsigned char flags)
  }
  /* wait_and_check_io_completion:
+ * @schid: the subchannel ID
+ */
+int wait_and_check_io_completion(int schid)
+{
+    wait_for_interrupt(PSW_MASK_IO);
+    return check_io_completion(schid);
+}
+
+/* check_io_completion:
   * @schid: the subchannel ID
   *
   * Makes the most common check to validate a successful I/O
   * completion.
   * Only report failures.
   */
-int wait_and_check_io_completion(int schid)
+int check_io_completion(int schid)
  {
      int ret = 0;
-    wait_for_interrupt(PSW_MASK_IO);
-
      report_prefix_push("check I/O completion");
      if (lowcore_ptr->io_int_param != schid) {


Reviewed-by: Thomas Huth <thuth@xxxxxxxxxx>


Thanks,
Pierre

--
Pierre Morel
IBM Lab Boeblingen



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux