Received: by 2002:a25:ef43:0:0:0:0:0 with SMTP id w3csp597097ybm; Fri, 29 May 2020 07:43:07 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzCb0ZK5renKA8m47ySRnqlzDTc8f8dmZS94OgGojHmU/bF/XO4B7bPDg3Ud2mzpc3e7hUu X-Received: by 2002:a05:6402:36d:: with SMTP id s13mr3579963edw.192.1590763387198; Fri, 29 May 2020 07:43:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1590763387; cv=none; d=google.com; s=arc-20160816; b=OYLciF7TR1rrLj1MDzebVhSOJJV1fLMYNtE+FUdrnL5BFJY/UNxa1+nF1DGvVMqVCZ Xu4iax0T4huIIQfCSaBW7pLEx9FxVzDhuUHz2Gvv2DIOpGcyQV3S8p+blGSWYf12Trcs G1+eHFVEmUV4bSPn4jX4WZbLbEnYpbCGs60WFb3UKGBgw9IsgddnwF/MUTF+nk6TsvMl A818bmQ5iIfEKKPi8xaQ0xJfYdR6u9BJ3e5zF0EK61CnIAkoDnVwpztJMDQ3d6F7ORnD 1VcgCPDYCYfEyoy8RvZ3qTzmGG2KeAEaHZKAQzwLfh9FgmPmHRJw3OR9rTzN1YKx/Zx0 BUXQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature; bh=AVORNgD2f5sSdFOY/zQ4dvax6TxhlkGn3vffNCnlGTg=; b=RnhsTYIJqFD1MMGN+aQoWWzlf/BlV3qW0ReDTyGeIfzMmtacvhsD1BEUIFS7b/h+Mb aiienduIS7Dk08AX0vI8homxxTC2emZ6zRgmDRruDBdN/rwqLAqPWsQkLtNns4ojSwLh ZZ45Hh9U82/24ZWhiMeCWWzRiWgMyI1fPLx7fTjcs/Iaga7MKJw7CMwL2OynZ69+Gkw4 3uOD7M6puwHAaQcfv51eqKHVNlWsUFjFycRGA+tjxem7otEcS6R42XBVxiR1ekIsRK6o IQ9fI7TB0AOSfiYUvFQOd5y6FNEjkyW4Z5V1xaA8Yzm9Dr+VdI227SJy9vpMChlL+vCB 7Bpw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=google header.b="JASYw63/"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id s10si5679014ejq.400.2020.05.29.07.42.42; Fri, 29 May 2020 07:43:07 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=google header.b="JASYw63/"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726990AbgE2Okq (ORCPT + 99 others); Fri, 29 May 2020 10:40:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42190 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726849AbgE2Okp (ORCPT ); Fri, 29 May 2020 10:40:45 -0400 Received: from mail-ot1-x344.google.com (mail-ot1-x344.google.com [IPv6:2607:f8b0:4864:20::344]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 014A3C03E969 for ; Fri, 29 May 2020 07:40:45 -0700 (PDT) Received: by mail-ot1-x344.google.com with SMTP id u23so2056670otq.10 for ; Fri, 29 May 2020 07:40:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linuxfoundation.org; s=google; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=AVORNgD2f5sSdFOY/zQ4dvax6TxhlkGn3vffNCnlGTg=; b=JASYw63/GvhCifu9uHwC1FtZSEgCQGrlQdPF96BT+IM2BlwT4QVrBOOv6pEZgzCZMO EHL6uvP2ZejA6ExAH6zHEfd1YY8h/CF1Mws6BPsKm7di9dBSxq6FoNrkWcG2CEL8PaKN E1Sbq81+G6kAjTOCcWbZA/lrecjX7GviF9hYI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=AVORNgD2f5sSdFOY/zQ4dvax6TxhlkGn3vffNCnlGTg=; b=r7RhEpVRbjLyTixQcJmTPXgRzgVBIJC7Upg9N0K2x2Q+ExWJZm7qEoG74g08BK+gNT rHgq+rsASUiqDXc9M2xOJWNbRAb2IUaxcmNeewz/ZNiNvyV7JuuyO8mrs5DUjS6kn7j/ sKe71ltmYLJY65uZBARkS6kA1UG9jRzLNFKIi/5WNtMO0hPzRweEo3r8IxZfIWqSvANB JIU6ajjeqyexgYn9JziU5h7D8C83WnudM7aG/lC5OVilaFfkQMZSNs/LcUXA39iESJk7 XduOtEbbhvMVfZQMYjF5yIEK25iKDYPFwh49kZMEfjxuwLqpesFIhxUVOfFcTTudnJE7 2HwQ== X-Gm-Message-State: AOAM533J/LTqDf/DmTu35VtkPzY+VtdLr/hBuz1RriZwiYTKw4LWm/JJ CweC3BKh0/+HWBZoJGt9+zPlmQ== X-Received: by 2002:a05:6830:22d6:: with SMTP id q22mr6222902otc.274.1590763244376; Fri, 29 May 2020 07:40:44 -0700 (PDT) Received: from [192.168.1.112] (c-24-9-64-241.hsd1.co.comcast.net. [24.9.64.241]) by smtp.gmail.com with ESMTPSA id a8sm2491716otp.65.2020.05.29.07.40.42 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 29 May 2020 07:40:43 -0700 (PDT) Subject: Re: [PATCH v13 15/16] selftests/x86/fsgsbase: Test GS selector on ptracer-induced GS base write To: Sasha Levin , tglx@linutronix.de, luto@kernel.org, ak@linux.intel.com Cc: corbet@lwn.net, mingo@redhat.com, bp@alien8.de, x86@kernel.org, shuah@kernel.org, gregkh@linuxfoundation.org, tony.luck@intel.com, chang.seok.bae@intel.com, dave.hansen@linux.intel.com, peterz@infradead.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, jarkko.sakkinen@linux.intel.com, "H . Peter Anvin" , Dave Hansen , Shuah Khan References: <20200528201402.1708239-1-sashal@kernel.org> <20200528201402.1708239-16-sashal@kernel.org> From: Shuah Khan Message-ID: Date: Fri, 29 May 2020 08:40:42 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 In-Reply-To: <20200528201402.1708239-16-sashal@kernel.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 5/28/20 2:14 PM, Sasha Levin wrote: > From: "Chang S. Bae" > > The test validates that the selector is not changed when a ptracer writes > the ptracee's GS base. > > Originally-by: Andy Lutomirski > Signed-off-by: Chang S. Bae > Reviewed-by: Tony Luck > Cc: Thomas Gleixner > Cc: Borislav Petkov > Cc: Andy Lutomirski > Cc: H. Peter Anvin > Cc: Dave Hansen > Cc: Tony Luck > Cc: Andi Kleen > Signed-off-by: Sasha Levin > --- > tools/testing/selftests/x86/fsgsbase.c | 21 +++++++++++++++------ > 1 file changed, 15 insertions(+), 6 deletions(-) > > diff --git a/tools/testing/selftests/x86/fsgsbase.c b/tools/testing/selftests/x86/fsgsbase.c > index 15a329da59fa..950a48b2e366 100644 > --- a/tools/testing/selftests/x86/fsgsbase.c > +++ b/tools/testing/selftests/x86/fsgsbase.c > @@ -465,7 +465,7 @@ static void test_ptrace_write_gsbase(void) > wait(&status); > > if (WSTOPSIG(status) == SIGTRAP) { > - unsigned long gs, base; > + unsigned long gs; > unsigned long gs_offset = USER_REGS_OFFSET(gs); > unsigned long base_offset = USER_REGS_OFFSET(gs_base); > > @@ -481,7 +481,6 @@ static void test_ptrace_write_gsbase(void) > err(1, "PTRACE_POKEUSER"); > > gs = ptrace(PTRACE_PEEKUSER, child, gs_offset, NULL); > - base = ptrace(PTRACE_PEEKUSER, child, base_offset, NULL); > > /* > * In a non-FSGSBASE system, the nonzero selector will load > @@ -489,11 +488,21 @@ static void test_ptrace_write_gsbase(void) > * selector value is changed or not by the GSBASE write in > * a ptracer. > */ > - if (gs == 0 && base == 0xFF) { > - printf("[OK]\tGS was reset as expected\n"); > - } else { > + if (gs != *shared_scratch) { > nerrs++; > - printf("[FAIL]\tGS=0x%lx, GSBASE=0x%lx (should be 0, 0xFF)\n", gs, base); > + printf("[FAIL]\tGS changed to %lx\n", gs); > + > + /* > + * On older kernels, poking a nonzero value into the > + * base would zero the selector. On newer kernels, > + * this behavior has changed -- poking the base > + * changes only the base and, if FSGSBASE is not > + * available, this may not effect. > + */ > + if (gs == 0) > + printf("\tNote: this is expected behavior on older kernels.\n"); Let's add what is "this" for context in this message. > + } else { > + printf("[OK]\tGS remained 0x%hx\n", *shared_scratch); > } > } > > thanks, -- Shuah