From patchwork Mon Oct 24 11:29:06 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg KH X-Patchwork-Id: 8748 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp429207wru; Mon, 24 Oct 2022 05:38:03 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6gkTmHE76a079Byqjavffc+xuFuYtD++4YD7Zr0n/SoxY3/fOzdYI965mBaYcKf5pbTN5u X-Received: by 2002:a17:90b:3892:b0:20d:4bb5:91fe with SMTP id mu18-20020a17090b389200b0020d4bb591femr39272370pjb.31.1666615083591; Mon, 24 Oct 2022 05:38:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666615083; cv=none; d=google.com; s=arc-20160816; b=aGSonMXi4OpPtYVE4eXYyDEEsSeqOd962CT6wEXFTGW6KP/Y+I1uBa5P9G3wzV3wjx zRVREIHrcvnQgSItZXX1w0QF82ij3+VHaZqW+VL5ufUlnObUz8E04twvU1qCpWqNzpUB 8trnQSLAuKCR+FgtXYm4E5NvXrsvMo45gtQXMFPRgssHU89v6e5wmSxbtnqx3nu8ZjIZ J2UK+zpT0SYKzZZMfzRCkuYgvUklCZkYqq62XQTAbxLochFWCSJBl0e/XngxNFGphtwt o2mCxhic58mw4GpybxMIW7m530fvsiHaISze/FVcxk6A1bdAk5JCXa0hz3OPcU1VTBd1 DLZg== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=WIR2DLtrEX0dj9NkuFSYbj1Dtbakne4q5wM7kqmAms0=; b=jUKxlKYTdpKvJDZ1beDTSL3ke5SJR4MUq0407x3tOAf5JMl8Y2RSa4VeRGJRQ20ClS sdtuWyrlod5TZPt5p50HazSOXjbU8n+3Bu4306yfrHrDkN3Mqj9JATLFND3FCW3FBIFp XuXnfCNYwAdI5chs5ZE49p1F+Rfo8VyDYQbabzWxQAn8bnHkouq/fSFDKbPcyD8canP3 DeswYy374eJEwyEi307R19ONBiKRbjiEJYGjoqZ584LmRJvmeqmSzjeFyYVSIlKJs10z oQP0smqwSixj/We/nx+094dInWTkT75yaLMpx48PWK+vAl5cqx99c5GH2dPGm+RBJ6V/ z2pg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=JYbh09bN; 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=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id v20-20020a170902f0d400b00186a98b58d8si2827165pla.134.2022.10.24.05.37.50; Mon, 24 Oct 2022 05:38:03 -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=@linuxfoundation.org header.s=korg header.b=JYbh09bN; 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=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232911AbiJXM1N (ORCPT + 99 others); Mon, 24 Oct 2022 08:27:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60566 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231238AbiJXM0r (ORCPT ); Mon, 24 Oct 2022 08:26:47 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B328583233; Mon, 24 Oct 2022 05:01: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 ams.source.kernel.org (Postfix) with ESMTPS id 91AE9B81199; Mon, 24 Oct 2022 11:55:43 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E02B7C433C1; Mon, 24 Oct 2022 11:55:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1666612542; bh=HvNQLbDFpQyKb6hj8OG6baMZ1QDProYxanDCjhbgJvM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JYbh09bNAZ7/T/ysJOIMz7/xfGSSAQDtPcLbFN21KshsU2dS62qpUlqoq5X3iZ6Pv u4KPuoCDcN7zHAit47Gz8xg8oLZiU8FgQEYikuW8xsLeFisZhu5u27oRVVqJCNeWzA LQkFm9og4z+o13cD3iyvp76AJkDlnxjE0q1fYyXU= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Sebastian Andrzej Siewior , "Jason A. Donenfeld" Subject: [PATCH 4.19 027/229] random: avoid reading two cache lines on irq randomness Date: Mon, 24 Oct 2022 13:29:06 +0200 Message-Id: <20221024113000.011600600@linuxfoundation.org> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221024112959.085534368@linuxfoundation.org> References: <20221024112959.085534368@linuxfoundation.org> User-Agent: quilt/0.67 MIME-Version: 1.0 X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1747572578201242433?= X-GMAIL-MSGID: =?utf-8?q?1747572578201242433?= From: Jason A. Donenfeld commit 9ee0507e896b45af6d65408c77815800bce30008 upstream. 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 .mix is only accessed when the pool is full. Fixes: 58340f8e952b ("random: defer fast pool mixing to worker") Reviewed-by: Sebastian Andrzej Siewior Signed-off-by: Jason A. Donenfeld Signed-off-by: Greg Kroah-Hartman --- drivers/char/random.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/drivers/char/random.c +++ b/drivers/char/random.c @@ -890,10 +890,10 @@ void __init add_bootloader_randomness(co } 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) = {