From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.3 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 295B0C4CECD for ; Tue, 17 Sep 2019 16:12:20 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id EFF25206C2 for ; Tue, 17 Sep 2019 16:12:19 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="TmwW76xW" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EFF25206C2 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=Se+sX3sLGqgQzykRJOS6yPZkNRmQaTN7FoBcZHFNzUs=; b=TmwW76xW7HUT55 isFNF8lYuM7yCO6szHvnFZ9I3liHZsfwmzfWcJIrPid8kOg0E4QVbIe5g5urRdhIuR4w9Z181VE6Z kQ5OaL1y2z2zDLW4wFN+hn7efDoGTHl0oJzhqjBEh2RDK7QTqpPZCj5VS/acuIOQmVKKSMWlMV8Wq /wU9Q3HXfRqfOHxejzvvUbTBvayKGroWAXPUAOHyUGGw5Y13/U3SpRO+zuZcxHKRgSnWi31OLPf3q XN07WEn1xFLUYYnoHaPWSAQnfh/k4IdDEvcDBF7GFWy5C8JO3J3o+KngmrQv4HUQJeFv6G7vNnzX9 fcoiwDwt/aC7NwdH1CVA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.2 #3 (Red Hat Linux)) id 1iAG5S-0000zL-4W; Tue, 17 Sep 2019 16:12:18 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.92.2 #3 (Red Hat Linux)) id 1iAFzB-00020i-57 for linux-arm-kernel@lists.infradead.org; Tue, 17 Sep 2019 16:05:52 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 12E7315A2; Tue, 17 Sep 2019 09:05:48 -0700 (PDT) Received: from arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 2BB7E3F575; Tue, 17 Sep 2019 09:05:47 -0700 (PDT) Date: Tue, 17 Sep 2019 17:05:45 +0100 From: Dave Martin To: Cristian Marussi Subject: Re: [PATCH v6 02/11] kselftest: arm64: mangle_pstate_invalid_compat_toggle and common utils Message-ID: <20190917160545.GL27757@arm.com> References: <20190910123111.33478-1-cristian.marussi@arm.com> <20190910123111.33478-3-cristian.marussi@arm.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20190910123111.33478-3-cristian.marussi@arm.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190917_090549_289134_7D46E764 X-CRM114-Status: GOOD ( 16.02 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: amit.kachhap@arm.com, andreyknvl@google.com, shuah@kernel.org, linux-arm-kernel@lists.infradead.org, linux-kselftest@vger.kernel.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Tue, Sep 10, 2019 at 01:31:02pm +0100, Cristian Marussi wrote: > Add some arm64/signal specific boilerplate and utility code to help > further testcases' development. > > Introduce also one simple testcase mangle_pstate_invalid_compat_toggle > and some related helpers: it is a simple mangle testcase which messes > with the ucontext_t from within the signal handler, trying to toggle > PSTATE state bits to switch the system between 32bit/64bit execution > state. Expects SIGSEGV on test PASS. > > Signed-off-by: Cristian Marussi > --- > v5 --> v6 > - fix commit msg > - feat_names is char const *const > - better supported options check and reporting > - removed critical asserts to avoid issues with NDEBUG > - more robust get_header > - fix validation for ESR_CONTEXT size > - add more explicit comment in GET_RESV_NEXT_HEAD() macro > - refactored default_handler() > - feats_ok() now public > - call always test_results() no matter the outcome of test_run() [...] > diff --git a/tools/testing/selftests/arm64/signal/test_signals_utils.c b/tools/testing/selftests/arm64/signal/test_signals_utils.c [...] > +static int test_init(struct tdescr *td) > +{ > + td->minsigstksz = getauxval(AT_MINSIGSTKSZ); > + if (!td->minsigstksz) > + td->minsigstksz = MINSIGSTKSZ; > + fprintf(stderr, "Detected MINSTKSIGSZ:%d\n", td->minsigstksz); > + > + if (td->feats_required) { > + td->feats_supported = 0; > + /* > + * Checking for CPU required features using both the > + * auxval and the arm64 MRS Emulation to read sysregs. > + */ > + if (getauxval(AT_HWCAP) & HWCAP_SSBS) > + td->feats_supported |= FEAT_SSBS; > + if (getauxval(AT_HWCAP) & HWCAP_CPUID) { > + uint64_t val = 0; > + > + /* Uses MRS emulation to check capability */ > + get_regval(SYS_ID_AA64MMFR1_EL1, val); > + if (ID_AA64MMFR1_EL1_PAN_SUPPORTED(val)) > + td->feats_supported |= FEAT_PAN; > + /* Uses MRS emulation to check capability */ > + get_regval(SYS_ID_AA64MMFR2_EL1, val); > + if (ID_AA64MMFR2_EL1_UAO_SUPPORTED(val)) > + td->feats_supported |= FEAT_UAO; > + } else { > + fprintf(stderr, > + "HWCAP_CPUID NOT available. Mark ALL feats UNSUPPORTED.\n"); Nit: this message isn't strictly correct now: SSBS may still be detected even if HWCAP_CPUID isn't present. For simplicity I suggest to drop this fprintf() (and the containing else { }, which is otherwise empty). The following code reports what features are supported in any case, so the user will be able to see what was detected. The rest looks reasonable to me now, so with the above nit fixed: Reviewed-by: Dave Martin [...] Cheers ---Dave _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel