Received: by 2002:a05:6359:c8b:b0:c7:702f:21d4 with SMTP id go11csp1376537rwb; Fri, 23 Sep 2022 11:44:45 -0700 (PDT) X-Google-Smtp-Source: AMsMyM78xQyNY92tZgXZNS+DuJjsFmGAbytFw22RVvPAJHGMAVS6gaS3u0SmVG5zz5P8zbrH1JGj X-Received: by 2002:a17:90b:1d8a:b0:203:6db:ed6f with SMTP id pf10-20020a17090b1d8a00b0020306dbed6fmr11234039pjb.228.1663958685005; Fri, 23 Sep 2022 11:44:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1663958684; cv=none; d=google.com; s=arc-20160816; b=PbhJ+xCfaH4taoU17NG6CFgzglwUUFXPMrh7ec5zUbL4VTEhrCyX4cdSfZ7dddZnm/ cjD41HYMLwrA6igw7EqV07Xm334qQWUkGcYOeQs8+lAb46NGkHj6+h11xOGlLT1o+up7 hL/sVj+hLnALRfeonrSzxZmai9iA0sY5LM4UVCj+lWOflts/7So/rUsnVfclqMIGtMpj zJK0omKFk1dot1D9E1XuKo3BTKI/mdJwhhUoLkUbgecwADYvZFJ59+pfDw/Yc0BuSpln qsjAODVsWu4kkuBBlcvekRcXsw7/4jhX8EcDkT0m6xaWuY6G8TBYguT/LmIViwF/qUdk Rxlg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=x5diehr+PLPQnahzXFkfrnEatWD+TKm3celsdu2ut0E=; b=iY2mOiEDnv3aQq8KqiWVTMG8zGDR16sxlfYqP1u6iICRKCGlQR9jRZvUMSN/xr/9oC XSYR36FF7SFw5nVnYwcOPKHN2edNpfZNrCDOIt+ihwro21J7Bqs8Fk+dOm7GiwBreqN6 XiLqxWFqt8EABXxiaL4XmHTme9kMRo3WK9zvtnXr+wsHqgv+xdzU+ZSw6deMy0qiFbyI e7HTrs6Imy3iVUmmFjkGL0MLelUgAdMzqYvszSdzpcs7s9PtH/qXVOGWobwx0xdov3Oq OOyfeCAiBssJ7MoKKdZtgkMFWPYUPVVsZti2ONlx8xWyHrZoKda2dn3uAwuatJG64iSH IITw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@zx2c4.com header.s=20210105 header.b=bWL3YQUx; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=zx2c4.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id n6-20020aa79046000000b0053dd073fc8dsi9450488pfo.175.2022.09.23.11.44.33; Fri, 23 Sep 2022 11:44:44 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@zx2c4.com header.s=20210105 header.b=bWL3YQUx; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=zx2c4.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232824AbiIWS3H (ORCPT + 99 others); Fri, 23 Sep 2022 14:29:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49618 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229514AbiIWS3F (ORCPT ); Fri, 23 Sep 2022 14:29:05 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 70193123845 for ; Fri, 23 Sep 2022 11:29:04 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id AD1E061852 for ; Fri, 23 Sep 2022 18:29:03 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 858ACC433C1; Fri, 23 Sep 2022 18:29:02 +0000 (UTC) Authentication-Results: smtp.kernel.org; dkim=pass (1024-bit key) header.d=zx2c4.com header.i=@zx2c4.com header.b="bWL3YQUx" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zx2c4.com; s=20210105; t=1663957740; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=x5diehr+PLPQnahzXFkfrnEatWD+TKm3celsdu2ut0E=; b=bWL3YQUxU+fSPggS2C5pR6oaL/glLUOywHqIswZHJs5QO/cmyQ84G9gtsHPlyV7+6nuc8r RBvixOrH0ElklJJnXuPoakGEyBMLDg54h2fqhIpwwVDzpDEAEYWtUuwIQc2IQZ4CBn9YSS zrSgVXtxXlT0bUREyjzGuj5JtYtmBVo= Received: by mail.zx2c4.com (ZX2C4 Mail Server) with ESMTPSA id 60ee715c (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Fri, 23 Sep 2022 18:29:00 +0000 (UTC) From: "Jason A. Donenfeld" To: linux-kernel@vger.kernel.org Cc: "Jason A. Donenfeld" , Sebastian Andrzej Siewior , Sultan Alsawaf Subject: [PATCH] random: avoid reading two cache lines on irq randomness Date: Fri, 23 Sep 2022 20:28:49 +0200 Message-Id: <20220923182849.4145148-1-Jason@zx2c4.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-6.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_HI,SPF_HELO_NONE,SPF_PASS autolearn=ham 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 In order to avoid reading and dirtying two cache lines on every IRQ, move the work_struct to the bottom of the fast_pool struct. add_interrupt_ randomness() always touches .pool and .count, which are currently split, because .mix pushes everything down. Instead, move .mix to the bottom, so that .pool and .count are always in the first cache line, since the .mix is only accessed when the pool is full. Fixes: 58340f8e952b ("random: defer fast pool mixing to worker") Cc: Sebastian Andrzej Siewior Cc: Sultan Alsawaf Signed-off-by: Jason A. Donenfeld --- drivers/char/random.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/char/random.c b/drivers/char/random.c index 2f370aa248b2..a90d96f4b3bb 100644 --- a/drivers/char/random.c +++ b/drivers/char/random.c @@ -918,10 +918,10 @@ EXPORT_SYMBOL_GPL(unregister_random_vmfork_notifier); #endif struct fast_pool { - struct work_struct mix; unsigned long pool[4]; unsigned long last; unsigned int count; + struct work_struct mix; }; static DEFINE_PER_CPU(struct fast_pool, irq_randomness) = { -- 2.37.3