All of lore.kernel.org
 help / color / mirror / Atom feed
* [kvm-unit-tests PATCH v7 00/12] s390x: Testing the Channel Subsystem I/O
@ 2020-05-18 16:07 Pierre Morel
  2020-05-18 16:07 ` [kvm-unit-tests PATCH v7 01/12] s390x: saving regs for interrupts Pierre Morel
                   ` (11 more replies)
  0 siblings, 12 replies; 48+ messages in thread
From: Pierre Morel @ 2020-05-18 16:07 UTC (permalink / raw)
  To: kvm; +Cc: linux-s390, frankja, david, thuth, cohuck

Goal of the series is to have a framework to test Channel-Subsystem I/O with
QEMU/KVM.
  
To be able to support interrupt for CSS I/O and for SCLP we need to modify
the interrupt framework to allow re-entrant interruptions.
  
We add a registration for IRQ callbacks to the test program to define its own
interrupt handler. We need to do special work under interrupt like acknowledging
the interrupt.
  
Being working on PSW bits to allow I/O interrupt, we define new PSW bits
in arch_def.h and use __ASSEMBLER__ define to be able to include this header
in an assembler source file.

This series presents four major tests:
- Enumeration:
        The CSS is enumerated using the STSCH instruction recursively on all
        potentially existing channels.
        Keeping the first channel found as a reference for future use.
        Checks STSCH
 
- Enable:
        If the enumeration succeeded the tests enables the reference
        channel with MSCH and verifies with STSCH that the channel is
        effectively enabled, retrying a predefined count on failure
	to enable the channel
        Checks MSCH       
 
- Sense:
        If the channel is enabled this test sends a SENSE_ID command
        to the reference channel, analyzing the answer and expecting
        the Control unit type being 0xc0ca
        Checks SSCH(READ) and IO-IRQ

- ping-pong:
        If the reference channel leads to the PONG device (0xc0ca),
        the test exchanges a string containing a 9 digit number with
        the PONG device and expecting this number to be incremented
        by the PONG device.
        Checks SSCH(WRITE)


Note:
- The following patches may be pulled first:
  s390x: saving regs for interrupts
  s390x: Use PSW bits definitions in cstart
  s390x: Move control register bit definitions and add AFP to them
  s390x: export the clock get_clock_ms() utility
  s390x: use get_clock_ms() to calculate a delay in ms

- I think this one if it receives reviewed-by can also be pulled now:
  s390x: define function to wait for interrupt

- this patch has a comment from Janosch who asks change so... need opinion:
  but since I need reviews for the next patches I let it here unchanged.
  s390x: interrupt registration

- These 5 patches are really I/O oriented and need reviewed-by:
  s390x: Library resources for CSS tests
  s390x: css: stsch, enumeration test
  s390x: css: msch, enable test
  s390x: css: ssch/tsch with sense and interrupt
  s390x: css: ping pong

Regards,
Pierre

Pierre Morel (12):
  s390x: saving regs for interrupts
  s390x: Use PSW bits definitions in cstart
  s390x: Move control register bit definitions and add AFP to them
  s390x: interrupt registration
  s390x: export the clock get_clock_ms() utility
  s390x: use get_clock_ms() to calculate a delay in ms
  s390x: Library resources for CSS tests
  s390x: css: stsch, enumeration test
  s390x: css: msch, enable test
  s390x: define function to wait for interrupt
  s390x: css: ssch/tsch with sense and interrupt
  s390x: css: ping pong

 lib/s390x/asm/arch_def.h |  32 +++-
 lib/s390x/asm/time.h     |  36 ++++
 lib/s390x/css.h          | 279 ++++++++++++++++++++++++++++++
 lib/s390x/css_dump.c     | 157 +++++++++++++++++
 lib/s390x/css_lib.c      |  55 ++++++
 lib/s390x/interrupt.c    |  23 ++-
 lib/s390x/interrupt.h    |   8 +
 s390x/Makefile           |   3 +
 s390x/css.c              | 355 +++++++++++++++++++++++++++++++++++++++
 s390x/cstart64.S         |  58 +++++--
 s390x/intercept.c        |  11 +-
 s390x/unittests.cfg      |   4 +
 12 files changed, 995 insertions(+), 26 deletions(-)
 create mode 100644 lib/s390x/asm/time.h
 create mode 100644 lib/s390x/css.h
 create mode 100644 lib/s390x/css_dump.c
 create mode 100644 lib/s390x/css_lib.c
 create mode 100644 lib/s390x/interrupt.h
 create mode 100644 s390x/css.c

