Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp867088ybt; Wed, 24 Jun 2020 13:16:32 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzQa+YFeYU6/HKSw/+PjG+NXkcwcuekHMEnqu9AmdTmhNaNJzClgmVTW7urioyXwjtO4gpZ X-Received: by 2002:aa7:d613:: with SMTP id c19mr28073203edr.321.1593029792361; Wed, 24 Jun 2020 13:16:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1593029792; cv=none; d=google.com; s=arc-20160816; b=H/gamdR/Cv5+BZgL0uHnorWFRjdR6ujxKaW593tn9Au8j6CWY2msExG/ULJnjhma3X srq0vbONE+z347lWpoSebeGLfPT1IiLqRwADt5cZ3FkjiUIpiUOUF7fkc+UDiuBUN96M ucPx5dYMeBp0PqbgPuAsSduqt0ORDhtJNYhCpSEsn3zFQ+5Sl8elw2hUZYc9Bc85w518 yALCBLFF9d1qtevwOn+ce8d52sXq6T+F4wx7SsozuMo16Bxrmn5R+uGFQeuILCQdTCw2 5iUhaNumj8GibaL8jnRlczqB9vE1Uho3FrCYhRwneCINaPC25Xwi4wzsvhjep/DlU0II 1NAQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=ll0TxhIbdKHh5nAqXKtz0UOR5n3Q+vIfogrHrvACcdc=; b=kjMNH83P3buv+lEjrwajXpHHr+K5lIikk2hvFDd+U13s0+JGGMgNiWl9FB9ClgRa7P da8/e4j+IDPP765HNOt62+LlPQYBn0rjP9KoGnSWN82qJWI8jqCXeIq+UeKsswdaOihW U163NuEWBY5XEUFGoeA75ImV8fw5yWwO2fK3HWNehQzj0WHQL4g4VPwZcogwzMVhTqkS 4J7GVf477k/G/EkgnDOKA2oXCHZomSsX4doq3khCrFIVV//JbTjtSsJHzAY+FktfbLiA +6XwyUyKZSaZRpeEUtAjzqovyJERx0iv6hEtvhiZ5qFO527LNXOoeyZt8JlNWV+g3Vy7 tBjw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=BBYDQVie; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id p10si4907462eds.221.2020.06.24.13.16.08; Wed, 24 Jun 2020 13:16:32 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=BBYDQVie; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2406476AbgFXUNG (ORCPT + 99 others); Wed, 24 Jun 2020 16:13:06 -0400 Received: from mail.kernel.org ([198.145.29.99]:52516 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2406395AbgFXUMb (ORCPT ); Wed, 24 Jun 2020 16:12:31 -0400 Received: from paulmck-ThinkPad-P72.home (50-39-105-78.bvtn.or.frontiernet.net [50.39.105.78]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 01B6021556; Wed, 24 Jun 2020 20:12:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1593029551; bh=WMtWKuWdgvCD4A+DhTMHuc/p48EQB1ZIjEEVdQlrlHQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BBYDQViezzLMyK6hA/HwSUC0gFmze990uNbrXnZVr/L0IHO4MCkj266CxHggvGVhC qez9aE/X6JieYVa5Dw3paUD47AVWaeHR9E2JRnsJjFka7OYhT/9O5zegdrVHc9PG3L 31dQ0cmnSu7zp+PRyWGJpbRYE4iy+qL48JaG6Hzo= From: paulmck@kernel.org To: rcu@vger.kernel.org Cc: linux-kernel@vger.kernel.org, kernel-team@fb.com, mingo@kernel.org, jiangshanlai@gmail.com, dipankar@in.ibm.com, akpm@linux-foundation.org, mathieu.desnoyers@efficios.com, josh@joshtriplett.org, tglx@linutronix.de, peterz@infradead.org, rostedt@goodmis.org, dhowells@redhat.com, edumazet@google.com, fweisbec@gmail.com, oleg@redhat.com, joel@joelfernandes.org, "Uladzislau Rezki (Sony)" , "Paul E . McKenney" Subject: [PATCH tip/core/rcu 14/17] rcu: Introduce 2 arg kvfree_rcu() interface Date: Wed, 24 Jun 2020 13:12:23 -0700 Message-Id: <20200624201226.21197-14-paulmck@kernel.org> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20200624201200.GA28901@paulmck-ThinkPad-P72> References: <20200624201200.GA28901@paulmck-ThinkPad-P72> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: "Uladzislau Rezki (Sony)" 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 = 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) Signed-off-by: Paul E. McKenney --- include/linux/rcupdate.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h index b344fc8..51b26ab 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) +/** + * 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 -- 2.9.5