From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by mail19.linbit.com (LINBIT Mail Daemon) with ESMTP id 22EE24206CF for ; Thu, 6 Oct 2022 14:42:16 +0200 (CEST) Date: Thu, 6 Oct 2022 06:33:15 -0600 From: "Jason A. Donenfeld" To: Jan Kara Message-ID: References: <20221005214844.2699-1-Jason@zx2c4.com> <20221005214844.2699-4-Jason@zx2c4.com> <20221006084331.4bdktc2zlvbaszym@quack3> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20221006084331.4bdktc2zlvbaszym@quack3> Cc: Andrew Lunn , "Darrick J . Wong" , linux-block@vger.kernel.org, Marcelo Ricardo Leitner , dri-devel@lists.freedesktop.org, Andrii Nakryiko , Hans Verkuil , linux-sctp@vger.kernel.org, "Md . Haris Iqbal" , Miquel Raynal , Yehezkel Bernat , Christoph Hellwig , Andy Gospodarek , Sergey Matyukevich , Rohit Maheshwari , Michael Ellerman , Christophe Leroy , Jozsef Kadlecsik , Nilesh Javali , Jean-Paul Roubelat , Dan Williams , Dick Kennedy , Jay Vosburgh , Potnuri Bharat Teja , Vinay Kumar Yadav , Arend van Spriel , Nicholas Piggin , Igor Mitsyanko , Andy Lutomirski , linux-hams@vger.kernel.org, Thomas Gleixner , Trond Myklebust , "Martin K . Petersen" , Greg Kroah-Hartman , linux-usb@vger.kernel.org, Michael Chan , linux-kernel@vger.kernel.org, Varun Prakash , Martin KaFai Lau , David Ahern , Chuck Lever , netfilter-devel@vger.kernel.org, linux-crypto@vger.kernel.org, Jiri Olsa , Jan Kara , linux-fsdevel@vger.kernel.org, Andrew Morton , Claudiu Beznea , Sharvari Harisangam , linux-fbdev@vger.kernel.org, linux-doc@vger.kernel.org, Vignesh Raghavendra , linux-wireless@vger.kernel.org, Dave Hansen , Song Liu , Eric Dumazet , target-devel@vger.kernel.org, John Stultz , Stanislav Fomichev , Gregory Greenman , drbd-dev@lists.linbit.com, dev@openvswitch.org, Leon Romanovsky , Helge Deller , Hugh Dickins , James Smart , Anil S Keshavamurthy , Pravin B Shelar , Julian Anastasov , coreteam@netfilter.org, Veaceslav Falico , Yonghong Song , Namjae Jeon , linux-media@vger.kernel.org, Ganapathi Bhat , linux-actions@lists.infradead.org, Simon Horman , Jaegeuk Kim , Mika Westerberg , Lars Ellenberg , OGAWA Hirofumi , Hao Luo , Theodore Ts'o , Stephen Boyd , Jonathan Corbet , Florian Westphal , "David S . Miller" , Jon Maloy , Anna Schumaker , Jeff Layton , Haoyue Xu , Heiner Kallweit , Ulf Hansson , Rasmus Villemoes , linux-nvme@lists.infradead.org, Michal Januszewski , linux-mtd@lists.infradead.org, kasan-dev@googlegroups.com, Cong Wang , Thomas Sailer , Ajay Singh , Andy Shevchenko , Sagi Grimberg , Daniel Borkmann , Dennis Dalessandro , linux-rdma@vger.kernel.org, lvs-devel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, "Naveen N . Rao" , Ilya Dryomov , Paolo Abeni , Pablo Neira Ayuso , Marco Elver , Kees Cook , Yury Norov , "James E . J . Bottomley" , Hante Meuleman , Alexandre Torgue , Borislav Petkov , Keith Busch , ceph-devel@vger.kernel.org, Mauro Carvalho Chehab , Franky Lin , linux-nfs@vger.kernel.org, linux-ext4@vger.kernel.org, Wenpeng Liang , Neil Horman , Xinming Hu , linux-mmc@vger.kernel.org, SHA-cyfmac-dev-list@infineon.com, linux-xfs@vger.kernel.org, Ying Xue , Manish Rangankar , Andreas =?utf-8?Q?F=C3=A4rber?= , Toke =?utf-8?Q?H=C3=B8iland-J=C3=B8rgensen?= , linux-stm32@st-md-mailman.stormreply.com, Peter Zijlstra , Ayush Sawal , KP Singh , Amitkumar Karwar , linux-mm@kvack.org, Andreas Dilger , Akinobu Mita , "H . Peter Anvin" , Andreas Noever , Jiri Pirko , linux-f2fs-devel@lists.sourceforge.net, Jack Wang , Steffen Klassert , rds-devel@oss.oracle.com, Herbert Xu , linux-scsi@vger.kernel.org, dccp@vger.kernel.org, Richard Weinberger , Russell King , Jason Gunthorpe , Ingo Molnar , Jakub Kicinski , Masami Hiramatsu , John Fastabend , Maxime Coquelin , Manivannan Sadhasivam , Michael Jamet , Kalle Valo , Santosh Shilimkar , Jamal Hadi Salim , linux-raid@vger.kernel.org, Thomas Graf , Hannes Reinecke , Xiubo Li , Dmitry Vyukov , Jens Axboe , cake@lists.bufferbloat.net, brcm80211-dev-list.pdl@broadcom.com, Yishai Hadas , Hideaki YOSHIFUJI , netdev@vger.kernel.org, Vlad Yasevich , Philipp Reisner , Stephen Hemminger , Vinod Koul , tipc-discussion@lists.sourceforge.net, dmaengine@vger.kernel.org, Johannes Berg , Sungjong Seo , linuxppc-dev@lists.ozlabs.org Subject: Re: [Drbd-dev] [f2fs-dev] [PATCH v1 3/5] treewide: use get_random_u32() when possible List-Id: "*Coordination* of development, patches, contributions -- *Questions* \(even to developers\) go to drbd-user, please." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On Thu, Oct 06, 2022 at 10:43:31AM +0200, Jan Kara wrote: > The code here is effectively doing the > > parent_group = prandom_u32_max(ngroups); > > Similarly here we can use prandom_u32_max(ngroups) like: > > if (qstr) { > ... > parent_group = hinfo.hash % ngroups; > } else > parent_group = prandom_u32_max(ngroups); Nice catch. I'll move these to patch #1. > > diff --git a/fs/ext4/mmp.c b/fs/ext4/mmp.c > > index 9af68a7ecdcf..588cb09c5291 100644 > > --- a/fs/ext4/mmp.c > > +++ b/fs/ext4/mmp.c > > @@ -265,7 +265,7 @@ static unsigned int mmp_new_seq(void) > > u32 new_seq; > > > > do { > > - new_seq = prandom_u32(); > > + new_seq = get_random_u32(); > > } while (new_seq > EXT4_MMP_SEQ_MAX); > > OK, here we again effectively implement prandom_u32_max(EXT4_MMP_SEQ_MAX + 1). > Just presumably we didn't want to use modulo here because EXT4_MMP_SEQ_MAX > is rather big and so the resulting 'new_seq' would be seriously > non-uniform. I'm not handling this during this patch set, but if in the course of review we find enough places that want actually uniformly bounded integers, I'll implement efficient rejection sampling to clean up these cases, with something faster and general, and add a new function for it. So far this is the first case to come up, but we'll probably eventually find others. So I'll make note of this. Jason