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 X-Spam-Level: X-Spam-Status: No, score=-9.3 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EC6EBC433E3 for ; Mon, 25 May 2020 21:48:36 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id ABFCA206C3 for ; Mon, 25 May 2020 21:48:36 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="oK0yLXUM" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org ABFCA206C3 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 2F05B8006D; Mon, 25 May 2020 17:48:27 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1DB4380061; Mon, 25 May 2020 17:48:27 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0A4398006D; Mon, 25 May 2020 17:48:27 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0196.hostedemail.com [216.40.44.196]) by kanga.kvack.org (Postfix) with ESMTP id D138780061 for ; Mon, 25 May 2020 17:48:26 -0400 (EDT) Received: from smtpin06.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with ESMTP id A474C2C32 for ; Mon, 25 May 2020 21:48:26 +0000 (UTC) X-FDA: 76856580612.06.rub27_2c9416bb33741 X-HE-Tag: rub27_2c9416bb33741 X-Filterd-Recvd-Size: 4812 Received: from mail-lj1-f194.google.com (mail-lj1-f194.google.com [209.85.208.194]) by imf12.hostedemail.com (Postfix) with ESMTP for ; Mon, 25 May 2020 21:48:26 +0000 (UTC) Received: by mail-lj1-f194.google.com with SMTP id b6so22188684ljj.1 for ; Mon, 25 May 2020 14:48:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ik17svU3U29XQbLhqwF9DkU8YQ7sw6ADmoig1ExIl5o=; b=oK0yLXUMmFF5FfsG8+ulkLizK0+hpY4rBoPTkb7nV7T2QcpjbXrOHWDLqpXlwRu3m4 cpHEgZHagoLqggB6XZw3U7Z5EMBXyn73WUlxG4szDEy/5NdBis46mpdYaavBV7lVEr53 pL6JUMTe6iYJ9MXw18DSPO0y7fTGv+/w/D40aGkLANqs0eGSKrLL35ML73DOuS3iOIAu QxrYZ3+zUPz1Ive73j2u0d2N6NK7xon/ewslNnjgO8FPz7vY5iX55mBVziN6qlT1OBSU m0jOzr7OyI5uGSzkJ4MqvCculzjhE4w9LptHuuSMtyZf8ybSgnHIIbZ3ug8CNI5wmhPb qcCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ik17svU3U29XQbLhqwF9DkU8YQ7sw6ADmoig1ExIl5o=; b=UTrvltUffWvgf8mKZszRB/JndGWMcF5R9j5MraKKgMAHDeNmT95Q3but7J2ddNBA1H EhyE52AqLgguSGR/vcltMHFMZ0z9flG9b20p777tjxv5jE1in7ekvIE1sivQqVI8lOBJ aeMubFLqVc8nxDuesW8QS8yIY2dELPvFyLWQGZDKMkZ8gds74TFDG23O5pa8xX1hslPI MgGvjmL+qmYyT4U0IVzrWCj+4lnwM9rTRwlutycuSlhrneOpZtUMpZlJq/iJWpRfaoMO MJMA0CzShcni7Ml0HA2kHJkrJJuyu+6NfylJVKseIPILgmgqxtL/BtzmL1c7c+mL6Ogu /hig== X-Gm-Message-State: AOAM533TZAUCYTwXYapAHu19oNw+faFqLPL0+r4KWlQN9BJH4NfwXnxW uZwEqxjmzsrMTdu09FYU3fM= X-Google-Smtp-Source: ABdhPJzaf0nFKQVcNe6lFV+Hv17Rsr7GTfoxNLsSnpb8/RGK0v1mlJ5VKEs+R3jKwSb+XhwZeNmY6A== X-Received: by 2002:a2e:9586:: with SMTP id w6mr14219809ljh.274.1590443305005; Mon, 25 May 2020 14:48:25 -0700 (PDT) Received: from pc638.lan (h5ef52e31.seluork.dyn.perspektivbredband.net. [94.245.46.49]) by smtp.gmail.com with ESMTPSA id a6sm2280044lji.29.2020.05.25.14.48.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 25 May 2020 14:48:24 -0700 (PDT) From: "Uladzislau Rezki (Sony)" To: LKML , linux-mm@kvack.org Cc: Andrew Morton , "Paul E . McKenney" , "Theodore Y . Ts'o" , Matthew Wilcox , Joel Fernandes , RCU , Uladzislau Rezki , Oleksiy Avramchenko Subject: [PATCH v2 13/16] rcu: Introduce 2 arg kvfree_rcu() interface Date: Mon, 25 May 2020 23:47:57 +0200 Message-Id: <20200525214800.93072-14-urezki@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200525214800.93072-1-urezki@gmail.com> References: <20200525214800.93072-1-urezki@gmail.com> MIME-Version: 1.0 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: kvmalloc() can allocate two types of objects: SLAB backed and vmalloc backed. How it behaves depends on requested object's size and memory pressure. Add a kvfree_rcu() interface that can free memory allocated via kvmalloc(). It is a simple alias to kfree_rcu() which can now handle either type of object. struct test_kvfree_rcu { struct rcu_head rcu; unsigned char array[100]; }; struct test_kvfree_rcu *p; p =3D kvmalloc(10 * PAGE_SIZE); if (p) kvfree_rcu(p, rcu); Signed-off-by: Uladzislau Rezki (Sony) Co-developed-by: Joel Fernandes (Google) Reviewed-by: Joel Fernandes (Google) Signed-off-by: Joel Fernandes (Google) --- include/linux/rcupdate.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h index b344fc800a9b..51b26ab02878 100644 --- a/include/linux/rcupdate.h +++ b/include/linux/rcupdate.h @@ -875,6 +875,15 @@ do { \ __kvfree_rcu(&((___p)->rhf), offsetof(typeof(*(ptr)), rhf)); \ } while (0) =20 +/** + * kvfree_rcu() - kvfree an object after a grace period. + * @ptr: pointer to kvfree + * @rhf: the name of the struct rcu_head within the type of @ptr. + * + * Same as kfree_rcu(), just simple alias. + */ +#define kvfree_rcu(ptr, rhf) kfree_rcu(ptr, rhf) + /* * Place this after a lock-acquisition primitive to guarantee that * an UNLOCK+LOCK pair acts as a full barrier. This guarantee applies --=20 2.20.1