From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andy Lutomirski Subject: Re: [PATCH v2] sparc64: Add support for Application Data Integrity (ADI) Date: Mon, 7 Mar 2016 10:08:24 -0800 Message-ID: References: <1456951177-23579-1-git-send-email-khalid.aziz@oracle.com> <20160305.230702.1325379875282120281.davem@davemloft.net> <56DD9949.1000106@oracle.com> <20160307.115626.807716799249471744.davem@davemloft.net> <56DDC2B6.6020009@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Return-path: In-Reply-To: <56DDC2B6.6020009-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org> Sender: linux-api-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Khalid Aziz Cc: David Miller , Jonathan Corbet , Andrew Morton , dingel-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org, bob.picco-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org, "Kirill A. Shutemov" , "Aneesh Kumar K.V" , Andrea Arcangeli , Arnd Bergmann , sparclinux-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Rob Gardner , Michal Hocko , chris.hyser-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org, Richard Weinberger , Vlastimil Babka , Konstantin Khlebnikov , Oleg Nesterov , Greg Thelen , Jan Kara , xiexiuqi-hv44wF8Li93QT0dZR+AlfA@public.gmane.org, Vineet.Gupta1-HKixBCOQz3hWk0Htik3J/w@public.gmane.org, Andrew Lutomirski , "Eric W. Biederman" , Benjamin Segall , Geert Uytterhoeven List-Id: linux-arch.vger.kernel.org On Mon, Mar 7, 2016 at 10:04 AM, Khalid Aziz wrote: > On 03/07/2016 09:56 AM, David Miller wrote: >> >> From: Khalid Aziz >> Date: Mon, 7 Mar 2016 08:07:53 -0700 >> >>> PR_GET_SPARC_ADICAPS >> >> >> Put this into a new ELF auxiliary vector entry via ARCH_DLINFO. >> >> So now all that's left is supposedly the TAG stuff, please explain >> that to me so I can direct you to the correct existing interface to >> provide that as well. >> >> Really, try to avoid prtctl, it's poorly typed and almost worse than >> ioctl(). >> > > The two remaining operations I am looking at are: > > 1. Is PSTATE.mcde bit set for the process? PR_SET_SPARC_ADI provides this in > its return value in the patch I sent. > > 2. Is TTE.mcd set for a given virtual address? PR_GET_SPARC_ADI_STATUS > provides this function in the patch I sent. > > Setting and clearing version tags can be done entirely from userspace: > > while (addr < end) { > asm volatile( > "stxa %1, [%0]ASI_MCD_PRIMARY\n\t" > : > : "r" (addr), "r" (version)); > addr += adicap.blksz; > } > so I do not have to add any kernel code for tags. Is the effect of that to change the tag associated with a page to which the caller has write access? I sense DoS issues in your future. From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-oi0-f54.google.com ([209.85.218.54]:36450 "EHLO mail-oi0-f54.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753321AbcCGSIp (ORCPT ); Mon, 7 Mar 2016 13:08:45 -0500 Received: by mail-oi0-f54.google.com with SMTP id r187so85041490oih.3 for ; Mon, 07 Mar 2016 10:08:44 -0800 (PST) MIME-Version: 1.0 In-Reply-To: <56DDC2B6.6020009@oracle.com> References: <1456951177-23579-1-git-send-email-khalid.aziz@oracle.com> <20160305.230702.1325379875282120281.davem@davemloft.net> <56DD9949.1000106@oracle.com> <20160307.115626.807716799249471744.davem@davemloft.net> <56DDC2B6.6020009@oracle.com> From: Andy Lutomirski Date: Mon, 7 Mar 2016 10:08:24 -0800 Message-ID: Subject: Re: [PATCH v2] sparc64: Add support for Application Data Integrity (ADI) Content-Type: text/plain; charset=UTF-8 Sender: linux-arch-owner@vger.kernel.org List-ID: To: Khalid Aziz Cc: David Miller , Jonathan Corbet , Andrew Morton , dingel@linux.vnet.ibm.com, bob.picco@oracle.com, "Kirill A. Shutemov" , "Aneesh Kumar K.V" , Andrea Arcangeli , Arnd Bergmann , sparclinux@vger.kernel.org, Rob Gardner , Michal Hocko , chris.hyser@oracle.com, Richard Weinberger , Vlastimil Babka , Konstantin Khlebnikov , Oleg Nesterov , Greg Thelen , Jan Kara , xiexiuqi@huawei.com, Vineet.Gupta1@synopsys.com, Andrew Lutomirski , "Eric W. Biederman" , Benjamin Segall , Geert Uytterhoeven , Davidlohr Bueso , Alexey Dobriyan , "linux-doc@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-mm@kvack.org" , linux-arch , Linux API Message-ID: <20160307180824.W2audsU-RE2gHaX8K_XcYEi5akVUo-l8ODiouacb4QA@z> On Mon, Mar 7, 2016 at 10:04 AM, Khalid Aziz wrote: > On 03/07/2016 09:56 AM, David Miller wrote: >> >> From: Khalid Aziz >> Date: Mon, 7 Mar 2016 08:07:53 -0700 >> >>> PR_GET_SPARC_ADICAPS >> >> >> Put this into a new ELF auxiliary vector entry via ARCH_DLINFO. >> >> So now all that's left is supposedly the TAG stuff, please explain >> that to me so I can direct you to the correct existing interface to >> provide that as well. >> >> Really, try to avoid prtctl, it's poorly typed and almost worse than >> ioctl(). >> > > The two remaining operations I am looking at are: > > 1. Is PSTATE.mcde bit set for the process? PR_SET_SPARC_ADI provides this in > its return value in the patch I sent. > > 2. Is TTE.mcd set for a given virtual address? PR_GET_SPARC_ADI_STATUS > provides this function in the patch I sent. > > Setting and clearing version tags can be done entirely from userspace: > > while (addr < end) { > asm volatile( > "stxa %1, [%0]ASI_MCD_PRIMARY\n\t" > : > : "r" (addr), "r" (version)); > addr += adicap.blksz; > } > so I do not have to add any kernel code for tags. Is the effect of that to change the tag associated with a page to which the caller has write access? I sense DoS issues in your future.