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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6C5A1C6379F for ; Tue, 21 Feb 2023 08:48:30 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 004096B0075; Tue, 21 Feb 2023 03:48:30 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id ECF266B0078; Tue, 21 Feb 2023 03:48:29 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D485A6B007B; Tue, 21 Feb 2023 03:48:29 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id C09EA6B0075 for ; Tue, 21 Feb 2023 03:48:29 -0500 (EST) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 8E787A1082 for ; Tue, 21 Feb 2023 08:48:29 +0000 (UTC) X-FDA: 80490672738.26.643A0F1 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf11.hostedemail.com (Postfix) with ESMTP id 597FC40015 for ; Tue, 21 Feb 2023 08:48:27 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=FJYd1Ykv; spf=pass (imf11.hostedemail.com: domain of david@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=david@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1676969307; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=2wre1vj5fzLAyd/5IJIMuz7JfjlppXHl7jpGjVvaTF0=; b=ft48rIbL9Edul3SwNpDd4RNYtFa+1w8z2oRKXtfu4Q7rG7NfKRwmZ7s7bKnwIMFBh5x8jr Ogwl1CQe9JGYLioDydrWq35+hzEeonb/Iz7zkLxyuUqw84OrTRH4VFYu68nq4a1CFGRbij uauci7UC/P4DrAAFcQ9dDBdB/iCXT/Y= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=FJYd1Ykv; spf=pass (imf11.hostedemail.com: domain of david@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=david@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1676969307; a=rsa-sha256; cv=none; b=CWH5xS6+TJC00uLqYy1Ozp5dZYgW9x0Lsm4VxL8SjH/T03uxwyEGhITRlcNupoziQVf4Wc xc1N2QBOlrI28Eb/FA6bfov1CvVpyoj+u9TwU+4GkTzNBrtg87/La5mW7K1HDhrJyY1/gz uBbNd/cy7Zys44y3g/hacmRkbUIaUU0= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676969306; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=2wre1vj5fzLAyd/5IJIMuz7JfjlppXHl7jpGjVvaTF0=; b=FJYd1Ykv0mGOrVG3QKkRzAQDpLkDuWJxsZ08xIAfaRdZy5LuK1PJze/nCru7PNySbgIVsg 2Ri5fWvteJxGXVgdQJWsleqhk6grGg7OwBzKlJQsGc9nrOX22T/hdyeX2DCHOIht4cs2bS BWYZjXv4LRx1L3BGtfxx8YNjV/dUOKE= Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-279-vwSCZQw3NWqO9vThQqUHRQ-1; Tue, 21 Feb 2023 03:48:25 -0500 X-MC-Unique: vwSCZQw3NWqO9vThQqUHRQ-1 Received: by mail-wr1-f70.google.com with SMTP id 4-20020a5d47a4000000b002c5699ff08aso523340wrb.9 for ; Tue, 21 Feb 2023 00:48:25 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:subject:organization:from :references:cc:to:content-language:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=2wre1vj5fzLAyd/5IJIMuz7JfjlppXHl7jpGjVvaTF0=; b=H8snsrS+KjpN8Qi5lUz3lhHTecY79k2Nymbxc9QEMaD4OxAoBvvY8EoI5CF9vccfug w6oZDMI2PeRko2y/Usc2hxsoat9OENmOc/9qYru6Z119JWhDRrpXQlVO/NeJIkSl1vh4 OfmnjMgGHGlyL3U8nK/4ucvPcEM+rDuVxJVN8PKTFVVhl+/fyAXbYYXJAn1dfmre6QbT Kkvk2S0lpXj9woNbOO6b3xuNRGtkrjw5sD6+NSmXjyPHB3OBEsMtPhjgQgyI5oecdDxm 7rp7XtBAR/U+aJm3cEvMleNUVyNFgV4Igc9vgaU5x7G74IhCq2tvwEXC4ERUf0BHLjbR jmcg== X-Gm-Message-State: AO0yUKXabuQhayWfdlNf0wOdXFcYcu4bNedCRM8kTdrb9Q5fqYTTsFYL ZlioVbLdHEE63u99tIGwWCxcbgasjjL0jfenOhSRG0q7OgNyEPBNQaIGhsyPhdxacbYRhSYMrFL BN/0yUZV/r/4= X-Received: by 2002:a1c:4c14:0:b0:3de:1d31:1042 with SMTP id z20-20020a1c4c14000000b003de1d311042mr2953126wmf.23.1676969304237; Tue, 21 Feb 2023 00:48:24 -0800 (PST) X-Google-Smtp-Source: AK7set8y6ZGLraGaqCxBqf1wh9ujrFtZmVaM/aUNnRhTHeMZveYItWe6AvIKaGMKcmDIyF4S+3zDiA== X-Received: by 2002:a1c:4c14:0:b0:3de:1d31:1042 with SMTP id z20-20020a1c4c14000000b003de1d311042mr2953071wmf.23.1676969303872; Tue, 21 Feb 2023 00:48:23 -0800 (PST) Received: from ?IPV6:2003:cb:c707:4800:aecc:dadb:40a8:ce81? (p200300cbc7074800aeccdadb40a8ce81.dip0.t-ipconnect.de. [2003:cb:c707:4800:aecc:dadb:40a8:ce81]) by smtp.gmail.com with ESMTPSA id p8-20020a05600c468800b003e2232d0960sm4815226wmo.23.2023.02.21.00.48.21 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 21 Feb 2023 00:48:23 -0800 (PST) Message-ID: Date: Tue, 21 Feb 2023 09:48:21 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.7.2 To: Rick Edgecombe , x86@kernel.org, "H . Peter Anvin" , Thomas Gleixner , Ingo Molnar , linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, linux-api@vger.kernel.org, Arnd Bergmann , Andy Lutomirski , Balbir Singh , Borislav Petkov , Cyrill Gorcunov , Dave Hansen , Eugene Syromiatnikov , Florian Weimer , "H . J . Lu" , Jann Horn , Jonathan Corbet , Kees Cook , Mike Kravetz , Nadav Amit , Oleg Nesterov , Pavel Machek , Peter Zijlstra , Randy Dunlap , Weijiang Yang , "Kirill A . Shutemov" , John Allen , kcc@google.com, eranian@google.com, rppt@kernel.org, jamorris@linux.microsoft.com, dethoma@microsoft.com, akpm@linux-foundation.org, Andrew.Cooper3@citrix.com, christina.schimpe@intel.com, debug@rivosinc.com Cc: Yu-cheng Yu References: <20230218211433.26859-1-rick.p.edgecombe@intel.com> <20230218211433.26859-38-rick.p.edgecombe@intel.com> From: David Hildenbrand Organization: Red Hat Subject: Re: [PATCH v6 37/41] selftests/x86: Add shadow stack test In-Reply-To: <20230218211433.26859-38-rick.p.edgecombe@intel.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam03 X-Stat-Signature: y5731duj9x1kxzqothmgz7bi6ag4tc5x X-Rspamd-Queue-Id: 597FC40015 X-HE-Tag: 1676969307-741394 X-HE-Meta: U2FsdGVkX18i3HThu+F8YTHHp3EYrwX+MXOmgS1WPEXMvixMX6cyBrReH5hHUCrCDL9BH4wQ77UNyXPDvGwkmw0w3fa7wRQFY9QsbscpBLskV2sJoDbIucmUA77vJz+i4PklCuYdLy30K+TgDcK1ppzmi26kC/eZZw2HBJV+d+nFGLBcjHXGXhn32vyfMcY0dIxyZ6IkHk7VcQoOzlCWyOIP/ZJmVYFoC2L/Lp+GpVXh13KjlKkvBjnA/RZ6znDOGNIPMopnPyFStJMZk8r5gKcEtI2SGvqQX8AOIvxFJQ7vxIp/AiR9iVwqa7q2ba8yabQQr65RsHiUL627G7MKbxEwe7QY/kmr10liHpeIHyTIYZG6PxNTJQZ0njHKSSN9yYyGbN/IlD+ccr/Ifb3Y0YBRBAHpB47JnM2b+G/H/9Ej42SMS9dBbwf+vqMSknftKG+X6paOrF3El41PoW16PwHJ3SZ5Kv2HQyScU3Hndwgmk6RXWQVjkPxFLarRSSA0t7Iy79SKJOBVWDnor4A0KP732wVmmz+MGfvFtKWpwud1AKUZzzeL3W2Xut6z0DzKkd1qZsLvXdvJzKU504xR63j3iaBh8zrIhnmI0c4/L4dxpUXNT9ODyIrnWpN89fege10RV+lUrHUNkBCjPd6Q9rZsk42V1T/8ko2WfSf6Bq7Ze+p24+nPxwb14C7IYLouZqfxBx+b7VtX009qLxt8aD34iZbgdHeIXbNwf/n0THDeg+S93jBccxx+eRLZ+WnS9vOL8jcBlMXWAEcASHfEpUBYs2lCi46QLnx6V0xZEXUwX6dld6LG6ev0qyzeT97q85Q0IW5gMHr40XzpPyVsuiirI+M/8k2iQ44Ryggnykzj69hmlbPhHwfRBq4YTleqbRI6lVfDf+IcNA31tF8AD2c3gpaYi8lpu9+GJ3jMNGXrCESqww68VfJh8vD8lmvXBwZU+zlk2/skxhHmT6W nYSTSLwe 5/7dI6g/LWz90haeSKx2Uwdrc6Y0hqebpoNpoiBCo5z7254boYSelL/Hl8mNi3eJHDBraCZ/JAGKwP6lWamLoIsuM9/J/RKNY/4ImL9xt9YvKqECIxANDyxkqILsEWDy9XeCLVMw0ayNELX3+V7knSOFpdpC2mfFvgHBMsKeBb95uumNqFhkgP9KzH2/j/jFcm2AxRz5fgVGkIIyCru1GuSRyQ5SAaMmBgpi3a1sI+QCxbDSqbYQrUCRBTRNi6t+SFb4nrzk4hiwWiYFfXKhBRS5ojtW4yWd0KLoSv13709bVWUROT2fq2qi+03VvctRCac9oyYrMB5Acc+z1qXQ7+wNXoTmCnxUzHI3EmLSCJxK3F0xo9OVa3ACZMq0KttLMNEnRmaxqI0di0GbL2tIZI/TOEEFErTeAFedQ+0tiSCace3o= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On 18.02.23 22:14, Rick Edgecombe wrote: > Add a simple selftest for exercising some shadow stack behavior: > - map_shadow_stack syscall and pivot > - Faulting in shadow stack memory > - Handling shadow stack violations > - GUP of shadow stack memory > - mprotect() of shadow stack memory > - Userfaultfd on shadow stack memory > > Since this test exercises a recently added syscall manually, it needs > to find the automatically created __NR_foo defines. Per the selftest > documentation, KHDR_INCLUDES can be used to help the selftest Makefile's > find the headers from the kernel source. This way the new selftest can > be built inside the kernel source tree without installing the headers > to the system. So also add KHDR_INCLUDES as described in the selftest > docs, to facilitate this. > > Tested-by: Pengfei Xu > Tested-by: John Allen > Co-developed-by: Yu-cheng Yu > Signed-off-by: Yu-cheng Yu > Signed-off-by: Rick Edgecombe > > --- [...] > +bool gup_write(void *ptr) > +{ > + unsigned long val; > + > + lseek(fd, (unsigned long)ptr, SEEK_SET); > + if (write(fd, &val, sizeof(val)) < 0) > + return 1; /proc/self/mem is for debug/ptrace access (FOLL_FORCE). I think you might also want to add tests for ordinary GUP, checking that we fail to obtain a write pin -- and call these tests "gup_ptrace_read" / "gup_ptrace_write" An simple approach would be to trigger a read()/write() on a file opened via O_DIRECT, using the shadow stack as buffer. While the write() [reading from the page] is expected to work, a read() [writing to the page] has to fail. -- Thanks, David / dhildenb