Received: by 2002:a05:6a10:6006:0:0:0:0 with SMTP id w6csp478313pxa; Thu, 27 Aug 2020 07:30:50 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzw0MO2FoJhR06AkRq18jpfVRVQdCo7j+J4qMQsj4RSTU/zmmsMZYehDF2SBUdjyVh1alRF X-Received: by 2002:aa7:cb05:: with SMTP id s5mr4660678edt.212.1598538649873; Thu, 27 Aug 2020 07:30:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1598538649; cv=none; d=google.com; s=arc-20160816; b=RkmG+cqDMMHGEPvGMg01Nq/cIXo+ioeG1rpLOScOh03l7hHX2H31WQTSE+xvCBQluh J+0rcuAxLRij5CpmJryBo5kbtoQxskyQ/EWnnlGO7w+2Y8DJTOZIWXpcncSLm1VXvbfm Y4c/b5b1qM3mwL6mQDU5dc9t7RJR87uOI6hQMoHIyj+QJOVMwRf0I9cjthbRH1FCWd5i scNFIiI2I1K3B+jhMI21SlMIyM1xa7ansMmbrS0fGsf7tuT29zb+F/9jYIFJCb4gg17W Q7P4AxfA0BoCp0VlJMBXO69igqPnA4RTcBVE3TPSbA7SyyQjMHSOeeCHkzc0wU+072V0 A09A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=LXQ5Q2wYP+L6HOF76OsY7XD/iVZFPOswUGdZKTUtSpo=; b=VsZ4cjgvybXGkMpqG5/5v5ySoDXA5S0JCm3xMNtk8csVJjYwu4yNf5lX2n0aP44xpI yoN24n1z0qjfcnf35m6v4Upj7kAWghkHXnOZXVKqOQqg9GyYidTZt8OfAY0tNAy1TBKU nJqDCo3ly4R8g+w59LXynkdwLSxqLRyOxGtapFDY33GmsIRGjeGtCUu36FFZwlQfZBb2 YoRid/UXwDN78xMdlBapQStU4OShKDuRaHNzcjjaHG9bieS1tqace3XTxegM5Mm4N/eT /1jy0Ky8cWlBJ15Mt3MdJJ89eoFmKHosQayHWmaSiiznPYPT6Lo5Et1DH0KhqPURPeEW N6Aw== ARC-Authentication-Results: i=1; mx.google.com; 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 dp1si2142213ejc.38.2020.08.27.07.30.26; Thu, 27 Aug 2020 07:30:49 -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; 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 S1728021AbgH0O3X (ORCPT + 99 others); Thu, 27 Aug 2020 10:29:23 -0400 Received: from mail.kernel.org ([198.145.29.99]:52034 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728029AbgH0OVh (ORCPT ); Thu, 27 Aug 2020 10:21:37 -0400 Received: from gaia (unknown [46.69.195.127]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 24FEC2177B; Thu, 27 Aug 2020 14:21:33 +0000 (UTC) Date: Thu, 27 Aug 2020 15:21:31 +0100 From: Catalin Marinas To: Andrey Konovalov Cc: Vincenzo Frascino , Dmitry Vyukov , kasan-dev , Andrey Ryabinin , Alexander Potapenko , Marco Elver , Evgenii Stepanov , Elena Petrova , Branislav Rankov , Kevin Brodsky , Will Deacon , Andrew Morton , Linux ARM , Linux Memory Management List , LKML Subject: Re: [PATCH 32/35] kasan, arm64: print report from tag fault handler Message-ID: <20200827142131.GN29264@gaia> References: <4691d6019ef00c11007787f5190841b47ba576c4.1597425745.git.andreyknvl@google.com> <20200827104816.GI29264@gaia> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Aug 27, 2020 at 02:34:31PM +0200, Andrey Konovalov wrote: > On Thu, Aug 27, 2020 at 12:48 PM Catalin Marinas > wrote: > > On Fri, Aug 14, 2020 at 07:27:14PM +0200, Andrey Konovalov wrote: > > > diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c > > > index c62c8ba85c0e..cf00b3942564 100644 > > > --- a/arch/arm64/mm/fault.c > > > +++ b/arch/arm64/mm/fault.c > > > @@ -14,6 +14,7 @@ > > > #include > > > #include > > > #include > > > +#include > > > #include > > > #include > > > #include > > > @@ -314,11 +315,19 @@ static void report_tag_fault(unsigned long addr, unsigned int esr, > > > { > > > bool is_write = ((esr & ESR_ELx_WNR) >> ESR_ELx_WNR_SHIFT) != 0; > > > > > > +#ifdef CONFIG_KASAN_HW_TAGS > > > + /* > > > + * SAS bits aren't set for all faults reported in EL1, so we can't > > > + * find out access size. > > > + */ > > > + kasan_report(addr, 0, is_write, regs->pc); > > > +#else > > > pr_alert("Memory Tagging Extension Fault in %pS\n", (void *)regs->pc); > > > pr_alert(" %s at address %lx\n", is_write ? "Write" : "Read", addr); > > > pr_alert(" Pointer tag: [%02x], memory tag: [%02x]\n", > > > mte_get_ptr_tag(addr), > > > mte_get_mem_tag((void *)addr)); > > > +#endif > > > } > > > > More dead code. So what's the point of keeping the pr_alert() introduced > > earlier? CONFIG_KASAN_HW_TAGS is always on for in-kernel MTE. If MTE is > > disabled, this function isn't called anyway. > > I was considering that we can enable in-kernel MTE without enabling > CONFIG_KASAN_HW_TAGS, but perhaps this isn't what we want. I'll drop > this part in v2, but then we also need to make sure that in-kernel MTE > is only enabled when CONFIG_KASAN_HW_TAGS is enabled. Do we need more > ifdefs in arm64 patches when we write to MTE-related registers, or > does this work as is? I think the in-kernel MTE for the time being should only mean CONFIG_KASAN_HW_TAGS, with a dependency on CONFIG_MTE. KASAN carries some additional debugging features but if we can trim it down, we may not need a separate in-kernel MTE option for production systems (maybe a CONFIG_KASAN_HW_TAGS_LITE). -- Catalin