-- 
2.25.1

Changelog:

from v6 to v7

* s390x: saving regs for interrupts
- macro name modificatio for SAVE_REGS_STACK
  (David)
- saving the FPC
  (David)

* s390x: Use PSW bits definitions in cstart
- suppress definition for PSW_RESET_MASK
  use PSW_EXCEPTION_MASK | PSW_MASK_SHORT_PSW
  (David)

* s390x: Library resources for CSS tests
* s390x: css: stsch, enumeration test
  move library definitions from stsch patche
  to the Library patch
  add the library to the s390 Makefile here
  (Janosch)
  
* s390x: css: msch, enable test
  Add retries when enable fails
  (Connie)
  Re-introduce the patches for delay implementation
  to add a delay between retries

* s390x: define function to wait for interrupt
  Changed name from wfi to wait_for_interrupt
  (Janosch)

* s390x: css: ssch/tsch with sense and interrupt
  add a flag parameter to ssch and use it to add
  SLI (Suppress Length Indication) flag for SENSE_ID
  (Connie)


from v5 to v6
- Added comments for IRQ handling in
  s390x: saving regs for interrupts
  (Janosch) 

- fixed BUG on reset_psw, added PSW_MASK_PSW_SHORT
  and PSW_RESET_MASK

- fixed several lines over 80 chars

- fixed licenses, use GPL V2 (no more LGPL)

