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 6605FEB64D7 for ; Fri, 23 Jun 2023 11:16:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F08FE8D0002; Fri, 23 Jun 2023 07:16:41 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EB9058D0001; Fri, 23 Jun 2023 07:16:41 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DA8BD8D0002; Fri, 23 Jun 2023 07:16:41 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id CD45C8D0001 for ; Fri, 23 Jun 2023 07:16:41 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 990C6B0BAF for ; Fri, 23 Jun 2023 11:16:41 +0000 (UTC) X-FDA: 80933759802.16.65DB240 Received: from www262.sakura.ne.jp (www262.sakura.ne.jp [202.181.97.72]) by imf29.hostedemail.com (Postfix) with ESMTP id EAC8B12000A for ; Fri, 23 Jun 2023 11:16:38 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=none; dmarc=none; spf=none (imf29.hostedemail.com: domain of penguin-kernel@I-love.SAKURA.ne.jp has no SPF policy when checking 202.181.97.72) smtp.mailfrom=penguin-kernel@I-love.SAKURA.ne.jp ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1687518999; 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; bh=1FGw2oloBaArCWg3YmbWK381nKB0JDinH9mERUfJPu0=; b=PBpPsZyAdNmht01idskwaBTfNuzvd0AOK0ztkUJkPzkkrnaEz3oZBE//Lo4G72n8GH6u/g l0dMlDmEJsd+1R4m9HOWdLy7ZvjTXmH4ykoC+X7HJciIpFLCNg2b8P4CL3fmIR779/Zh9l Ivf5kgS10E/4XJL2V4JBFaVlhEe4CDk= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=none; dmarc=none; spf=none (imf29.hostedemail.com: domain of penguin-kernel@I-love.SAKURA.ne.jp has no SPF policy when checking 202.181.97.72) smtp.mailfrom=penguin-kernel@I-love.SAKURA.ne.jp ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1687518999; a=rsa-sha256; cv=none; b=KuwdwjSptNxmLGpAXWsOjfvY8nWWdGbBz8xlfI3cuTih1Mj3C16pS5L+EDWQoa9Zv+JgjI qB39B0rgvIB5Gwlxt7lIo080YYal0iOYbQtyI/isoqMLTS76DskhBowNr/JZI2scD4M59f pfciQyaTeZV6A23k1CBJVTgnszENU0Q= Received: from fsav311.sakura.ne.jp (fsav311.sakura.ne.jp [153.120.85.142]) by www262.sakura.ne.jp (8.15.2/8.15.2) with ESMTP id 35NBGGw3061127; Fri, 23 Jun 2023 20:16:16 +0900 (JST) (envelope-from penguin-kernel@I-love.SAKURA.ne.jp) Received: from www262.sakura.ne.jp (202.181.97.72) by fsav311.sakura.ne.jp (F-Secure/fsigk_smtp/550/fsav311.sakura.ne.jp); Fri, 23 Jun 2023 20:16:16 +0900 (JST) X-Virus-Status: clean(F-Secure/fsigk_smtp/550/fsav311.sakura.ne.jp) Received: from [192.168.1.6] (M106072142033.v4.enabler.ne.jp [106.72.142.33]) (authenticated bits=0) by www262.sakura.ne.jp (8.15.2/8.15.2) with ESMTPSA id 35NBGFvx061123 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NO); Fri, 23 Jun 2023 20:16:16 +0900 (JST) (envelope-from penguin-kernel@I-love.SAKURA.ne.jp) Message-ID: Date: Fri, 23 Jun 2023 20:16:16 +0900 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: Re: [PATCH] mm/page_alloc: Use write_seqlock_irqsave() instead write_seqlock() + local_irq_save(). Content-Language: en-US To: Petr Mladek , Sebastian Andrzej Siewior Cc: linux-mm@kvack.org, "Luis Claudio R. Goncalves" , Andrew Morton , Mel Gorman , Michal Hocko , Thomas Gleixner References: <20230621143421.BgHjJklo@linutronix.de> <01031ffe-c81f-9cec-76fb-e70d548429cf@I-love.SAKURA.ne.jp> <8b6d3f39-c573-ca2b-957b-8c48c2fa68ad@I-love.SAKURA.ne.jp> <20230623094544.RcLNdg6H@linutronix.de> <20230623101111.7tuAg5p5@linutronix.de> From: Tetsuo Handa In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: EAC8B12000A X-Stat-Signature: mc6m4i3wwfikpgizeokjhzhw8sfhx4s5 X-HE-Tag: 1687518998-603882 X-HE-Meta: U2FsdGVkX1/LEE8h9AA4pQOYpeaXQ8bbbEvLd5/DBKT3k2dbTuFxWe+tvMUa4LDK3wdRSALitdx3XWT3Ux6uGH1O5IRw0aEcnjC5pZUADZSnmf9+zbBt+KFJHuo2bpBdgoYjlcFuIlbUa/Eq4XXDnWlxk6ahT3Ck0mIy2RDm9YXSiCCt9+iik0GJpfJFItqK0U5xKQNwD2dxMxvg+/N3h8nUPsg3Crsr/1EK4IjNVUsUPyyYvcydSpq+dalG86foVjzFpn/uzdfQI4QtYsxjgoVnaXdsPaw6g9IqtTWmg5ez1h/XwAFGse7Im+H7MrWPFxtJlAnJ23vKfKl6sPGtErudVNAUPK+c454yBFjnqh/Zum+eaWeL+Z8ynvpQyusv2RSLFJNMCKprrHBVysIhbL1qXwiseVje64Scs5akDQI0xmNz3gOAZMl4cUVJvFvYao/a6RzhHukc3wgyXnc2leZ4zvr6r4QnYTgmXzsy/w/lCcMSZi9UxqY97Hv+u2BNL+YL+ljX/mwUrJDdz/tyT30tpWoCYkPduXx9EmpPTHNXngIoU4m1f1yNtjcUDBfmQh0AZYB454J02K7r3uNrVocnPWwTo5RXdXd/P+Mzt/mM8Dui+NQK202KoOxA7XuIKFHSS00sGnhFhFxi10MdaOZOmFBj1dxrCjS5ha4OzQ74s9lkhSNbUbdS6tstIRzcfrLFwkcxL1LxXytdJkOtsLpcvV6ZLDu9v/xxA0HYw7dcPnph6TfvVDBbXLCf7X0rwvi4GDARWZS06xvQ7XEnKdE5Z6c0RhDvVLl6s/DjJ9XYZvKvtMBBF48I2RVIy20toEZEFtOm1kweIm77LOZtmUjo2oTWHBbQ1kmw1ihsBJoDGnpW7EafBGX2NVD+R8uz3x64jf2ExL9iaXfg4z/wDCn8+8oeZ2wajhRxK+2lBs3nuOzTOaIkCe7ROXgcl5vUvdnyeLWXq2CLXFUesm9 HUEdyxuP P/hPqh0OG2zF3aYFW7JvTIAcTq8UFSfG1RKT7tcIAq0s1vKfSPnMmjvHZbzpy1gtGGknWmwURD9yCj05i3fHr707ho+iKOPChTxolVpGgIHIsq+NcxvMo/e85KFZXAlStKCrGS2Ca6vQfmDhoJYX9oMLHLFufiHoZylHHBQVzr0gg3Z2qGbJkLYYaLgm6o1xpeVLaV5SPxMEcpSHXEUWRzx9wRWnqN6GBozpuDf+B2YGtQ3ejqjG2W6lBcHTz3RuzYSRL 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: On 2023/06/23 19:53, Petr Mladek wrote: > BTW: I see a possible race in the below code. > >> | unsigned __seqprop_spinlock_sequence(const seqcount_spinlock_t *s) >> | { >> | unsigned seq = READ_ONCE(s->seqcount.sequence); >> | >> | if (unlikely(seq & 1)) { >> | spin_lock(s->lock); >> | spin_unlock(s->lock); > > This guarantees the reader waits for the writer. But does this > guarantee that another writer could not bump the sequence > before we read it below? > >> | seq = READ_ONCE(s->seqcount.sequence); > > IMHO, it should be: > > if (unlikely(seq & 1)) { > spin_lock(s->lock); > seq = READ_ONCE(s->seqcount.sequence); > spin_unlock(s->lock); > > IMHO, only this would guarantee that returned seq couldn't be odd. What is wrong with bumping the sequence again? If the returned seq is odd, the caller just retries as needed. For example, __read_seqcount_begin() will retry at while ((__seq = seqprop_sequence(s)) & 1) cpu_relax(); . Lack of data_race() annotation resulting in KCSAN messages might be an unexpected source of printk(). :-)