From patchwork Tue Jun 11 16:42:32 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robert Richter X-Patchwork-Id: 17892 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-vb0-f72.google.com (mail-vb0-f72.google.com [209.85.212.72]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id 3E40825DF1 for ; Thu, 13 Jun 2013 10:57:09 +0000 (UTC) Received: by mail-vb0-f72.google.com with SMTP id p12sf9428060vbe.3 for ; Thu, 13 Jun 2013 03:57:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-beenthere:x-forwarded-to:x-forwarded-for :delivered-to:resent-from:resent-date:resent-message-id:resent-to :sender:from:to:cc:subject:date:message-id:x-mailer:in-reply-to :references:x-original-sender:x-original-authentication-results :precedence:mailing-list:list-id:x-google-group-id:list-post :list-help:list-archive:list-unsubscribe; bh=TvcSRt4bwkm26hW8LPFBQc/mlob6/6Ct11w1hNwNE28=; b=V82rj9XbAQSjlyVrcE5NcjufkBzdBMhHgG5TW9kqCO8Njr9CYhsD5R/Cw1AU1MWDlc /zkYgW7PBxdzkQBF7lPE9Ut3tgl3XNySd/HTfCRHV7YMahQ/JaMCqhj3r1Oq7i5BrQH2 /30IzTUhqp9MRHo2kW8c3a1gbdS5ewvBGA7UbQNUhaUluW+U7Qpzdf3pN7uKJpW0+yyo tcmRaXXgNtsXIht6BTIg1Nzm9ikFwAUw+DCmdSUMnEWW4fEFZMYncxw40ObN0m/pd7fc cfkeo87K7hRBKfyS43yZO8EZL78Cm7IgB5KaQEZcQFjglxxvklnRSD86WP59O4D2YO87 FiKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:x-beenthere:x-forwarded-to:x-forwarded-for :delivered-to:resent-from:resent-date:resent-message-id:resent-to :sender:from:to:cc:subject:date:message-id:x-mailer:in-reply-to :references:x-gm-message-state:x-original-sender :x-original-authentication-results:precedence:mailing-list:list-id :x-google-group-id:list-post:list-help:list-archive:list-unsubscribe; bh=TvcSRt4bwkm26hW8LPFBQc/mlob6/6Ct11w1hNwNE28=; b=fIdqOMp0Ou+ef6LO+As5ccWsP95d/oPGVf0cAMg8BVUb2m6+rfOfm0RVpqJsTY8MsZ wSQwTfqEOIsYdGuhDnWP5uA9UmoVlSDNOmabiEwztrruHJksehChySq9agkD0GFjq7M2 gOmFj6c1EOQuUzO+DEoWD5k0bMDEEfLz0cUPhVWCOL+xLOm0OAuJY6k2X72rv7djRgrC CEhirrG3nxQnVfONkGX617uEScadI3n1TL1tZN20Mk66H0nUK8Nl1VLvR+I6f0qvG4iN BAP4ORWcnoaTYu4hghONAmfL//UpatiJ/w+fvMGwTPHJPCIu0IhA4M6ZZWyalMHyAaaM BhVg== X-Received: by 10.224.42.141 with SMTP id s13mr1304197qae.3.1371121028684; Thu, 13 Jun 2013 03:57:08 -0700 (PDT) MIME-Version: 1.0 X-BeenThere: patchwork-forward@linaro.org Received: by 10.49.94.84 with SMTP id da20ls2430769qeb.46.gmail; Thu, 13 Jun 2013 03:57:08 -0700 (PDT) X-Received: by 10.58.50.7 with SMTP id y7mr109508ven.24.1371121028488; Thu, 13 Jun 2013 03:57:08 -0700 (PDT) Received: from mail-ve0-x232.google.com (mail-ve0-x232.google.com [2607:f8b0:400c:c01::232]) by mx.google.com with ESMTPS id l10si10171259vet.28.2013.06.13.03.57.08 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 13 Jun 2013 03:57:08 -0700 (PDT) Received-SPF: neutral (google.com: 2607:f8b0:400c:c01::232 is neither permitted nor denied by best guess record for domain of patch+caf_=patchwork-forward=linaro.org@linaro.org) client-ip=2607:f8b0:400c:c01::232; Received: by mail-ve0-f178.google.com with SMTP id pb11so7552473veb.37 for ; Thu, 13 Jun 2013 03:57:08 -0700 (PDT) X-Received: by 10.52.170.148 with SMTP id am20mr80032vdc.75.1371121028255; Thu, 13 Jun 2013 03:57:08 -0700 (PDT) X-Forwarded-To: patchwork-forward@linaro.org X-Forwarded-For: patch@linaro.org patchwork-forward@linaro.org Delivered-To: patches@linaro.org Received: by 10.58.191.99 with SMTP id gx3csp16605vec; Thu, 13 Jun 2013 03:57:07 -0700 (PDT) X-Received: by 10.204.52.137 with SMTP id i9mr38880bkg.183.1371121025219; Thu, 13 Jun 2013 03:57:05 -0700 (PDT) Received: from mail-bk0-x235.google.com (mail-bk0-x235.google.com [2a00:1450:4008:c01::235]) by mx.google.com with ESMTPS id v9si3534960bkh.167.2013.06.13.03.57.04 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 13 Jun 2013 03:57:05 -0700 (PDT) Received-SPF: pass (google.com: domain of rric.net@gmail.com designates 2a00:1450:4008:c01::235 as permitted sender) client-ip=2a00:1450:4008:c01::235; Received: by mail-bk0-f53.google.com with SMTP id e11so4473567bkh.40 for ; Thu, 13 Jun 2013 03:57:04 -0700 (PDT) X-Received: by 10.204.227.201 with SMTP id jb9mr56175bkb.96.1371121024536; Thu, 13 Jun 2013 03:57:04 -0700 (PDT) Received: from rric.localhost (g224198135.adsl.alicedsl.de. [92.224.198.135]) by mx.google.com with ESMTPSA id fz10sm9171841bkc.9.2013.06.13.03.57.03 for (version=TLSv1 cipher=RC4-SHA bits=128/128); Thu, 13 Jun 2013 03:57:04 -0700 (PDT) Resent-From: Robert Richter Resent-Date: Thu, 13 Jun 2013 12:57:01 +0200 Resent-Message-ID: <20130613105701.GG12218@rric.localhost> Resent-To: linaro-kernel@lists.linaro.org, patches@linaro.org Received: from rric.localhost (f053086247.adsl.alicedsl.de. [78.53.86.247]) by mx.google.com with ESMTPSA id b12sm6160884bkz.0.2013.06.11.09.42.58 for (version=TLSv1.2 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 11 Jun 2013 09:42:59 -0700 (PDT) Sender: Robert Richter From: Robert Richter To: Borislav Petkov Cc: Ingo Molnar , Peter Zijlstra , Arnaldo Carvalho de Melo , Jiri Olsa , linux-kernel@vger.kernel.org, Robert Richter , Robert Richter Subject: [PATCH v2 06/14] perf, persistent: Remove rb_put() Date: Tue, 11 Jun 2013 18:42:32 +0200 Message-Id: <1370968960-22527-7-git-send-email-rric@kernel.org> X-Mailer: git-send-email 1.8.1.1 In-Reply-To: <1370968960-22527-1-git-send-email-rric@kernel.org> References: <1370968960-22527-1-git-send-email-rric@kernel.org> X-Gm-Message-State: ALoCoQnoLwLDKKCx7UaFdFPlu2aqo9hxGhMYnOv2r6OkV2UCcSRwaZ8fI2VRUiyTn6FPagcpljv/ X-Original-Sender: rric.net@gmail.com X-Original-Authentication-Results: mx.google.com; spf=neutral (google.com: 2607:f8b0:400c:c01::232 is neither permitted nor denied by best guess record for domain of patch+caf_=patchwork-forward=linaro.org@linaro.org) smtp.mail=patch+caf_=patchwork-forward=linaro.org@linaro.org; dkim=pass header.i=@gmail.com Precedence: list Mailing-list: list patchwork-forward@linaro.org; contact patchwork-forward+owners@linaro.org List-ID: X-Google-Group-Id: 836684582541 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , From: Robert Richter rb_put() is called already in perf_event_release_kernel(), so no need to do the same in del_persistent_event(). We also don't need it in add_persistent_event_on_cpu() after a rework. Since there are no users of rb_put() anymore, we can make it private again to only events/core.c. Signed-off-by: Robert Richter Signed-off-by: Robert Richter --- kernel/events/core.c | 4 +++- kernel/events/internal.h | 1 - kernel/events/persistent.c | 29 +++++++++++------------------ 3 files changed, 14 insertions(+), 20 deletions(-) diff --git a/kernel/events/core.c b/kernel/events/core.c index a9b6470..8f85caa 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -3021,6 +3021,8 @@ static void free_event_rcu(struct rcu_head *head) kfree(event); } +static void rb_put(struct ring_buffer *rb); + static void free_event(struct perf_event *event) { irq_work_sync(&event->pending); @@ -3680,7 +3682,7 @@ static struct ring_buffer *rb_get(struct perf_event *event) return rb; } -void rb_put(struct ring_buffer *rb) +static void rb_put(struct ring_buffer *rb) { struct perf_event *event, *n; unsigned long flags; diff --git a/kernel/events/internal.h b/kernel/events/internal.h index 3b481be..3647289 100644 --- a/kernel/events/internal.h +++ b/kernel/events/internal.h @@ -38,7 +38,6 @@ struct ring_buffer { extern void rb_free(struct ring_buffer *rb); extern struct ring_buffer * rb_alloc(int nr_pages, long watermark, int cpu, int flags); -extern void rb_put(struct ring_buffer *rb); extern void perf_event_wakeup(struct perf_event *event); extern void diff --git a/kernel/events/persistent.c b/kernel/events/persistent.c index d7aaf95..e6a7664 100644 --- a/kernel/events/persistent.c +++ b/kernel/events/persistent.c @@ -20,22 +20,22 @@ static struct perf_event * add_persistent_event_on_cpu(unsigned int cpu, struct perf_event_attr *attr, unsigned nr_pages) { - struct perf_event *event = ERR_PTR(-ENOMEM); + struct perf_event *event; struct pers_event_desc *desc; struct ring_buffer *buf; desc = kzalloc(sizeof(*desc), GFP_KERNEL); if (!desc) - goto out; - - buf = rb_alloc(nr_pages, 0, cpu, 0); - if (!buf) - goto err_rb; + return ERR_PTR(-ENOMEM); event = perf_event_create_kernel_counter(attr, cpu, NULL, NULL, NULL); if (IS_ERR(event)) goto err_event; + buf = rb_alloc(nr_pages, 0, cpu, 0); + if (!buf) + goto err_rb; + rcu_assign_pointer(event->rb, buf); desc->event = event; @@ -47,14 +47,12 @@ add_persistent_event_on_cpu(unsigned int cpu, struct perf_event_attr *attr, perf_event_enable(event); goto out; - - err_event: - rb_put(buf); - - err_rb: +err_rb: + perf_event_release_kernel(event); + event = ERR_PTR(-ENOMEM); +err_event: kfree(desc); - - out: +out: return event; } @@ -76,11 +74,6 @@ static void del_persistent_event(int cpu, struct perf_event_attr *attr) list_del(&desc->plist); perf_event_disable(event); - if (event->rb) { - rb_put(event->rb); - rcu_assign_pointer(event->rb, NULL); - } - perf_event_release_kernel(event); put_unused_fd(desc->fd); kfree(desc);