From patchwork Thu Oct 5 01:53:12 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 148663 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:2016:b0:403:3b70:6f57 with SMTP id fe22csp14249vqb; Wed, 4 Oct 2023 18:52:50 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGUGI9OL4D4SDMqIitx4DhSs4g/ZfHNI5kwm6yLPHWeCE4WgGSmFF7FpS+4YfAYmuA4LFTp X-Received: by 2002:a05:6a00:2382:b0:690:d42e:c310 with SMTP id f2-20020a056a00238200b00690d42ec310mr4641543pfc.16.1696470770140; Wed, 04 Oct 2023 18:52:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696470770; cv=none; d=google.com; s=arc-20160816; b=Z1NRrBd/EcSx+LnPmfGOLoqBZCO0XPTxNIUoj8f1xyD5CfGigYyDYqD0mYxcyne2xl f73d3O3DK6EKBusp08SM3c4dY9sJyu7nJ0KJrTdT2D+d7ZXipSIawEBCJWTUmTFYce7A PX1SfIJFbS11fdZCCyv5J4F5353seMUCLT2IqEaIiKgDYTukxXcILM5nn0UTjuvGN7m6 Xej4wpJdO/cVK6GOxTYfQht00WAD+5rX7+T8ojCZbHTiIpF+H46xgz4DZnTuy3Gmsi3Z OWWSI76WL+AlvmPoQyzTAlykiGyQN8rpDsw/JpcDqE7ChqEgiyB259l1mPNpuEoMelBE eMeg== 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=IUoUGLuwnOy7cZT09rlDrhTF17zxJMPnAlMoGJGPqbw=; fh=goAd4OGBvpmHHiCEziKWqLjYwQvzsjlrt13AgwFDrlk=; b=joe63zglN/749BMwHFz1mZIS1yPnjiuaPPk5un+UckYsYoq8UmA5IJejUGJau2Iies UC4oGTutTnFWNAxfOdlK6Dn6lmiXm3RkEne14AUX6mYdB+Zzm3ICmfkTDNVVK8iYIBql oSAUPO9ZhZmMd2BjZbT+sECGCTJu7miW6Pw5N8Gocq+ncTVXVKBp+hNjd+imp22V2huf 2g7DzzGx6Fuvoga/Mtqig7OZHuMKzScnE0iFQ1g5D3SJxFkFUTcBR4EdW3kOy9L8R7Ra 4ZoWVOiJClq/onpOkgKi3c3HwYxQ6W6HqRmqeUF2rMLz6yKqVqamcd/yLKKi8+7JxQHn J+WA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from howler.vger.email (howler.vger.email. [23.128.96.34]) by mx.google.com with ESMTPS id bt19-20020a056a00439300b0068a85532963si356210pfb.160.2023.10.04.18.52.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 18:52:50 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) client-ip=23.128.96.34; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by howler.vger.email (Postfix) with ESMTP id 2E48C8542270; Wed, 4 Oct 2023 18:52:49 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244383AbjJEBwr (ORCPT + 19 others); Wed, 4 Oct 2023 21:52:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:32926 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244261AbjJEBwp (ORCPT ); Wed, 4 Oct 2023 21:52:45 -0400 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 92F68CE for ; Wed, 4 Oct 2023 18:52:42 -0700 (PDT) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2B2DAC433CC; Thu, 5 Oct 2023 01:52:42 +0000 (UTC) Received: from rostedt by gandalf with local (Exim 4.96) (envelope-from ) id 1qoDYk-005FIy-3B; Wed, 04 Oct 2023 21:53:50 -0400 Message-ID: <20231005015350.799850910@goodmis.org> User-Agent: quilt/0.66 Date: Wed, 04 Oct 2023 21:53:12 -0400 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Mark Rutland , Andrew Morton , Uros Bizjak Subject: [for-next][PATCH 2/7] ring_buffer: Use try_cmpxchg instead of cmpxchg in rb_insert_pages References: <20231005015310.859143353@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE, SPF_PASS autolearn=no 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-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (howler.vger.email [0.0.0.0]); Wed, 04 Oct 2023 18:52:49 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1778878533896534751 X-GMAIL-MSGID: 1778878533896534751 From: Uros Bizjak Use try_cmpxchg instead of cmpxchg (*ptr, old, new) == old in rb_insert_pages. x86 CMPXCHG instruction returns success in ZF flag, so this change saves a compare after cmpxchg (and related move instruction in front of cmpxchg). No functional change intended. Link: https://lore.kernel.org/linux-trace-kernel/20230914163420.12923-1-ubizjak@gmail.com Cc: Steven Rostedt Cc: Masami Hiramatsu Signed-off-by: Uros Bizjak Signed-off-by: Steven Rostedt (Google) --- kernel/trace/ring_buffer.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index 515cafdb18d9..43cc47d7faaf 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c @@ -2056,7 +2056,7 @@ rb_insert_pages(struct ring_buffer_per_cpu *cpu_buffer) retries = 10; success = false; while (retries--) { - struct list_head *head_page, *prev_page, *r; + struct list_head *head_page, *prev_page; struct list_head *last_page, *first_page; struct list_head *head_page_with_bit; struct buffer_page *hpage = rb_set_head_page(cpu_buffer); @@ -2075,9 +2075,9 @@ rb_insert_pages(struct ring_buffer_per_cpu *cpu_buffer) last_page->next = head_page_with_bit; first_page->prev = prev_page; - r = cmpxchg(&prev_page->next, head_page_with_bit, first_page); - - if (r == head_page_with_bit) { + /* caution: head_page_with_bit gets updated on cmpxchg failure */ + if (try_cmpxchg(&prev_page->next, + &head_page_with_bit, first_page)) { /* * yay, we replaced the page pointer to our new list, * now, we just have to update to head page's prev