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 464BAC6FA8F for ; Wed, 30 Aug 2023 09:24:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AE2288E004C; Wed, 30 Aug 2023 05:24:38 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A6B418E0009; Wed, 30 Aug 2023 05:24:38 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8E4C88E004C; Wed, 30 Aug 2023 05:24:38 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 7A4598E0009 for ; Wed, 30 Aug 2023 05:24:38 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 48BE6403A8 for ; Wed, 30 Aug 2023 09:24:38 +0000 (UTC) X-FDA: 81180235836.06.B0B52E1 Received: from mail-lj1-f180.google.com (mail-lj1-f180.google.com [209.85.208.180]) by imf20.hostedemail.com (Postfix) with ESMTP id 44B011C001B for ; Wed, 30 Aug 2023 09:24:35 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=vRu8JODU; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf20.hostedemail.com: domain of elver@google.com designates 209.85.208.180 as permitted sender) smtp.mailfrom=elver@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1693387476; 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=UI7fXVlKfpB5b5W3nvIcPqt6ERVpjXtyoJBz3Uqak/4=; b=DQ5soERsYmw/ogCKNmSsmfDcusmK3xFJijmZTScfb7NRu4mDDogCN9AnZqe4W8nhTuSzS+ AOnf0+JxEyahL8WRG8intrfVGtnjEGdDGzG3ykKJa/hg6n6V81UYjDBk9v+8r0h92J3/he U0VHsgI8b02DfINKL0Pc1yK0J2ktC9o= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=vRu8JODU; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf20.hostedemail.com: domain of elver@google.com designates 209.85.208.180 as permitted sender) smtp.mailfrom=elver@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1693387476; a=rsa-sha256; cv=none; b=o1wX/Lu114+P7Pwxhfhb2bRkO0CBe+sXtcONHN6itUZpesFcaJ36qusOqqaWYvETVzAI8o q9TepMsZQx+d/x5tj7jvDl+iSfL2jsbj8TnsN53X2CSl8EuvskKzhXvobUQ2swVWfeWhLN 2cjuCUi24JuNjXc8hqXf8AUBGmueK10= Received: by mail-lj1-f180.google.com with SMTP id 38308e7fff4ca-2bb9a063f26so81763301fa.2 for ; Wed, 30 Aug 2023 02:24:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1693387474; x=1693992274; 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=UI7fXVlKfpB5b5W3nvIcPqt6ERVpjXtyoJBz3Uqak/4=; b=vRu8JODUi4pjdpVWWlwS8Xk5lWF4VoAGfTTh5SA9L0oRyHB08eIQnHr9zGkok75Hok G2sQ5bLVzu4UKkejK9VQPbCBasvh1GOXMA3SG/8DYuTtv1Rv7o5Ti4XPRG6rVCEC/Y2D AOOizmfgb6YwHrDxh4CuPKi1cnxc2n/zcO0VmYt7sxsOhq/JUUMOhiSkHfUQ3LZw3gZQ b3zA8YFzNNd6J+FKtzu/z1dkLpFkmjor4BEARvxSW3EwOrj895iE9D3KM1IEDBEUvBnh 3oZxT155l1+oaJjXXmUS+wOn8RMF5A7UDBS58eI1qqKfDgkU7v+q4vYbe/73dcoE3exr E5hQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693387474; x=1693992274; 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=UI7fXVlKfpB5b5W3nvIcPqt6ERVpjXtyoJBz3Uqak/4=; b=KDFZ+SH67fJL8WD1WvG53P0c8/ozLOkydCkIFbJcjnGwH3ejQ9IQRy1+B4s/q06VVM 9cdgq2MKBKke9dWIzZ16GEYHHLunrFgYL634mx+ljHHSs9p6ZyqBeQadsCqIK6h+YIBG 8OhBuUAGUvkQoAhJwhbtP76x48OX90Wvr51JVjHR1X5a9/imV553ONDNjkkOClZvk4Sl Twko/ex9lfVZ5LikIxOGqQApz5Dx8GY4mYX0qjhwoGxwsExkim3LQKGyNs2sayfSNjC8 9CJfzodcPUpf+WYhbSY/lot6Gz5GxTuXB8V4HRj+B1y3dUE22I5Vfk4ekdD09BgjtoC6 c7kQ== X-Gm-Message-State: AOJu0Yz3CbqpbTSiSQVG0JPg2U3T/EfwLRpnWVeH3ZxkfsCS4oQXJ3NZ djJdY7B9jUI3NaeiNIAqnGdKDw== X-Google-Smtp-Source: AGHT+IHP8e0ig5H8HhbPig62CSIBHh9eunykH8szviNxNp+jDo0jaFW7BQzj1bXxxJ0VICLY2FnW2w== X-Received: by 2002:a05:651c:10cf:b0:2bb:b56b:f67e with SMTP id l15-20020a05651c10cf00b002bbb56bf67emr1392650ljn.19.1693387474397; Wed, 30 Aug 2023 02:24:34 -0700 (PDT) Received: from elver.google.com ([2a00:79e0:9c:201:3380:af04:1905:46a]) by smtp.gmail.com with ESMTPSA id x1-20020a05600c21c100b003fe3674bb39sm1652429wmj.2.2023.08.30.02.24.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 30 Aug 2023 02:24:33 -0700 (PDT) Date: Wed, 30 Aug 2023 11:24:28 +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 13/15] stackdepot: add backwards links to hash table buckets 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-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 44B011C001B X-Stat-Signature: wpskj7jnixmq63hxshpabr8tecuxhbgm X-HE-Tag: 1693387475-980221 X-HE-Meta: U2FsdGVkX19tacTS7mVJxcP19rPssmaYBeU2z/M94zV85TS4t55+72Bgucf7WGh9iPWqDzj8YXbUKzg8Eyv2pLxNWeLLM46ijfVkJ4LlH2KuF1jkr90jCz7EoEbKdkHF7g9j+Gh3nPvaPP9fFfR1MC5+DYQTmPsIXyRYYzGQvCDBTWDDqioS0K5KP/tHCvZMugKuwZefn51IspMllyG1eozCkJ7N6Ttbc3IYBdLpADIKE9WX7ZoCIFS8VQ7f2kZWgHInUlXWj0gwVQOn3NN1wyPaXODqdB5wBvQ+3MjVGdT0mKEPKafBMmC2EWKsuGaccgeUWVqrcb2r59U2QipvDM1G0oBNfPrDYE6IFiXJdiUvWUaR0eZ7qUvrbcYWraVpFmj15P3RuuYOY2d52zruVsZObRnPBGuK8NyXTGXnPUM09Bbuycj0CKWGTGSiw6Xtpi7OQU20myKuaXHc9VCDQFLEA8ERv5sFY2t/Edbv72LVcLrkRdaknz5cYdUjkLfA2GvqzSgItDn/qylIpc2Jej7Ge7GCxoYxFWEVJPZ+lRoeHYiF7E3Vaj/VBaeaw7BG3jSdK09yRjnqIs1WUzddWpiXTm/5p202hNcvUbMkBzWLzehCBrGecYaJ9fYd3Q2dPs/MsDD583+PE9tyQy5Djw02ECSoRobagThT8HQt8syAReKn/F1WobZ8sJEeAGLJBC4TqJwPrHogJwuZIbwcgyUsY85kGaCjMoogNerN4sVytOty/PcXIlLS26unL6JIFsvbqiACL7F9Q4iiOQowoTBiGSncd3J5CUXkpVpfbnMw36RgPfOU0Vn6TQsPUQ/Ijwm1UDOtFgzgPqNbfA07ViimSzIY7kFnB+HOZn8KJj+pRGJVE/CYUxJW63aJyAv3651vsX4H265qV/jnZj2Vvb+qreMh28iQvwAt9WwZF14MtqSSvhYKHrrQQZnBTaUSwr3tHqUP4nTaXqCaQpy hXCPi70Q /YuWT3VkstRsXajiXiZUVoOIEYtVHPmTpWMsdj7L9z3Cx1Bgx4yzMKuyvisgtZ8Y0bXlgGjcqY2Kuzhf1PgUTSwt0rKzZUdzGIMGtQ0vWiK5fsrLHVGzmPaKtn4dQ0ujo1oLpiZ9lRWJoH6LDtoyYykbn7y2Jrqi9/S08vYXknXjuRgy5LgTF5Tj+pD1DpcE2aBfDz2o4ga633VMjRCzXEfzTv/kkEXbpaPghN8ynP2Mb5ihM0tFlZ5RplIVfUaEHxz8SpEhMKQEig2DlKMhzKLdbdNpOd75I61mW15BMW1w2qdeuAJ6tiRZvLqrF2iSvPU99KS58lR95OnhalczAmnRhsfLFSEfPKyle8MK0A3GmepA= 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 > > Maintain links in the stack records to previous entries within the > hash table buckets. > > This is preparatory patch for implementing the eviction of stack records > from the stack depot. > > Signed-off-by: Andrey Konovalov > --- > lib/stackdepot.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/lib/stackdepot.c b/lib/stackdepot.c > index a84c0debbb9e..641db97d8c7c 100644 > --- a/lib/stackdepot.c > +++ b/lib/stackdepot.c > @@ -58,6 +58,7 @@ union handle_parts { > > struct stack_record { > struct stack_record *next; /* Link in hash table or freelist */ > + struct stack_record *prev; /* Link in hash table */ At this point this could be a normal list_head? Then you don't have to roll your own doubly-linked list manipulation (and benefit from things like CONFIG_LIST_DEBUG). > u32 hash; /* Hash in hash table */ > u32 size; /* Number of stored frames */ > union handle_parts handle; > @@ -493,6 +494,9 @@ depot_stack_handle_t __stack_depot_save(unsigned long *entries, > > if (new) { > new->next = *bucket; > + new->prev = NULL; > + if (*bucket) > + (*bucket)->prev = new; > *bucket = new; > found = new; > } > -- > 2.25.1 >