- replacing delay() with wfi() (Wait For Interrupt)
  during the css tests
  (suggested by Connie's comments)

- suppressing delay() induces suppressing the patch
  "s390x: export the clock get_clock_ms() utility"
  which is already reviewed but can be picked from
  the v5 series.

- changed the logic of the tests, the 4 css tests
  are always run one after the other so no need to 
  re-run enumeration and enabling at the begining
  of each tests, it has alredy been done.
  This makes code simpler.

from v4 to v5
- add a patch to explicitely define the initial_cr0
  value
  (Janosch)
- add RB from Janosh on interrupt registration
- several formating, typo correction and removing
  unnecessary initialization in "linrary resources..."
  (Janosch)
- several formating and typo corrections on
  "stsch enumeration test"
  (Connie)
- reworking the msch test
  (Connie)
- reworking of ssch test, pack the sense-id structure
  (Connie)

from v3 to v4
- add RB from David and Thomas for patchs 
  (3) irq registration and (4) clock export
- rework the PSW bit definitions
  (Thomas)
- Suppress undef DEBUG from css_dump
  (Thomas)
- rework report() functions using new scheme
  (Thomas)
- suppress un-necessary report_info()
- more spelling corrections
- add a loop around enable bit testing
  (Connie)
- rework IRQ testing
  (Connie)
- Test data addresses to be under 2G
  (Connie)

from v2 to v3:
- Rework spelling
  (Connie)
- More descriptions
  (Connie)
- use __ASSEMBLER__ preprocessing to keep
  bits definitions and C structures in the same file
  (David)
- rename the new file clock.h as time.h
  (Janosch, David?)
- use registration for the IO interruption
  (David, Thomas)
- test the SCHIB to verify it has really be modified
  (Connie)
- Lot of simplifications in the tests
  (Connie)

from v1 to v2:
- saving floating point registers (David, Janosh)
- suppress unused PSW bits defintions (Janosh)
- added Thomas reviewed-by
- style and comments modifications (Connie, Janosh)
- moved get_clock_ms() into headers and use it (Thomas)
- separate header and library utility from tests
- Suppress traces, separate tests, make better usage of reports

^ permalink raw reply	[flat|nested] 48+ messages in thread

end of thread, other threads:[~2020-06-05  9:03 UTC | newest]

Thread overview: 48+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-18 16:07 [kvm-unit-tests PATCH v7 00/12] s390x: Testing the Channel Subsystem I/O Pierre Morel
2020-05-18 16:07 ` [kvm-unit-tests PATCH v7 01/12] s390x: saving regs for interrupts Pierre Morel
2020-05-26 10:30   ` Janosch Frank
2020-05-26 11:39     ` Pierre Morel
2020-05-18 16:07 ` [kvm-unit-tests PATCH v7 02/12] s390x: Use PSW bits definitions in cstart Pierre Morel
2020-05-26 10:17   ` Janosch Frank
2020-05-26 11:40     ` Pierre Morel
2020-05-18 16:07 ` [kvm-unit-tests PATCH v7 03/12] s390x: Move control register bit definitions and add AFP to them Pierre Morel
2020-05-25 18:57   ` Thomas Huth
2020-05-26 11:51     ` Pierre Morel
2020-05-18 16:07 ` [kvm-unit-tests PATCH v7 04/12] s390x: interrupt registration Pierre Morel
2020-05-26 18:08   ` Thomas Huth
2020-05-27 15:54     ` Pierre Morel
2020-05-18 16:07 ` [kvm-unit-tests PATCH v7 05/12] s390x: export the clock get_clock_ms() utility Pierre Morel
2020-05-26 18:10   ` Thomas Huth
2020-06-04  6:49     ` Pierre Morel
2020-05-18 16:07 ` [kvm-unit-tests PATCH v7 06/12] s390x: use get_clock_ms() to calculate a delay in ms Pierre Morel
2020-05-26 18:16   ` Thomas Huth
2020-06-04  7:21     ` Pierre Morel
2020-05-18 16:07 ` [kvm-unit-tests PATCH v7 07/12] s390x: Library resources for CSS tests Pierre Morel
2020-05-26 16:30   ` Cornelia Huck
2020-06-04  7:42     ` Pierre Morel
2020-05-18 16:07 ` [kvm-unit-tests PATCH v7 08/12] s390x: css: stsch, enumeration test Pierre Morel
2020-05-25 19:12   ` Thomas Huth
2020-05-26 10:41     ` Janosch Frank
2020-05-26 10:49       ` Thomas Huth
2020-05-26 11:38         ` Pierre Morel
2020-05-27  8:55   ` Cornelia Huck
2020-06-04 11:35     ` Pierre Morel
2020-06-04 11:45       ` Thomas Huth
2020-06-04 12:27         ` Pierre Morel
2020-05-18 16:07 ` [kvm-unit-tests PATCH v7 09/12] s390x: css: msch, enable test Pierre Morel
2020-05-27  9:42   ` Cornelia Huck
2020-06-04 12:46     ` Pierre Morel
2020-06-04 13:29       ` Cornelia Huck
2020-06-05  7:37         ` Pierre Morel
2020-06-05  8:24           ` Pierre Morel
2020-06-05  9:00             ` Cornelia Huck
2020-05-18 16:07 ` [kvm-unit-tests PATCH v7 10/12] s390x: define function to wait for interrupt Pierre Morel
2020-05-26 10:42   ` Janosch Frank
2020-05-26 11:40     ` Pierre Morel
2020-05-27  9:45   ` Cornelia Huck
2020-06-04 12:47     ` Pierre Morel
2020-05-18 16:07 ` [kvm-unit-tests PATCH v7 11/12] s390x: css: ssch/tsch with sense and interrupt Pierre Morel
2020-05-27 10:09   ` Cornelia Huck
2020-06-05  7:37     ` Pierre Morel
2020-06-05  9:02       ` Cornelia Huck
2020-05-18 16:07 ` [kvm-unit-tests PATCH v7 12/12] s390x: css: ping pong Pierre Morel

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.