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 91BEDC77B7F for ; Wed, 3 May 2023 15:18:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1DEE76B0072; Wed, 3 May 2023 11:18:53 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 16912900002; Wed, 3 May 2023 11:18:53 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 02F776B007B; Wed, 3 May 2023 11:18:52 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from mail-yb1-f178.google.com (mail-yb1-f178.google.com [209.85.219.178]) by kanga.kvack.org (Postfix) with ESMTP id CAD9C900002 for ; Wed, 3 May 2023 11:18:52 -0400 (EDT) Received: by mail-yb1-f178.google.com with SMTP id 3f1490d57ef6-b97ec4bbc5aso4398061276.3 for ; Wed, 03 May 2023 08:18:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1683127132; x=1685719132; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=i4wxKwRBUKexs/Rpj6bBCWyCDPYyPPHlLlNupBtzYaw=; b=uY9LZ4++hkvUyhbn5c4syfgYI214i342bZOqq7w3PZ5UnX1WOR8kP1Dd5DgdTFpHBZ YFrejpNwEwyVtgjJ2h7DJZZwM3wlarwFrdmlWF4/IbYdcLzhZu9eWfASeY3cBcMIJeWN TmMwBt2giD3P+L/dV8xN4DWdOteVRuLxU576D+QIIYn5IEbMmRqCsDy6wH6RisaS2En+ 77gau1VuW9LbpE+De59atSjH+/wZB+Rihg2dpbAxr/rgo94K50BySclFMG/5QR1qXpJU YHFq9FmHNI3H6tgkwrY1pQTOJWYJg3qmXEmnIBPxV25YxcUtyGvErDZS2P4I8lHhi3Z5 NkBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1683127132; x=1685719132; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=i4wxKwRBUKexs/Rpj6bBCWyCDPYyPPHlLlNupBtzYaw=; b=BxAkUtbgzFaWWyn8bPHl75d/gcZEFA41iSOzsXhMWZMNogg9nEvQYj0MS41NCSIx2a Es4j2mzTLK+cQ8oKLWVtd437vGvwuiFoW6mFBiGaWY4RNeaslvY7WYHwRKSvF6102P9Z 2gq9PpQJ4P0VesXvdFl4FlSVLqUwWJbZfpOULADIJEWP1UZSVzaLzOVlMmggqKqEY0uC Kb9RdslQeNCNT31VKJTtnih1lzXEGBfoU/rF2f0XpS1XTKQQkeaDoyQkCVlBXBHoN1nA QA1nFfd5yuzdAX2EUVN6hAJiL3ZpJh1nkYkBOfzGo9Vy0qu0tuWUrguzIB1EcpQ6F/Wb rQlQ== X-Gm-Message-State: AC+VfDwEPS1FhjHKAJqBTkOL/oyQa9fYkSORV8c2dGpVuwQ9sOhrQH7L xJWYmsvXfd+L7OoXcpxRwZW6WvOhRRcJvH4sJT/gSg== X-Google-Smtp-Source: ACHHUZ4K+d9eu2MhiXikUKkPbraytc5q+SB8DjlC4OAFlU81ddI4JrxvOKqNrFRbhuXyiN7N0776W6I4xeufDIeaumw= X-Received: by 2002:a25:6844:0:b0:b9d:90d1:6301 with SMTP id d65-20020a256844000000b00b9d90d16301mr17445969ybc.47.1683127131990; Wed, 03 May 2023 08:18:51 -0700 (PDT) MIME-Version: 1.0 References: <20230501165450.15352-1-surenb@google.com> <20230501165450.15352-35-surenb@google.com> In-Reply-To: From: Suren Baghdasaryan Date: Wed, 3 May 2023 08:18:39 -0700 Message-ID: Subject: Re: [PATCH 34/40] lib: code tagging context capture support To: Michal Hocko Cc: akpm@linux-foundation.org, kent.overstreet@linux.dev, vbabka@suse.cz, hannes@cmpxchg.org, roman.gushchin@linux.dev, mgorman@suse.de, dave@stgolabs.net, willy@infradead.org, liam.howlett@oracle.com, corbet@lwn.net, void@manifault.com, peterz@infradead.org, juri.lelli@redhat.com, ldufour@linux.ibm.com, catalin.marinas@arm.com, will@kernel.org, arnd@arndb.de, tglx@linutronix.de, mingo@redhat.com, dave.hansen@linux.intel.com, x86@kernel.org, peterx@redhat.com, david@redhat.com, axboe@kernel.dk, mcgrof@kernel.org, masahiroy@kernel.org, nathan@kernel.org, dennis@kernel.org, tj@kernel.org, muchun.song@linux.dev, rppt@kernel.org, paulmck@kernel.org, pasha.tatashin@soleen.com, yosryahmed@google.com, yuzhao@google.com, dhowells@redhat.com, hughd@google.com, andreyknvl@gmail.com, keescook@chromium.org, ndesaulniers@google.com, gregkh@linuxfoundation.org, ebiggers@google.com, ytcoode@gmail.com, vincent.guittot@linaro.org, dietmar.eggemann@arm.com, rostedt@goodmis.org, bsegall@google.com, bristot@redhat.com, vschneid@redhat.com, cl@linux.com, penberg@kernel.org, iamjoonsoo.kim@lge.com, 42.hyeyoo@gmail.com, glider@google.com, elver@google.com, dvyukov@google.com, shakeelb@google.com, songmuchun@bytedance.com, jbaron@akamai.com, rientjes@google.com, minchan@google.com, kaleshsingh@google.com, kernel-team@android.com, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, iommu@lists.linux.dev, linux-arch@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-modules@vger.kernel.org, kasan-dev@googlegroups.com, cgroups@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 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 Wed, May 3, 2023 at 12:36=E2=80=AFAM Michal Hocko wrot= e: > > On Mon 01-05-23 09:54:44, Suren Baghdasaryan wrote: > [...] > > +static inline void add_ctx(struct codetag_ctx *ctx, > > + struct codetag_with_ctx *ctc) > > +{ > > + kref_init(&ctx->refcount); > > + spin_lock(&ctc->ctx_lock); > > + ctx->flags =3D CTC_FLAG_CTX_PTR; > > + ctx->ctc =3D ctc; > > + list_add_tail(&ctx->node, &ctc->ctx_head); > > + spin_unlock(&ctc->ctx_lock); > > AFAIU every single tracked allocation will get its own codetag_ctx. > There is no aggregation per allocation site or anything else. This looks > like a scalability and a memory overhead red flag to me. True. The allocations here would not be limited. We could introduce a global limit to the amount of memory that we can use to store contexts and maybe reuse the oldest entry (in LRU fashion) when we hit that limit? > > > +} > > + > > +static inline void rem_ctx(struct codetag_ctx *ctx, > > + void (*free_ctx)(struct kref *refcount)) > > +{ > > + struct codetag_with_ctx *ctc =3D ctx->ctc; > > + > > + spin_lock(&ctc->ctx_lock); > > This could deadlock when allocator is called from the IRQ context. I see. spin_lock_irqsave() then? Thanks for the feedback! Suren. > > > + /* ctx might have been removed while we were using it */ > > + if (!list_empty(&ctx->node)) > > + list_del_init(&ctx->node); > > + spin_unlock(&ctc->ctx_lock); > > + kref_put(&ctx->refcount, free_ctx); > -- > Michal Hocko > SUSE Labs