Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp2012611ybb; Sun, 29 Mar 2020 19:56:46 -0700 (PDT) X-Google-Smtp-Source: ADFU+vvnTfW9QQmmnly+2bWEkJJZJc68K406IG7JQ0vUXLjoU+IduWL4qiRy820DZiZa+a9tl3Jl X-Received: by 2002:aca:47c8:: with SMTP id u191mr6542622oia.170.1585537006179; Sun, 29 Mar 2020 19:56:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1585537006; cv=none; d=google.com; s=arc-20160816; b=uar7QifziIo2l8q3maMIT0r4RPofO9aoALF5tLkGd/bffV8bA0z6/NZURmNJzXqXsg LrZlV1VRS4JjElLT73cNTe6vzcXeCdtdcL8fIgdJ17VVH8euvnwJJifzn/EpmH2voNlC cEHqi4wlSRe6lnPWY47st0iKcJq3wXJnzUU4kyXHlMml8nZAtlaTS7IHrMlgPXzsyKom RH8gOs6HLZSnMvUXkulTyJsEfxosbA2XOJPpEXIAchM+KjM7GvsAjSWqN47JyNrCZ0uS eFgzabmvt7NwZawbUjnSz61zkqe+bkMtU8U+V6dNEKKwgeuWnje6ITVpWRRD8nsMs+u2 b7ag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Y9juYIZdTD4S3/RhfF4ZU+wi+6D+Bwupgtb3fIEkI74=; b=R7WVoEIul4ttGVcgRnvOb+ry4CKmSdNJPSibFjg217zCEPuBLNaXAVFVgOnINyMT7/ UmEThCtiDDPx1LeMvZ2P9TdBVFjwUCElSqYOuGpJftsCsuILsNGopFLgZabcUP4Wf1Oh gN6bw0TsJHEiG4C7oabRZO8rEHQglq1vQx2VfNP6KZ+C0VL0vEtTB9smgdhDm9jW7Etw NdrXyBVnewXyTYFytBf6202wqi2poz8J33DVzQ5eF5J1y03EB9/tkIz9lQWdg/6h5hjR 3PD56iCEokE0dKC9n2/iGyUbToSFTcNr8pxhozKu0lVt20zlv1Sr9Ogo8lue8M+alZ8B 8S/Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@joelfernandes.org header.s=google header.b=YFyChil3; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b19si7619426ots.224.2020.03.29.19.56.34; Sun, 29 Mar 2020 19:56:46 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@joelfernandes.org header.s=google header.b=YFyChil3; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729351AbgC3Cea (ORCPT + 99 others); Sun, 29 Mar 2020 22:34:30 -0400 Received: from mail-qt1-f196.google.com ([209.85.160.196]:39241 "EHLO mail-qt1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729055AbgC3Cdi (ORCPT ); Sun, 29 Mar 2020 22:33:38 -0400 Received: by mail-qt1-f196.google.com with SMTP id f20so13936368qtq.6 for ; Sun, 29 Mar 2020 19:33:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=joelfernandes.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Y9juYIZdTD4S3/RhfF4ZU+wi+6D+Bwupgtb3fIEkI74=; b=YFyChil3lVYm7zhnne5lGhwbXXlq2EDvxsIxZFa2dtN2ItcId/sHvPqThGAh1BwFZl YWaCpA7Lt+GVmGROOWIIkfAFa//fAZAdJmSr8bHVwVDtlP8Ncb6wNX3k7OmivGSl7CnM qCJmFAVk90alncCE3ob/Cy9tUBPO6k+bzjjzU= 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=Y9juYIZdTD4S3/RhfF4ZU+wi+6D+Bwupgtb3fIEkI74=; b=Pkg1hCbbaXUY2iMon0hyKpjTLtoLaWI70zxe17aXm1QBzJRcaJccH+qegh87A/lvKk odeR1YdmZ3tIUUyS722/OnuH5CV63S44AQy0csp+lSabmc2IofP6KonH38PKfiL68LXl Tart3pX+czR+EUhvMUyNEF3IxabYC0Ruo+Hp2U1y12GwDuq4Lx0cZn7B4N/iCZlQMtLt ZvC8AoBzkl6kRewqWD2OmiiAnUAAnvkNda4ZtigyP85AGIGG+dKkvQjusV59uDG1C7Hb kSe/JHzC0pOldzIy5slKAcvU/FrNQUVHfbw96IRXNI+jhynFTUuKvRj4QBz8CHeC0BPf evSw== X-Gm-Message-State: ANhLgQ1lHqMmdUdtul7AUT5LRFh6B3slDhaE0jjd+mGE58/gTy5Cs/BS N+RucMgXi0jB6PBIF9nzTofTP3HN9HM= X-Received: by 2002:ac8:6d19:: with SMTP id o25mr10223186qtt.303.1585535617018; Sun, 29 Mar 2020 19:33:37 -0700 (PDT) Received: from joelaf.cam.corp.google.com ([2620:15c:6:12:9c46:e0da:efbf:69cc]) by smtp.gmail.com with ESMTPSA id q15sm10030625qtj.83.2020.03.29.19.33.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Mar 2020 19:33:36 -0700 (PDT) From: "Joel Fernandes (Google)" To: linux-kernel@vger.kernel.org Cc: "Uladzislau Rezki (Sony)" , Joel Fernandes , Andrew Morton , Ingo Molnar , Josh Triplett , Lai Jiangshan , linux-mm@kvack.org, Mathieu Desnoyers , "Paul E. McKenney" , "Rafael J. Wysocki" , rcu@vger.kernel.org, Steven Rostedt Subject: [PATCH 06/18] mm/list_lru.c: Remove kvfree_rcu_local() function Date: Sun, 29 Mar 2020 22:32:36 -0400 Message-Id: <20200330023248.164994-7-joel@joelfernandes.org> X-Mailer: git-send-email 2.26.0.rc2.310.g2932bb562d-goog In-Reply-To: <20200330023248.164994-1-joel@joelfernandes.org> References: <20200330023248.164994-1-joel@joelfernandes.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: "Uladzislau Rezki (Sony)" Since there is newly introduced kvfree_rcu() API, there is no need in queuing and using call_rcu() to kvfree() an object after the GP. Remove kvfree_rcu_local() function and replace call_rcu() by new kvfree_rcu() API that does the same but in more efficient way. Signed-off-by: Uladzislau Rezki (Sony) Reviewed-by: Joel Fernandes (Google) Signed-off-by: Joel Fernandes (Google) --- mm/list_lru.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/mm/list_lru.c b/mm/list_lru.c index 386424688f805..69becdb224080 100644 --- a/mm/list_lru.c +++ b/mm/list_lru.c @@ -12,6 +12,7 @@ #include #include #include +#include #include "slab.h" #ifdef CONFIG_MEMCG_KMEM @@ -383,21 +384,13 @@ static void memcg_destroy_list_lru_node(struct list_lru_node *nlru) struct list_lru_memcg *memcg_lrus; /* * This is called when shrinker has already been unregistered, - * and nobody can use it. So, there is no need to use kvfree_rcu_local(). + * and nobody can use it. So, there is no need to use kvfree_rcu(). */ memcg_lrus = rcu_dereference_protected(nlru->memcg_lrus, true); __memcg_destroy_list_lru_node(memcg_lrus, 0, memcg_nr_cache_ids); kvfree(memcg_lrus); } -static void kvfree_rcu_local(struct rcu_head *head) -{ - struct list_lru_memcg *mlru; - - mlru = container_of(head, struct list_lru_memcg, rcu); - kvfree(mlru); -} - static int memcg_update_list_lru_node(struct list_lru_node *nlru, int old_size, int new_size) { @@ -429,7 +422,7 @@ static int memcg_update_list_lru_node(struct list_lru_node *nlru, rcu_assign_pointer(nlru->memcg_lrus, new); spin_unlock_irq(&nlru->lock); - call_rcu(&old->rcu, kvfree_rcu_local); + kvfree_rcu(old, rcu); return 0; } -- 2.26.0.rc2.310.g2932bb562d-goog