From patchwork Tue Jul 14 11:15:39 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pierre Morel X-Patchwork-Id: 11662353 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 14A2713B4 for ; Tue, 14 Jul 2020 11:17:11 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id F31AA2220D for ; Tue, 14 Jul 2020 11:17:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728041AbgGNLRJ (ORCPT ); Tue, 14 Jul 2020 07:17:09 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:63584 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726928AbgGNLQN (ORCPT ); Tue, 14 Jul 2020 07:16:13 -0400 Received: from pps.filterd (m0187473.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 06EB2R1t163037; Tue, 14 Jul 2020 07:16:10 -0400 Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com with ESMTP id 32792v19t3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 14 Jul 2020 07:16:10 -0400 Received: from m0187473.ppops.net (m0187473.ppops.net [127.0.0.1]) by pps.reinject (8.16.0.36/8.16.0.36) with SMTP id 06EB36rl165020; Tue, 14 Jul 2020 07:16:09 -0400 Received: from ppma04ams.nl.ibm.com (63.31.33a9.ip4.static.sl-reverse.com [169.51.49.99]) by mx0a-001b2d01.pphosted.com with ESMTP id 32792v19rn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 14 Jul 2020 07:16:09 -0400 Received: from pps.filterd (ppma04ams.nl.ibm.com [127.0.0.1]) by ppma04ams.nl.ibm.com (8.16.0.42/8.16.0.42) with SMTP id 06EBFaAU006095; Tue, 14 Jul 2020 11:16:06 GMT Received: from b06cxnps3074.portsmouth.uk.ibm.com (d06relay09.portsmouth.uk.ibm.com [9.149.109.194]) by ppma04ams.nl.ibm.com with ESMTP id 32752838rt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 14 Jul 2020 11:16:06 +0000 Received: from b06wcsmtp001.portsmouth.uk.ibm.com (b06wcsmtp001.portsmouth.uk.ibm.com [9.149.105.160]) by b06cxnps3074.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 06EBG4go4391194 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 14 Jul 2020 11:16:04 GMT Received: from b06wcsmtp001.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id D0298A4064; Tue, 14 Jul 2020 11:16:03 +0000 (GMT) Received: from b06wcsmtp001.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 415B2A4065; Tue, 14 Jul 2020 11:16:03 +0000 (GMT) Received: from oc3016276355.ibm.com (unknown [9.145.162.148]) by b06wcsmtp001.portsmouth.uk.ibm.com (Postfix) with ESMTP; Tue, 14 Jul 2020 11:16:03 +0000 (GMT) From: Pierre Morel To: kvm@vger.kernel.org Cc: linux-s390@vger.kernel.org, frankja@linux.ibm.com, david@redhat.com, thuth@redhat.com, cohuck@redhat.com, drjones@redhat.com Subject: [kvm-unit-tests PATCH v12 0/9] s390x: Testing the Channel Subsystem I/O Date: Tue, 14 Jul 2020 13:15:39 +0200 Message-Id: <1594725348-10034-1-git-send-email-pmorel@linux.ibm.com> X-Mailer: git-send-email 1.8.3.1 X-TM-AS-GCONF: 00 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.235,18.0.687 definitions=2020-07-14_02:2020-07-14,2020-07-14 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=1 mlxlogscore=999 priorityscore=1501 lowpriorityscore=0 clxscore=1015 adultscore=0 impostorscore=0 spamscore=0 malwarescore=0 bulkscore=0 mlxscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2006250000 definitions=main-2007140081 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org Hi All, This new respin of the series add modifications to - patch 8: s390x: css: msch, enable test - 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