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 1DAB6C4332F for ; Tue, 1 Mar 2022 11:34:48 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 680708D0002; Tue, 1 Mar 2022 06:34:48 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 62F728D0001; Tue, 1 Mar 2022 06:34:48 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 51E2B8D0002; Tue, 1 Mar 2022 06:34:48 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (relay.hostedemail.com [64.99.140.26]) by kanga.kvack.org (Postfix) with ESMTP id 46C968D0001 for ; Tue, 1 Mar 2022 06:34:48 -0500 (EST) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 0399D240DC for ; Tue, 1 Mar 2022 11:34:47 +0000 (UTC) X-FDA: 79195610256.12.878EF93 Received: from mail-pj1-f52.google.com (mail-pj1-f52.google.com [209.85.216.52]) by imf10.hostedemail.com (Postfix) with ESMTP id 92A57C0007 for ; Tue, 1 Mar 2022 11:34:47 +0000 (UTC) Received: by mail-pj1-f52.google.com with SMTP id g7-20020a17090a708700b001bb78857ccdso1801292pjk.1 for ; Tue, 01 Mar 2022 03:34:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=aWgEFJTpYXNiaEJiWv3F+tbzx+IqWWKw7jaIBciD8Os=; b=aZenmRcKS+72f0iaWCAWfTCKuiegNfIDv/B5+b8zu6mriIGbqlEHrnVmRXLkUAdP4l 6T5E3AdPtPWAJNoOBlkx3DvA4q5DYk0QSwO7+CfXjMZjvniJwdCzPgTHyv8b4EgdvsS5 dBnR+gohco3QQCLx+TycKAvezaGxweKGMdggmunuSpk/sIILKbMPTwLL2+h9AFvQ9q3V 35D+o1DI14QvOktkzQLGmkYY+pBNLYBlxjKKNna2/K4JuF9BHKndbYva24v0ZpKUUGD2 s3rzi8WF8ONdK7QR5htLoJoWzhuYNrM4+85rnirf3eNnlodVZJJLp1Oxp1ABVEG/LV+/ xfmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=aWgEFJTpYXNiaEJiWv3F+tbzx+IqWWKw7jaIBciD8Os=; b=5xg4t8H1eCDMmavy3aM4Y9gL6P/HxhrJdCVsdZjcDw+JvkDOSN7BriuRXrM/Tu5J2J B+A0JDb0LVQMCRK6moSKk+FVBy21dBTevqET3vVjkZt4O0eCLadMeK4xN07MPP2rt2rb pmH031Dk55NAu+IhZzXapa3yfzY7senannLa/FuiQRfqPw3Iu3foVCJvrU9+Hb264FGQ 6ioLriXK8g/3NKPxAK1mWlRQa2S34DJ52jLDIGsqECXZnMEy3JsugSBiYPzov7z1qtCB 8AYI0f4UPBvt8Ki+r0d07B/Svr3UzCJwHrS9iBTN9m6Tb088DRKg33C7UaRphrmim7xY 3Wrg== X-Gm-Message-State: AOAM5320MHhTT4zmO5X6ygVginu/LMvFMtv8kOkD8VNjLMLaD/diiBdk ltooDxp2psWfgEEe2OyLdhU= X-Google-Smtp-Source: ABdhPJwXbt6uatXc9SN0Qdbkjvc/d0cGc37tlZ9ZEuA4/UQXUJQLcM5LqrZabJXlP3EDSH/mJMubYg== X-Received: by 2002:a17:903:120e:b0:151:71e4:dadf with SMTP id l14-20020a170903120e00b0015171e4dadfmr6536841plh.48.1646134486464; Tue, 01 Mar 2022 03:34:46 -0800 (PST) Received: from ubuntu.huawei.com ([119.3.119.18]) by smtp.googlemail.com with ESMTPSA id d4-20020a17090a8d8400b001bc386dc44bsm1963828pjo.23.2022.03.01.03.34.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Mar 2022 03:34:45 -0800 (PST) From: Xiaomeng Tong To: gregkh@linuxfoundation.org Cc: arnd@arndb.de, jakobkoschel@gmail.com, jannh@google.com, keescook@chromium.org, linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, netdev@vger.kernel.org, torvalds@linux-foundation.org, xiam0nd.tong@gmail.com Subject: Re: [PATCH 3/6] kernel: remove iterator use outside the loop Date: Tue, 1 Mar 2022 19:34:36 +0800 Message-Id: <20220301113436.5513-1-xiam0nd.tong@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: References: X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 92A57C0007 X-Rspam-User: Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=aZenmRcK; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf10.hostedemail.com: domain of xiam0nd.tong@gmail.com designates 209.85.216.52 as permitted sender) smtp.mailfrom=xiam0nd.tong@gmail.com X-Stat-Signature: f1wrr75zf457qeyok47fmkzhkekzzz37 X-HE-Tag: 1646134487-606135 X-Bogosity: Ham, tests=bogofilter, spamicity=0.055358, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Tue, 1 Mar 2022 11:41:34 +0100, greg k-h wrote: > On Tue, Mar 01, 2022 at 03:58:36PM +0800, Xiaomeng Tong wrote: > > Demonstrations for: > > - list_for_each_entry_inside > > - list_for_each_entry_continue_inside > > - list_for_each_entry_safe_continue_inside > > This changelog does not make much sense at all. Why are you making > these changes and how are we to review them? Same for the others in > this series. > > confused, I'm sorry for have created the confusion. I made this patch to remove the use of iterator (in this patch is "ext", "cur", "aux", "q") outside the list_for_each_entry* loop, using the new *_inside macros instead which are introduced in PATCH v2, and to prove the effectiveness of the new macros. The detail for create_mem_extents patch: 1. remove the iterator use outside the loop: - struct mem_extent *ext, *cur, *aux; 2. declare a ptr outside the loop and set NULL: + struct mem_extent *me = NULL; 3. repace list_for_each_entry with list_for_each_entry_inside, and pass a new argument (struct mem_extent) as the struct type. + list_for_each_entry_inside(ext, struct mem_extent, list, hook) 4. when we hit the break in list_for_each_entry, record the found iterator for lately use: + if (zone_start <= ext->end) { + me = ext; break; + } 5. when we miss the break, the "me" is NULL and can be used to determine if we already found the "ext". And replace every "ext" use after the loop with "me". - if (&ext->hook == list || zone_end < ext->start) { + if (!me || zone_end < me->start) { 6. repace list_for_each_entry_safe_continue with list_for_each_entry_safe_continue_inside, and pass a new argument (me) as the iterator to start/continue with. - list_for_each_entry_safe_continue(cur, aux, list, hook) { + list_for_each_entry_safe_continue_inside(cur, aux, me, list, hook) { Best regards, -- Xiaomeng Tong