Received: by 2002:a25:d7c1:0:0:0:0:0 with SMTP id o184csp4643681ybg; Tue, 29 Oct 2019 10:11:31 -0700 (PDT) X-Google-Smtp-Source: APXvYqz30yeRhtLTiPl0gLFeZBFYZ4z28/jwOIbxn8dhQvyhaeURDbhumRR1SItc/8RHNe7dklbH X-Received: by 2002:aa7:c048:: with SMTP id k8mr16233258edo.254.1572369091453; Tue, 29 Oct 2019 10:11:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1572369091; cv=none; d=google.com; s=arc-20160816; b=rc6Gt/7xIURc7h/BIfNMJb3D+6CKe3sJ62NNbXQ4h66F2znBDuccYK/nUogOjPHHzL STE3StO3DSqxeqwVbYrFy4j7T3Cxfu1ymyd/EFLOZb9leCZDp5rZt82jRId0OWoxmhfk 0fbsP9H0zmZMLCdqGxyNOCJJzsURDgvWoKI4U7JdUEkws0UqUpaskg/Tl1FUMXUSjz2s fJdtttEx+dABsTR5lSFo67fCn42xm8TxnM3WxnOfANmTRqXP7pltA4Vs51BKOsqJ8D+w y6oddSH8JmqSh6dRkN43gaFlgOAcsJ2XfU+J0PO/sVR5ynabXsGvSpwGLtSFx8BEicpi cTeA== 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; bh=YeedTn4zd/DtPUgzOxggrluOryTdLIGQ+xB/BKC1ocI=; b=RcE3aEi8BxDrUnB/J6G9gUivIl6kT7c4Zm5pOtg0k7PPcws/qe/pEZN3VQvT6T0veC ns6GAT4I2IQelVQqRtZdgvl1/v9tNMMlJqHzayL/Z7ev48YrSVT4FXnrS26ZCkviuOQr dZcCQ3fVDwl6LQHbxWOIGpuh9OuWX6X8wxuUDYvslhPJLaRIl6ZZHzbQy5p4nPnLmXXe UVvvKqnxV0LzdlWYmhYzN5mYCC5pNkfWvmjPBgCGr+D4Zs95pxx3OGRk+ypnae9JYaCN Pf55FUxNQXiLBhrlsmbs5Uhzu6PEmYxoFzD1Eyw7rWUkiNO4LxrBe4cIEm46BsCMN9UF y0Qg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=virtuozzo.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m9si8205355ejk.322.2019.10.29.10.11.07; Tue, 29 Oct 2019 10:11:31 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=virtuozzo.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2390699AbfJ2RHg (ORCPT + 99 others); Tue, 29 Oct 2019 13:07:36 -0400 Received: from relay.sw.ru ([185.231.240.75]:57088 "EHLO relay.sw.ru" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2390367AbfJ2RHf (ORCPT ); Tue, 29 Oct 2019 13:07:35 -0400 Received: from [172.16.25.5] by relay.sw.ru with esmtp (Exim 4.92.2) (envelope-from ) id 1iPUxo-0006eL-Lz; Tue, 29 Oct 2019 20:07:24 +0300 Subject: Re: [PATCH v10 3/5] fork: support VMAP_STACK with KASAN_VMALLOC To: Daniel Axtens , kasan-dev@googlegroups.com, linux-mm@kvack.org, x86@kernel.org, glider@google.com, luto@kernel.org, linux-kernel@vger.kernel.org, mark.rutland@arm.com, dvyukov@google.com, christophe.leroy@c-s.fr Cc: linuxppc-dev@lists.ozlabs.org, gor@linux.ibm.com, Andrew Morton References: <20191029042059.28541-1-dja@axtens.net> <20191029042059.28541-4-dja@axtens.net> From: Andrey Ryabinin Message-ID: <6dd97cbd-b3ac-3f53-36d6-489c45ddaf92@virtuozzo.com> Date: Tue, 29 Oct 2019 20:07:09 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 MIME-Version: 1.0 In-Reply-To: <20191029042059.28541-4-dja@axtens.net> Content-Type: text/plain; charset=utf-8 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 10/29/19 7:20 AM, Daniel Axtens wrote: > Supporting VMAP_STACK with KASAN_VMALLOC is straightforward: > > - clear the shadow region of vmapped stacks when swapping them in > - tweak Kconfig to allow VMAP_STACK to be turned on with KASAN > > Reviewed-by: Dmitry Vyukov > Signed-off-by: Daniel Axtens > --- Reviewed-by: Andrey Ryabinin > > diff --git a/kernel/fork.c b/kernel/fork.c > index 954e875e72b1..a6e5249ad74b 100644 > --- a/kernel/fork.c > +++ b/kernel/fork.c > @@ -94,6 +94,7 @@ > #include > #include > #include > +#include > > #include > #include > @@ -224,6 +225,9 @@ static unsigned long *alloc_thread_stack_node(struct task_struct *tsk, int node) > if (!s) > continue; > > + /* Clear the KASAN shadow of the stack. */ > + kasan_unpoison_shadow(s->addr, THREAD_SIZE); > + Just sharing the thought. We could possibly add poisoning in free_thread_stack() to catch possible usage of freed cached stack. But it might be a bad idea because cached stacks supposed to be reused very quickly. So it might just add overhead without much gain. > /* Clear stale pointers from reused stack. */ > memset(s->addr, 0, THREAD_SIZE); > >