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 3FE85C83F14 for ; Wed, 30 Aug 2023 09:38:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C9990280023; Wed, 30 Aug 2023 05:38:17 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C22718E0009; Wed, 30 Aug 2023 05:38:17 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AC418280023; Wed, 30 Aug 2023 05:38:17 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 984678E0009 for ; Wed, 30 Aug 2023 05:38:17 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 4FE851A0115 for ; Wed, 30 Aug 2023 09:38:17 +0000 (UTC) X-FDA: 81180270234.25.1AC156C Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) by imf14.hostedemail.com (Postfix) with ESMTP id 4AA7910002B for ; Wed, 30 Aug 2023 09:38:15 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=vcPlnfiC; spf=pass (imf14.hostedemail.com: domain of elver@google.com designates 209.85.128.47 as permitted sender) smtp.mailfrom=elver@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1693388295; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=V7w982v/e1jzg2/UemZ2RnWkspcdmAHHRTHnHv5ffU8=; b=128iTQ6nadTLuObFX+cqSwmjJNIVgfNCSnBYTP+mafpkGZbavD4xYTWXiWg0H9FS6XhIwz lvEKZVwIO85CGsC5j5bPfam2ad9CqeccXoKBpIE1Zrj/7uckxERD6mEIhLzuOLT3htjGt+ o8YFm+Au7tdOqJqSMkF0qtFjWdrvoso= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1693388295; a=rsa-sha256; cv=none; b=ZdXdkrKiUvJfuVobt+9X8aaMW0pCSQz0Jp0ODkS2Rn+qgkDLDFLuxCulrGhLYqGYtvImII RxwnEvkoY4aLvq2nqVKOXxK+zpJo+M5n7PYeik5pSPh5pDG3nA5c/TgUh/LEP40LwGSRsE SdFblUNjECekB2nzGL8+wxapcqkwxgw= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=vcPlnfiC; spf=pass (imf14.hostedemail.com: domain of elver@google.com designates 209.85.128.47 as permitted sender) smtp.mailfrom=elver@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-wm1-f47.google.com with SMTP id 5b1f17b1804b1-401d80f4ef8so14422565e9.1 for ; Wed, 30 Aug 2023 02:38:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1693388294; x=1693993094; darn=kvack.org; h=user-agent:in-reply-to:content-disposition:mime-version:references :message-id:subject:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=V7w982v/e1jzg2/UemZ2RnWkspcdmAHHRTHnHv5ffU8=; b=vcPlnfiCz6eJ7rDvxNRvTAbkRIqDWPq541B/yKJHM6HdZEuMQ7vI7LcproMcGx4Cau JUd8sDhEyoxZl5rf6rgTyPOiUq2xpGaUH54ItZsBrvCtjS1Q9BXdea+J0AH0pRSlSufr ulLdRhptSJ3yuby5Iay+CBBIp4Kkeh+h3kV5ZFrFc8+ieVEqutQXPgCnqZN+re3c6jJY G36oUJ9+KOXPZrSBUFkYqHltbriFSgnDJQZeCKeRhdYwNEpx02QmkTJLUdDf9ZP7Cgo+ jWrp6b8VL58/N2fxw7vRqmrYZty6MIkiBxFTSpaLwBElnXUrn441xrJl+IvStwNBmDE9 nEgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693388294; x=1693993094; h=user-agent:in-reply-to:content-disposition:mime-version:references :message-id:subject:cc:to:from:date:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=V7w982v/e1jzg2/UemZ2RnWkspcdmAHHRTHnHv5ffU8=; b=D7mr0itnlEbaX4GSt550YhzHfD9tKwV1VjMVZyn+Yxa6IFYsNMqDlJhfWMFh0K3Ql8 EPPAY+qKxYPpZZn+YblTU8tdDal3lcnWjmgo+axn+bZ6kfHK+x/hlN1ip3uBBB3iC8gn I7IXRRnkriyFo6TQz1LgQ2CIHNS2C8SmK77cN93Kz2vwtMTBcIvfUKsHkXnBKHkizwrq YG8H7iF5nVE5OTEEr8ZB++evkr/wY0S9ny9NE9oq2Asd9V8UTz8Ovrt9ox1XjktYkazr 3pS3ZR+ZGdfRGptgFP/LYW4PEfxZcDyC1JWihHHU1Dvm6M5lpRPwjH12O/wiAFyswBAY ssgQ== X-Gm-Message-State: AOJu0Ywxg7M3HkpGKkCG2I/s1m6+LF/oheqnsDsCBGERZ+Eemz/dBZOH mzP8U4BUfCPAKc4wNXwv9t+mkQ== X-Google-Smtp-Source: AGHT+IH7T4lA8VKDVfX4ZbWxQucDyzEIV4N2/dAMItsXboYSXdL36/SsL46Qx29abbIde5hUVuPovg== X-Received: by 2002:a7b:c8c3:0:b0:3fe:d71a:d84e with SMTP id f3-20020a7bc8c3000000b003fed71ad84emr1520377wml.1.1693388293802; Wed, 30 Aug 2023 02:38:13 -0700 (PDT) Received: from elver.google.com ([2a00:79e0:9c:201:3380:af04:1905:46a]) by smtp.gmail.com with ESMTPSA id g15-20020a5d46cf000000b0031762e89f94sm16003691wrs.117.2023.08.30.02.38.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 30 Aug 2023 02:38:13 -0700 (PDT) Date: Wed, 30 Aug 2023 11:38:08 +0200 From: Marco Elver To: andrey.konovalov@linux.dev Cc: Alexander Potapenko , Andrey Konovalov , Dmitry Vyukov , Vlastimil Babka , kasan-dev@googlegroups.com, Evgenii Stepanov , Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrey Konovalov Subject: Re: [PATCH 15/15] kasan: use stack_depot_evict for tag-based modes Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/2.2.9 (2022-11-12) X-Stat-Signature: 4txx3dkjfteote76eqdwhx69717tfore X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 4AA7910002B X-Rspam-User: X-HE-Tag: 1693388295-857860 X-HE-Meta: U2FsdGVkX1/rrpdXrAubPWJ4LCxAwCSYYQZ9uMgP/Gpi6BWFOV2cJ1IxMc5tK+Q/DhvZEPYknaW7rfBmkf6+MoJuug4es71fjjcbWK+d1QNkY7/zIMhmYHqZyu9FW6DenA9CtPX2G/TcXuo2z0WoWjib/aeRvP1dF/PeXkKXHozlmbK5fPBtoz6f6hIS1f5uVavxtCXarJ7fHjRdh/g/VWZJLdFI/38DXhvpNeiN8wMvsII15ZCDyHSaflqxB27N2k+4rqvcgF8iWXj2NdQWRl9nfph9rr4BJts68Euz5W1CL4TEiZ/bzCMFgI1wnC5QYGSOC7AbSNlbKLI3DGLdYghxFRW79fsloosUM2zXMXphFmW3b1PGHezXvyTEoZwP07twovj+dig41TfeJ4gOX2+HmxaNP/+OIH74xcFq1g4dymWDcFfByjCGJdB3QX80EGL198CPCG5v/VXwY++bqzFATSfAlti4c7GWjKUBoVi35uf5WokkClC9eI0o+VjREvglP0S+Gg7nwd4WfdxaUZesLVloMFjwa5UNRHCDGWVUwWHFhoxHCkl2CPyzN1XNWN7g+Aa1vGx29WeW7tf9v81ntpR/creBhK9+gXOoAEZgEuquYcJyxwIiiWgxHxioEUbpAr6v97CjQAyMF4nNRtoyH3ODi2oE8pF1OJzem0NG7MF3VNfWn2coYHRG6zQhcTZ1laoEHe5lJUDtO+1fJok4ReNjXH3UaMEgfXj5G2K/FFHa4cj/ZHX/0lQTDbWo/nxU0E6BJ8DYGTY54Z4OqTEpbW8IaCiCHgY+PYCo8IQ7PXye1JGVGOP8w4u3JlNpR5HfpDunMxzgYD+tw35coUnIH7hke13iuPL03F1iPzAPzlymQVpXTkkjbivN+4cWgzlrFs0Lak+C8gANciuAQ/ZwUUz0VW+/5TkEc25BS8MnCSKpx7gboxRbSNvJUhxLYVhO/3fYyeAMfW0r+JS nDk6zMad CIOGDDTG801LTGxD91whxvOF5vGSlY8SPmuM6bg/23FtbjoBF0iTLnWyKDpPmOyW05Jyb57PtNDiaMto0yQjQ0nvvZH6Eer3cVI045NacwQbbnIvNmxRSmQPt6ZXFu64CyJBtkhXchdLGMeL+GMoOxXGgrrPQDRnjL6q/8GzgjYFNeCqT+GNSD+7rkTXVEY3NdM0VIvSIfBoAJYJZbcuLN8ZsqfH7uMpeM+RAzJnuk6chxN1TNs2b1sz8s2auAQFAgaY/O+J+qcH8FRxC9MxaVAgAddePmIW+SUX1WFCSdYDhCR4L3pFpujQmBHnfcy/wNIDquF30aqiwSBVGGP9ku1dm4ck6NU0WO10Z+aTrc6eBaIFuZP9Zud1X1T6pkhaDDirKKTKVdwcl1czSgaM5WG4xoQ9NSFtygm/uKlBjKcvLk7hIuGvWXZVzZHRwH+JC1x8v 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 Tue, Aug 29, 2023 at 07:11PM +0200, andrey.konovalov@linux.dev wrote: > From: Andrey Konovalov > > Evict stack traces from the stack depot for the tag-based KASAN modes > once they are evicted from the stack ring. > > Signed-off-by: Andrey Konovalov > --- > mm/kasan/tags.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/mm/kasan/tags.c b/mm/kasan/tags.c > index 7dcfe341d48e..fa6b0f77a7dd 100644 > --- a/mm/kasan/tags.c > +++ b/mm/kasan/tags.c > @@ -96,7 +96,7 @@ static void save_stack_info(struct kmem_cache *cache, void *object, > gfp_t gfp_flags, bool is_free) > { > unsigned long flags; > - depot_stack_handle_t stack; > + depot_stack_handle_t stack, old_stack; > u64 pos; > struct kasan_stack_ring_entry *entry; > void *old_ptr; > @@ -120,6 +120,8 @@ static void save_stack_info(struct kmem_cache *cache, void *object, > if (!try_cmpxchg(&entry->ptr, &old_ptr, STACK_RING_BUSY_PTR)) > goto next; /* Busy slot. */ > > + old_stack = READ_ONCE(entry->stack); Why READ_ONCE? Is it possible that there is a concurrent writer once the slot has been "locked" with STACK_RING_BUSY_PTR? If there is no concurrency, it would be clearer to leave it unmarked and add a comment to that effect. (I also think a comment would be good to say what the WRITE_ONCE below pair with, because at this point I've forgotten.) > WRITE_ONCE(entry->size, cache->object_size); > WRITE_ONCE(entry->pid, current->pid); > WRITE_ONCE(entry->stack, stack); > @@ -131,6 +133,9 @@ static void save_stack_info(struct kmem_cache *cache, void *object, > smp_store_release(&entry->ptr, (s64)object); > > read_unlock_irqrestore(&stack_ring.lock, flags); > + > + if (old_stack) > + stack_depot_evict(old_stack); > } > > void kasan_save_alloc_info(struct kmem_cache *cache, void *object, gfp_t flags) > -- > 2.25.1 >