Received: by 2002:a05:6358:1087:b0:cb:c9d3:cd90 with SMTP id j7csp1301832rwi; Thu, 13 Oct 2022 11:43:01 -0700 (PDT) X-Google-Smtp-Source: AMsMyM56Xf1JTBRT9WnlKeRnzO0v/RhpKHDEe9dadBLPR400GXNpW1pgb7xGrn19SVu2mv2BBPp1 X-Received: by 2002:a17:90a:72c4:b0:20d:51af:3fc4 with SMTP id l4-20020a17090a72c400b0020d51af3fc4mr13019802pjk.38.1665686580757; Thu, 13 Oct 2022 11:43:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1665686580; cv=none; d=google.com; s=arc-20160816; b=UJHHBG1PhG3SdTpkAOU8Ysc+Mwo39VXess7WAzHVkCah1eXlRb4edaw7OaJRr9IBMV D7RFvFaiwrUUkzhE6/CpPtYEDr+1MPAHfz0XEkC/LEgTbM75Do0a9zot/jT5EmqQiHaE Rl5XlFp65CH+hGgIIF6UM5PyOONCMm05/YWMGdxM50iZbi1MaghgJM0ZLfhbYgi1C6tU Kl30ruBa9jSc3k+76jItVtJZSFG43j7gbhza+WJOTr7Hhw3538ggllAwuDkD9z4o8DB1 OXE778/CoRuqsDeHpFmSy8FrHD6ncwvciSjtCqwxAn5ozX1TVHvgBE7YWIp6JmoSGpsn lNVA== 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=dDzY8ExEBx2kEwtQTNrNd9mNfWzTRM29uE/nB9Ko0XdXHYAKwEht65MJ89M9Eq22ot A6M0i0wB6ZVVXCf817JsvmNmFhso2AYDqAWGe1LrUnhFONPbpP5u8wmfsZ8AS3mUlgtm 8BzoFpxDQEXocMAycLBs0yCjFBHR5+ai8LR0J19a36q7Pt2OgCSyBqsB69OAtYxJlEa7 5fp8sIAHl61vyTUG9Fu4pu6AOi+bGe76Nm0tRzHFxLkqMDX/Fz9bJGYsaCp7M+O8zO/e HwumZX/84F1dY/ojPQhdVnKFbsL63zIdn822F9Fqz7CEnbDoeS1ozOUbA//1ssXS8NO9 73cQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=LYpzQvrH; 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 Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id lb6-20020a17090b4a4600b0020d9f17b911si4231279pjb.99.2022.10.13.11.42.49; Thu, 13 Oct 2022 11:43:00 -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=LYpzQvrH; 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 S229906AbiJMRyc (ORCPT + 99 others); Thu, 13 Oct 2022 13:54:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54294 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229910AbiJMRxx (ORCPT ); Thu, 13 Oct 2022 13:53:53 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2FBDD1578A5; Thu, 13 Oct 2022 10:53:37 -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 B8364B8202A; Thu, 13 Oct 2022 17:53:34 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 18306C433D6; Thu, 13 Oct 2022 17:53:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1665683613; bh=HvNQLbDFpQyKb6hj8OG6baMZ1QDProYxanDCjhbgJvM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LYpzQvrHqKKswL1ykGZbffQ/vLIZRRRQrBwgzn52fw0E8sqzGWDLPwQinKYo7eRNO YBiMMUf4rNTYit62e7Alrv91POQOq4UIlYd/ItUHhQSsrT4m+JcwCMXmRYgIKPdgRV FDGiLBW2NpuGhGOpHwGJft9Z610RsvezVxS+P86M= 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 5.4 28/38] random: avoid reading two cache lines on irq randomness Date: Thu, 13 Oct 2022 19:52:29 +0200 Message-Id: <20221013175145.189973572@linuxfoundation.org> X-Mailer: git-send-email 2.38.0 In-Reply-To: <20221013175144.245431424@linuxfoundation.org> References: <20221013175144.245431424@linuxfoundation.org> User-Agent: quilt/0.67 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-7.1 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 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) = {