From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Hildenbrand Subject: Re: [kvm-unit-tests PATCH v2] s390x: Interception tests Date: Fri, 2 Jun 2017 18:22:16 +0200 Message-ID: <0c0fd14e-cdb9-dd7a-70d3-b8421adf2a60@redhat.com> References: <1496407461-31163-1-git-send-email-thuth@redhat.com> <34dffa40-8b82-1b92-94c3-eeb5578659cc@redhat.com> <76c94373-51f7-96cf-acf2-4a6a2912543d@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: Christian Borntraeger , Paolo Bonzini , =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= To: Thomas Huth , kvm@vger.kernel.org Return-path: Received: from mx1.redhat.com ([209.132.183.28]:53040 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750955AbdFBQWS (ORCPT ); Fri, 2 Jun 2017 12:22:18 -0400 In-Reply-To: <76c94373-51f7-96cf-acf2-4a6a2912543d@redhat.com> Content-Language: en-US Sender: kvm-owner@vger.kernel.org List-ID: >>> +static uint8_t pagebuf[PAGE_SIZE * 2] __attribute__((aligned(PAGE_SIZE))); >>> + >>> +/* Enable or disable low-address protection */ >>> +static void set_low_prot(bool enable) >>> +{ >>> + uint64_t cr0; >>> + >>> + asm volatile (" stctg 0,0,%0 " : : "Q"(cr0)); >> >> Use %c0 instead? > > It's got to be %%c0 ... not sure whether this looks really nicer here? %c0 should work, e.g. do a "git grep "%c0" in linux.git arch/s390/kernel/base.S: lctlg %c0,%c0,0(%r4) ... >>> + report("spx + stfl", pagebuf[GEN_LC_STFL] != 0 && >>> + ); >> >> I would split this into two tests. > > Sorry, I can't follow you here ... Do you mean to just split the > report() or the whole sequence of assembler instructions? Sorry, I meant I would split it into: report("spx + stpx", old_prefix == 0 && tst_prefix == new_prefix); report("spx + stfl", pagebuf[GEN_LC_STFL] != 0); >>> + >>> +/* Test the TEST BLOCK instruction */ >>> +static void test_testblock(void) >>> +{ >>> + int cc; >>> + >>> + memset(pagebuf, 0xaa, PAGE_SIZE); >>> + >>> + asm volatile ( >>> + " lghi 0,0\n" >> >> %0,0 ? > > That's certainly wrong, since %0 is the reference to the first output > parameter (cc). You likely mean %%0 or %%r0 ... and that looks rather > cumbersome, too. I think I prefer the plain "0" here, what do you think? Sorry, of course I meant %r0. My keyboard ate one character ;) (again, only one % is required, see e.g. arch/s390/kernel/entry.S) -- Thanks, David