From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]:41804 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726567AbgAMPYs (ORCPT ); Mon, 13 Jan 2020 10:24:48 -0500 Received: from pps.filterd (m0098420.ppops.net [127.0.0.1]) by mx0b-001b2d01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 00DFIK2j081616 for ; Mon, 13 Jan 2020 10:24:47 -0500 Received: from e06smtp01.uk.ibm.com (e06smtp01.uk.ibm.com [195.75.94.97]) by mx0b-001b2d01.pphosted.com with ESMTP id 2xfve9s85d-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 13 Jan 2020 10:24:47 -0500 Received: from localhost by e06smtp01.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Mon, 13 Jan 2020 15:24:45 -0000 Date: Mon, 13 Jan 2020 16:24:39 +0100 From: Claudio Imbrenda Subject: Re: [kvm-unit-tests PATCH v7 4/4] s390x: SCLP unit test In-Reply-To: <3db7eaf7-6020-365b-c849-9961e483352e@redhat.com> References: <20200110184050.191506-1-imbrenda@linux.ibm.com> <20200110184050.191506-5-imbrenda@linux.ibm.com> <8d7fb5c4-9e2c-e28a-16c0-658afcc8178d@redhat.com> <20200113133325.417bf657@p-imbrenda> <1b86b00a-261e-3d8c-fa52-c30e67463ad5@redhat.com> <20200113135832.1c6d3bb8@p-imbrenda> <22b5ce6a-18af-edec-efc6-e03450faddf8@redhat.com> <20200113150504.3fd218d5@p-imbrenda> <3db7eaf7-6020-365b-c849-9961e483352e@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Message-Id: <20200113162439.7ae81f84@p-imbrenda> Sender: linux-s390-owner@vger.kernel.org List-ID: To: David Hildenbrand Cc: kvm@vger.kernel.org, linux-s390@vger.kernel.org, thuth@redhat.com, borntraeger@de.ibm.com, frankja@linux.ibm.com On Mon, 13 Jan 2020 15:43:28 +0100 David Hildenbrand wrote: > On 13.01.20 15:05, Claudio Imbrenda wrote: > > On Mon, 13 Jan 2020 14:10:10 +0100 > > David Hildenbrand wrote: > > > > [...] > > > >> :) I'm confused by the fact that you "expect_pgm_int()" but > >> actually don't expect one ... > >> > >> Please enlighten me why this isn't > >> > >> + sclp_mark_busy(); > >> + h->length = 8; > >> + sclp_setup_int(); > >> + > >> + asm volatile( > >> + " .insn rre,0xb2204200,%1,%2\n" /* servc > >> %1,%2 */ > >> + " ipm %0\n" > >> + " srl %0,28" > >> + : "=&d" (cc) : "d" (valid_code), "a" > >> (__pa(pagebuf)) > >> + : "cc", "memory"); > >> + if (!cc) > >> + sclp_wait_busy(); > >> + report(cc == 0, "Instruction format ignored bits"); > >> > >> I feel like I am missing something important. > > > > because if we take an unexpected pgm interrupt: > > * the interrupt handler will write stuff on the console using SCLP > > * it will wait for the busy flag to be cleared before doing so > > * thus it will hang. > > > > this would be solved by adding special logic to the pgm interrupt > > handler (as we have discussed in your previous email) > > > > I see, so the issue should hold for all SCLP checks where we don't > expect an exception ... hmmm which is why my wrapper in the unit test is so complicated :)