From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8D053C77B75 for ; Tue, 16 May 2023 00:46:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0BF52280002; Mon, 15 May 2023 20:46:33 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 047A6900002; Mon, 15 May 2023 20:46:32 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E0387280002; Mon, 15 May 2023 20:46:32 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id D17E8900002 for ; Mon, 15 May 2023 20:46:32 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id A420B813CF for ; Tue, 16 May 2023 00:46:32 +0000 (UTC) X-FDA: 80794277424.21.7F397D4 Received: from mail-pf1-f169.google.com (mail-pf1-f169.google.com [209.85.210.169]) by imf03.hostedemail.com (Postfix) with ESMTP id CD43F20005 for ; Tue, 16 May 2023 00:46:30 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=gMu50Zws; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf03.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.210.169 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684197990; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=SDi9QiH87Cp3PZCo0IhMsN8Lc2HnE+P0EXXDhwfZN0c=; b=qTDO9Myv6+NwzY76iheMgiiRVnE7NeQ2UaaJyYnno+spBebDt9+nVV9GCAbHW4PTq5hz82 rtkmnOVjBF/xMYvn5au/oUTxAZxdeBm0YN/fpro5O1UcLZNYs5wJRiSMDswHUJyof/WZCS E94FTdyBLNerhIh2+chBDr+3t42IjzY= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=gMu50Zws; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf03.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.210.169 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684197990; a=rsa-sha256; cv=none; b=L642IYyj8P2nHuQkAsPq15xjrwVO7zX6rGCMZsvHd1fEvVTnlS0INOiZmuUezXXnzTyXXM kfOUGuJIcbbP11qLqf15CPhyJSlm0ouXu3NhnKCkBkgHaA3o/1GceVimKaVC0LWTQfBlMz wef43ttPp4GYCnSrQhdbhS2JnyZdKWc= Received: by mail-pf1-f169.google.com with SMTP id d2e1a72fcca58-6439bbc93b6so9512312b3a.1 for ; Mon, 15 May 2023 17:46:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1684197989; x=1686789989; h=content-transfer-encoding:in-reply-to:from:cc:references:to:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=SDi9QiH87Cp3PZCo0IhMsN8Lc2HnE+P0EXXDhwfZN0c=; b=gMu50Zwsoi8EzEHaZxngzpik/gB9iLHwjS8tqvV5YCmtn1ZyBl4/M9lYcorbZ3dARm TAVThDJelNk8PVeB6mDftPyOzlMM3fvm3tcm4zVS+o6fGy4ViDQ31HENRCK0SEEYDFiZ YmiciDZyJi+oZH2BTuJM030ra7IQE1yz8nGcaVJmGFI2AQ8hd8LDTil0NNuAFXjhMTL+ ALNHma6I3Cj94KE9UCFzPfNAzfw5IJOrpFRjFuTCsn0zt+IW46ndr/uX9r0RDvkitoGI qk3pPfAl1Bd59TP7mpgFw5zJWNt3JASIEreb427prVVQ7RoSGvPowWujg5FHevREQ2tR L3jA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684197989; x=1686789989; h=content-transfer-encoding:in-reply-to:from:cc:references:to:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=SDi9QiH87Cp3PZCo0IhMsN8Lc2HnE+P0EXXDhwfZN0c=; b=eIEm1BmFRK0WuC5RNx4+sCkfEbU3ly8iIhQovTY5YZcIwxvo+qIjcaqKbMHAZjJv44 iGGOLCh4G0vxSwpEM/1WplKehozcIFvJnhLKhjX9opuq8kPy6O62nWBXfPvrbmEL7kn/ N734be0Z3x0UQuuRQYtxNb44dk5Qw9G+DgVWts+ceSStlA72u1+FIP9XhoBRXYEbpjo7 M7p07eY0c8pht+0k+dgnuYpNxTWDCaPA3LT5T4N0ADC5SqeoYnMmdYabHwY6ar+hshEy 5VxwoyRA//U5nlEd7xyVe5eSvrINmAURFXb+BBMqUax7cvHpGbIkm4ZHdH1zX7HAXzTg BuIw== X-Gm-Message-State: AC+VfDwxIhlvE1pcDX86OJx2e5StKv7cQqfSTMdsTu7gY1oAlsyo16rD giMb+kY6u96/PviUcoT4Gc2Qaw== X-Google-Smtp-Source: ACHHUZ5FMGE/25OnGZtMdcIC2G/2MrggSWbZvRMQRCWqYWZ65/rE2QTrrfWw9IK1WAEn4Dt8TUGGRg== X-Received: by 2002:a05:6a00:1503:b0:643:96e:666b with SMTP id q3-20020a056a00150300b00643096e666bmr48701812pfu.34.1684197989589; Mon, 15 May 2023 17:46:29 -0700 (PDT) Received: from [10.200.9.178] ([139.177.225.227]) by smtp.gmail.com with ESMTPSA id a5-20020aa780c5000000b006439bc7d791sm12343787pfn.57.2023.05.15.17.46.27 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 15 May 2023 17:46:29 -0700 (PDT) Message-ID: <830328dd-ddb6-bdc5-2d74-35b5212cc569@bytedance.com> Date: Tue, 16 May 2023 08:46:24 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.10.1 Subject: Re: [PATCH 06/10] maple_tree: Wrap the replace operation with an inline function. To: "Liam R. Howlett" References: <20230515131757.60035-1-zhangpeng.00@bytedance.com> <20230515131757.60035-7-zhangpeng.00@bytedance.com> <20230515170722.6eqyckjaggw5wijq@revolver> Cc: Peng Zhang , akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, maple-tree@lists.infradead.org From: Peng Zhang In-Reply-To: <20230515170722.6eqyckjaggw5wijq@revolver> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Stat-Signature: qfmik78uicmi4h64dmw1jn1qewbgpu6q X-Rspam-User: X-Rspamd-Queue-Id: CD43F20005 X-Rspamd-Server: rspam07 X-HE-Tag: 1684197990-401004 X-HE-Meta: U2FsdGVkX1+hsCfqkZpEAR1O8QunDaf9Z+NSQwvPidE/W1fXzju39FAcEisK/0SqBYQGFFZTYA6X0ZOMjHCxuF1+iKbmjbytcijm8WKjkmwTProdZuFVCIFZeJUQ5o1vCoPiw2weHrjpydEbUosFxngn2/Qqw0dLMiEPMpvaxIGdE8/qEUxxuHYXxCQOjKRT1Idimtz/LC3JaLoBze/0wiBnxekhkYH0S3OcmmwC5gGvecttv932ObOd3FhAlqND4VFO2XnSXM/JB/zhgi2EoHPWbEq/zUtOJX0KTRnuxCgKHf6xK8tI80d/pWgUWw3DXoeReF661YjkR8yELU+HSofXFCyntdgwfzQonqYd/s7DXEhsI2qw3OSE/Tk8aWEsYzasDQ3IeinTBUKh1HJP2Ow1vVGpVLeSOuYzYUErP0FGdYblPbs+xM0FFqbKdXg50wFk0baEYYuqYBSfqHSZ5vs4CNdNh/n1/Ca5K0cTcIRSWzBE/Cj8Kan+tHBsaZcaN23YhJWNoN3inXP3+21IWa5Ntmux1IJND32e2/Pg5lZw6a4MpK7IW2MnJd0LF/0xzIZcubXh6ESPRWK3UCQlKhPMgpVQxVw8xgOiipHwtxY/55qAhh3Wiw9Maexg4k0zgOFdTH6tGnYYxbT4aGSALjxNCgVgeM4ktlQV+cTV2JSemR/36mGUWZ5Hcm9TeB3RiOXZYW+aHbSt+IL+e8sWcucyORQmrXsiYEjd4d23KmmAQIWupY3FqnbN6yvgq6+n540GVAyncRVsWG1Ho6VnWZRGrW7TXIJUXeHQgfBupo/gKVj1fyYtURcXriQGDUvNHrMeV6bvlPJDYid6pTLixpMQjXN88JA0IuRVavtcRm7aXZGrTg4276ZjFNgu5RWKNY6A/RHHF1S8sq4qWXMuiHBiEVwB38h4bXmRYduWtlteydod9fpzy1Di+jJCebCnswnM6DGb1DGqA/UkSLI 1+K8524K Zx0w41q9/bcxEGcb9KeX/hJ27RYbXXNUV0tuFjMAj4yGMHkrMI9PSZCTia+70rhdDP/VlMOy6We5GGhywwgfxNcn/z7IGvp/E8f2nPIAZ5yWG+TyQP0nab5qITvJifCBHUz+ig9OzRp68UHvGtDD7kvVxUfLo3htg3eOcJ6U7ZTfO1S6DJ8AsEA8cM3jlBHfQsqDR1LIGsAoHexTW/favt/0aUf+qDJH4QrPMcS2vg1fqyDlGIjMQPDTdgp8IKx7F8vPI4VPFDFGLgKgor7T9j58xh02182Y9AO2U+f/uPdo6lAW9bBu2JFYpa+fYOl0qebn7gK3qSZztj4GfTSPEDf8pQzDejSVYfvi8PvDdZ+Yn0g1lmUr/ZjH8Y5Sg/3Nyfqou+E+hqF/XBVyemHPQw3jN3YBIkvKfykeGnpJEBkJ5imE00YK/BjaBTmEW5y2ffC3hooq7DgX0a94JvAIKA5qr1Q== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: 在 2023/5/16 01:07, Liam R. Howlett 写道: > * Peng Zhang [230515 09:18]: >> To make mas_wr_modify() cleaner, wrap the replace operation with an >> inline function. > > mas_wr_modify() is already pretty small. Is there any reason you want > this in its own function besides it looking cleaner? I just want to make the four fast paths in mas_wr_modify() look uniform without any functional effect. > >> >> Signed-off-by: Peng Zhang >> --- >> lib/maple_tree.c | 21 +++++++++++++++------ >> 1 file changed, 15 insertions(+), 6 deletions(-) >> >> diff --git a/lib/maple_tree.c b/lib/maple_tree.c >> index 4c649d75a4923..ce695adc670ec 100644 >> --- a/lib/maple_tree.c >> +++ b/lib/maple_tree.c >> @@ -4288,6 +4288,19 @@ static inline void mas_wr_extend_null(struct ma_wr_state *wr_mas) >> } >> } >> >> +static inline bool mas_wr_replace(struct ma_wr_state *wr_mas) >> +{ >> + struct ma_state *mas = wr_mas->mas; >> + >> + if (wr_mas->r_min == mas->index && wr_mas->r_max == mas->last) { >> + rcu_assign_pointer(wr_mas->slots[mas->offset], wr_mas->entry); >> + if (!!wr_mas->entry ^ !!wr_mas->content) >> + mas_update_gap(mas); >> + return true; >> + } >> + return false; >> +} >> + >> static inline bool mas_wr_append(struct ma_wr_state *wr_mas) >> { >> unsigned char end = wr_mas->node_end; >> @@ -4347,13 +4360,9 @@ static inline void mas_wr_modify(struct ma_wr_state *wr_mas) >> unsigned char node_size; >> struct ma_state *mas = wr_mas->mas; >> >> - /* Direct replacement */ >> - if (wr_mas->r_min == mas->index && wr_mas->r_max == mas->last) { >> - rcu_assign_pointer(wr_mas->slots[mas->offset], wr_mas->entry); >> - if (!!wr_mas->entry ^ !!wr_mas->content) >> - mas_update_gap(mas); >> + /* Attempt to direct replace */ >> + if (mas_wr_replace(wr_mas)) >> return; >> - } >> >> /* Attempt to append */ >> node_slots = mt_slots[wr_mas->type]; >> -- >> 2.20.1 >>