kvm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [kvm-unit-tests PATCH v3 0/9] s390x: Testing the Channel Subsystem I/O
@ 2019-12-06 16:26 Pierre Morel
  2019-12-06 16:26 ` [kvm-unit-tests PATCH v3 1/9] s390x: saving regs for interrupts Pierre Morel
                   ` (8 more replies)
  0 siblings, 9 replies; 38+ messages in thread
From: Pierre Morel @ 2019-12-06 16:26 UTC (permalink / raw)
  To: kvm; +Cc: linux-s390, frankja, david, thuth, cohuck

Goal of the series is to have a framwork 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 programm to define its own
interrupt handler. We need to do special work under interrupt like acknoledging
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
	Checks MSCH

- Sense:
	If the channel is enabled this test sends a SENSE_ID command
	to the reference channel, analysing 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)


Pierre Morel (9):
  s390x: saving regs for interrupts
  s390x: Define the PSW bits
  s390: interrupt registration
  s390x: export the clock get_clock_ms() utility
  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

 lib/s390x/asm/arch_def.h | 127 ++++++++-------
 lib/s390x/asm/time.h     |  27 ++++
 lib/s390x/css.h          | 273 +++++++++++++++++++++++++++++++
 lib/s390x/css_dump.c     | 156 ++++++++++++++++++
 lib/s390x/interrupt.c    |  23 ++-
 lib/s390x/interrupt.h    |   7 +
 s390x/Makefile           |   2 +
 s390x/css.c              | 335 +++++++++++++++++++++++++++++++++++++++
 s390x/cstart64.S         |  38 ++++-
 s390x/intercept.c        |  11 +-
 s390x/unittests.cfg      |   4 +
 11 files changed, 924 insertions(+), 79 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/interrupt.h
 create mode 100644 s390x/css.c

-- 
2.17.0

Changelog:
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] 38+ messages in thread

end of thread, other threads:[~2019-12-10 17:35 UTC | newest]

Thread overview: 38+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-06 16:26 [kvm-unit-tests PATCH v3 0/9] s390x: Testing the Channel Subsystem I/O Pierre Morel
2019-12-06 16:26 ` [kvm-unit-tests PATCH v3 1/9] s390x: saving regs for interrupts Pierre Morel
2019-12-06 16:26 ` [kvm-unit-tests PATCH v3 2/9] s390x: Define the PSW bits Pierre Morel
2019-12-06 16:29   ` Thomas Huth
2019-12-09  8:53     ` Pierre Morel
2019-12-06 16:26 ` [kvm-unit-tests PATCH v3 3/9] s390: interrupt registration Pierre Morel
2019-12-09 11:40   ` Thomas Huth
2019-12-09 16:44     ` Pierre Morel
2019-12-09 11:48   ` David Hildenbrand
2019-12-09 16:44     ` Pierre Morel
2019-12-06 16:26 ` [kvm-unit-tests PATCH v3 4/9] s390x: export the clock get_clock_ms() utility Pierre Morel
2019-12-09 11:42   ` Thomas Huth
2019-12-09 11:49     ` David Hildenbrand
2019-12-09 16:43       ` Pierre Morel
2019-12-09 16:44     ` Pierre Morel
2019-12-06 16:26 ` [kvm-unit-tests PATCH v3 5/9] s390x: Library resources for CSS tests Pierre Morel
2019-12-09 11:49   ` Thomas Huth
2019-12-09 16:43     ` Pierre Morel
2019-12-10 10:07     ` Pierre Morel
2019-12-10 10:28       ` Thomas Huth
2019-12-10 11:22         ` Pierre Morel
2019-12-10 11:27           ` Thomas Huth
2019-12-10 11:28             ` Pierre Morel
2019-12-06 16:26 ` [kvm-unit-tests PATCH v3 6/9] s390x: css: stsch, enumeration test Pierre Morel
2019-12-09 11:52   ` Thomas Huth
2019-12-09 16:42     ` Pierre Morel
2019-12-09 16:49   ` Cornelia Huck
2019-12-10  8:56     ` Pierre Morel
2019-12-10 11:37   ` Pierre Morel
2019-12-06 16:26 ` [kvm-unit-tests PATCH v3 7/9] s390x: css: msch, enable test Pierre Morel
2019-12-09 16:54   ` Cornelia Huck
2019-12-10  9:01     ` Pierre Morel
2019-12-10  9:09       ` Cornelia Huck
2019-12-10 17:35         ` Pierre Morel
2019-12-06 16:26 ` [kvm-unit-tests PATCH v3 8/9] s390x: css: ssch/tsch with sense and interrupt Pierre Morel
2019-12-09 17:22   ` Cornelia Huck
2019-12-10  9:12     ` Pierre Morel
2019-12-06 16:26 ` [kvm-unit-tests PATCH v3 9/9] s390x: css: ping pong Pierre Morel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).