From patchwork Wed Mar 29 19:45:37 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 76786 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp649811vqo; Wed, 29 Mar 2023 12:53:16 -0700 (PDT) X-Google-Smtp-Source: AKy350aaCwLbMIDv/f8du60gBye74YZz6rvt+1U1XMTuTJ2BcMd9kA1A+OGjA0fNEBCvcTvh4/2I X-Received: by 2002:a17:90b:4c07:b0:23d:35cf:44be with SMTP id na7-20020a17090b4c0700b0023d35cf44bemr3231213pjb.6.1680119596700; Wed, 29 Mar 2023 12:53:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1680119596; cv=none; d=google.com; s=arc-20160816; b=VFlMzE3P0qKLQK0J8PQbZ2mVanPcnDgTnNBBtwjEw+3PFDAxEzXrWF6TnAsNUENd2X 7WGSIc8Se3rdWcrmvlvwyHra26isUX/TETyZ8KE6feLpwdsdSLMt4e9H4xnQ3eM0+W2s hOXG0Un4gGduMn0XhGofBz5VvLQlsKFfIfSAocgYBPR7nNMFtX332iO5jEgmUdY7dmUX pbvpyqLkylnnJmgplVkd/awYOHxWVf1fbbtrEvACMY/oC8gPEalMOEUwdmPsj+fl6HVO Tz9CZcFdTuRdKaEINYVrjQn1CCmSOOKGHMCxYekFwyd49451Kr6YduOdrlU7lbz9MG31 q2QA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:subject:cc:to:from:date :user-agent:message-id; bh=l9xvm+MQzeAfPgm1b7p6/bRfPXJS7QRPC8lfXKziuak=; b=ws1UxdAjhl560S4vOM8KnpGgS9uowA7OJ1i26dOIG7iA6T85pxvBQ215YcneOKfZeA BrDuoYWRiCzyCQNycFjpamdonqX4XcwB11yL/BplMz1DrrVUAXz0wUvZ5LOcyKHLfwGQ 7mUcqdcUgpf8oIrr+7WGNJ0AVt1hcrm6ViJhcAH5pspr8rhb4aLq6ylcvnGcNDZ2p2Cd 4aSzJUgkr+3awahNBaKtYP8OHsV2qRKUO/jvhXPPt+sRoxkOW8HV+431DftPKjJwPcXO Yd1Mygrdv+HCldpQOew0vblrRienxyid6XwuQueXd/IWqOSRu3ZnU9w7t26hnKAhGqUA nWrw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x5-20020a17090a970500b0023ff9bc6dfcsi2027237pjo.56.2023.03.29.12.53.01; Wed, 29 Mar 2023 12:53:16 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229753AbjC2TrG (ORCPT + 99 others); Wed, 29 Mar 2023 15:47:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56100 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230150AbjC2Tp6 (ORCPT ); Wed, 29 Mar 2023 15:45:58 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E64776A4B for ; Wed, 29 Mar 2023 12:45:56 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 843C6B82438 for ; Wed, 29 Mar 2023 19:45:55 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5B56BC433EF; Wed, 29 Mar 2023 19:45:54 +0000 (UTC) Received: from rostedt by gandalf.local.home with local (Exim 4.96) (envelope-from ) id 1phbk1-002Rpy-1Y; Wed, 29 Mar 2023 15:45:53 -0400 Message-ID: <20230329194553.300997623@goodmis.org> User-Agent: quilt/0.66 Date: Wed, 29 Mar 2023 15:45:37 -0400 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Mark Rutland , Andrew Morton , Beau Belgrave Subject: [for-next][PATCH 21/25] tracing/user_events: Charge event allocs to cgroups References: <20230329194516.146147554@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_HI,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1761733086363418488?= X-GMAIL-MSGID: =?utf-8?q?1761733086363418488?= From: Beau Belgrave Operators need a way to limit how much memory cgroups use. User events need to be included into that accounting. Fix this by using GFP_KERNEL_ACCOUNT for allocations generated by user programs for user_event tracing. Link: https://lkml.kernel.org/r/20230328235219.203-11-beaub@linux.microsoft.com Signed-off-by: Beau Belgrave Signed-off-by: Steven Rostedt (Google) --- kernel/trace/trace_events_user.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/kernel/trace/trace_events_user.c b/kernel/trace/trace_events_user.c index f88bab3f1fe1..3a01c2df4a90 100644 --- a/kernel/trace/trace_events_user.c +++ b/kernel/trace/trace_events_user.c @@ -442,7 +442,7 @@ static bool user_event_enabler_dup(struct user_event_enabler *orig, if (unlikely(test_bit(ENABLE_VAL_FREEING_BIT, ENABLE_BITOPS(orig)))) return true; - enabler = kzalloc(sizeof(*enabler), GFP_NOWAIT); + enabler = kzalloc(sizeof(*enabler), GFP_NOWAIT | __GFP_ACCOUNT); if (!enabler) return false; @@ -502,7 +502,7 @@ static struct user_event_mm *user_event_mm_create(struct task_struct *t) struct user_event_mm *user_mm; unsigned long flags; - user_mm = kzalloc(sizeof(*user_mm), GFP_KERNEL); + user_mm = kzalloc(sizeof(*user_mm), GFP_KERNEL_ACCOUNT); if (!user_mm) return NULL; @@ -662,7 +662,7 @@ static struct user_event_enabler if (!user_mm) return NULL; - enabler = kzalloc(sizeof(*enabler), GFP_KERNEL); + enabler = kzalloc(sizeof(*enabler), GFP_KERNEL_ACCOUNT); if (!enabler) goto out; @@ -870,7 +870,7 @@ static int user_event_add_field(struct user_event *user, const char *type, struct ftrace_event_field *field; int validator_flags = 0; - field = kmalloc(sizeof(*field), GFP_KERNEL); + field = kmalloc(sizeof(*field), GFP_KERNEL_ACCOUNT); if (!field) return -ENOMEM; @@ -889,7 +889,7 @@ static int user_event_add_field(struct user_event *user, const char *type, if (strstr(type, "char") != NULL) validator_flags |= VALIDATOR_ENSURE_NULL; - validator = kmalloc(sizeof(*validator), GFP_KERNEL); + validator = kmalloc(sizeof(*validator), GFP_KERNEL_ACCOUNT); if (!validator) { kfree(field); @@ -1175,7 +1175,7 @@ static int user_event_create_print_fmt(struct user_event *user) len = user_event_set_print_fmt(user, NULL, 0); - print_fmt = kmalloc(len, GFP_KERNEL); + print_fmt = kmalloc(len, GFP_KERNEL_ACCOUNT); if (!print_fmt) return -ENOMEM; @@ -1508,7 +1508,7 @@ static int user_event_create(const char *raw_command) raw_command += USER_EVENTS_PREFIX_LEN; raw_command = skip_spaces(raw_command); - name = kstrdup(raw_command, GFP_KERNEL); + name = kstrdup(raw_command, GFP_KERNEL_ACCOUNT); if (!name) return -ENOMEM; @@ -1704,7 +1704,7 @@ static int user_event_parse(struct user_event_group *group, char *name, return 0; } - user = kzalloc(sizeof(*user), GFP_KERNEL); + user = kzalloc(sizeof(*user), GFP_KERNEL_ACCOUNT); if (!user) return -ENOMEM; @@ -1874,7 +1874,7 @@ static int user_events_open(struct inode *node, struct file *file) if (!group) return -ENOENT; - info = kzalloc(sizeof(*info), GFP_KERNEL); + info = kzalloc(sizeof(*info), GFP_KERNEL_ACCOUNT); if (!info) return -ENOMEM; @@ -1927,7 +1927,7 @@ static int user_events_ref_add(struct user_event_file_info *info, size = struct_size(refs, events, count + 1); - new_refs = kzalloc(size, GFP_KERNEL); + new_refs = kzalloc(size, GFP_KERNEL_ACCOUNT); if (!new_refs) return -ENOMEM;