mbox series

[kvm-unit-tests,v13,0/9] s390x: Testing the Channel Subsystem I/O

Message ID 1594887809-10521-1-git-send-email-pmorel@linux.ibm.com (mailing list archive)
Headers show
Series s390x: Testing the Channel Subsystem I/O | expand

Message

Pierre Morel July 16, 2020, 8:23 a.m. UTC
Hi All,

This new respin of the series add modifications to
- patch 9: s390x: css: ssch/tsch with sense and interrupt
Other patches did not change.

Recall:

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.
  
This series presents three 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 0x3832, a.k.a. virtio-ccw.
        Checks SSCH(READ) and IO-IRQ

Note:
- The following 5 patches are general usage and may be pulled first:
  s390x: saving regs for interrupts
  s390x: I/O interrupt registration
  s390x: export the clock get_clock_ms() utility
  s390x: clock and delays calculations
  s390x: define function to wait for interrupt

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

Regards,
Pierre

Pierre Morel (9):
  s390x: saving regs for interrupts
  s390x: I/O interrupt registration
  s390x: export the clock get_clock_ms() utility
  s390x: clock and delays calculations
  s390x: define function to wait for interrupt
  s390x: Library resources for CSS tests
  s390x: css: stsch, enumeration test
  s390x: css: msch, enable test
  s390x: css: ssch/tsch with sense and interrupt

 lib/s390x/asm/arch_def.h |  14 ++
 lib/s390x/asm/time.h     |  50 ++++++
 lib/s390x/css.h          | 294 +++++++++++++++++++++++++++++++++++
 lib/s390x/css_dump.c     | 152 ++++++++++++++++++
 lib/s390x/css_lib.c      | 323 +++++++++++++++++++++++++++++++++++++++
 lib/s390x/interrupt.c    |  23 ++-
 lib/s390x/interrupt.h    |   8 +
 s390x/Makefile           |   3 +
 s390x/css.c              | 150 ++++++++++++++++++
 s390x/cstart64.S         |  41 ++++-
 s390x/intercept.c        |  11 +-
 s390x/unittests.cfg      |   4 +
 12 files changed, 1060 insertions(+), 13 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

Comments

Janosch Frank July 21, 2020, 1:11 p.m. UTC | #1
On 7/16/20 10:23 AM, Pierre Morel wrote:
> Hi All,
> 
> This new respin of the series add modifications to
> - patch 9: s390x: css: ssch/tsch with sense and interrupt
> Other patches did not change.
> 
> Recall:
> 
> 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.
>   
> This series presents three 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 0x3832, a.k.a. virtio-ccw.
>         Checks SSCH(READ) and IO-IRQ
> 
> Note:
> - The following 5 patches are general usage and may be pulled first:
>   s390x: saving regs for interrupts
>   s390x: I/O interrupt registration
>   s390x: export the clock get_clock_ms() utility
>   s390x: clock and delays calculations
>   s390x: define function to wait for interrupt
> 
> - These 4 patches are really I/O oriented:
>   s390x: Library resources for CSS tests
>   s390x: css: stsch, enumeration test
>   s390x: css: msch, enable test
>   s390x: css: ssch/tsch with sense and interrupt
> 
> Regards,
> Pierre

Thanks, picked

> 
> Pierre Morel (9):
>   s390x: saving regs for interrupts
>   s390x: I/O interrupt registration
>   s390x: export the clock get_clock_ms() utility
>   s390x: clock and delays calculations
>   s390x: define function to wait for interrupt
>   s390x: Library resources for CSS tests
>   s390x: css: stsch, enumeration test
>   s390x: css: msch, enable test
>   s390x: css: ssch/tsch with sense and interrupt
> 
>  lib/s390x/asm/arch_def.h |  14 ++
>  lib/s390x/asm/time.h     |  50 ++++++
>  lib/s390x/css.h          | 294 +++++++++++++++++++++++++++++++++++
>  lib/s390x/css_dump.c     | 152 ++++++++++++++++++
>  lib/s390x/css_lib.c      | 323 +++++++++++++++++++++++++++++++++++++++
>  lib/s390x/interrupt.c    |  23 ++-
>  lib/s390x/interrupt.h    |   8 +
>  s390x/Makefile           |   3 +
>  s390x/css.c              | 150 ++++++++++++++++++
>  s390x/cstart64.S         |  41 ++++-
>  s390x/intercept.c        |  11 +-
>  s390x/unittests.cfg      |   4 +
>  12 files changed, 1060 insertions(+), 13 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
>