Received: by 2002:a05:6359:6284:b0:131:369:b2a3 with SMTP id se4csp4824303rwb; Tue, 8 Aug 2023 14:42:26 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGQePqYuvftmh+NaTW47gC6NOZUkD2L3aL9AwLjYs7N7tUNZqQBwhm6Ck3R60ewD/G3pzSG X-Received: by 2002:a19:641a:0:b0:4f8:714e:27a8 with SMTP id y26-20020a19641a000000b004f8714e27a8mr556127lfb.0.1691530946462; Tue, 08 Aug 2023 14:42:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691530946; cv=none; d=google.com; s=arc-20160816; b=sX+EcaY0aOzL/9z25QCpx/RrzjEasgVn7wi15Al4SyjegNW9c0RD3oCSTBiCfM/6On 8bkGefzSX5sdCw6bw+Mu9nh59GROjmVlKNKQmJxkM4xiWYHMLZSr68bupvI4Vj3BIcl8 o/ChyHASFkdhR9N4oAzw3SvCusqHmYSoA99GpJ9FqjjTVv4Yc3SGtSf/cXYZgr0+HFEn GmzkNQ6UnwRsfL/qrTmxHVXn24Je4xLmphULx/oAqyc+YDbRXWwC6RgBhM0Z/SnXH3yc JO3uhmPHsDLTvNFh6IHUdwa5DB/c2fQx3wgMWPyV6Nl2yPoa/8ZUjLtNkGMqoC1vsau2 5WiA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=chf8FUmzD77OYzSkcoByYk3SJOxrgbPfjK0UO5OV0XE=; fh=Zul7mbMJce1Nw5wcCUMzOeLCrDuu2Pt7UbcjJmktg0w=; b=PC0NDL+4UKCbcFlcG3E+f6oTZMwcr6AKn/RNmxQbsC0ry/ESpvF7729KEda2mg/f9G gqaALHAIOgbFjx+pdH1qe6a8ipkusn4w4+B72SHEvr2TE1g+pO9iRw5wd6DcangTlEaq ZTxCVomGKao8Ce32+Rms852E36BeicxUyyE76QiVJM66Gm6GSKt+HI81DVLJ9LBejqOo qfINccPvxyTgGrwQ0wS0DNXlU3gYB5bgskmIh3E7s7vdMrfT95PHUT+47KXiK9VXj+Xk lrps3xQHQF7WKz4SLIQPG1bUhnhS67kQwQOuXOfy5ZYbOOmnnp+UXtJ71xmvEh59kH3q mlGg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@zx2c4.com header.s=20210105 header.b=jowMggc4; 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 g10-20020aa7c58a000000b00521ce86bb68si8256687edq.473.2023.08.08.14.42.01; Tue, 08 Aug 2023 14:42:26 -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=jowMggc4; 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 S231753AbjHHTJr (ORCPT + 99 others); Tue, 8 Aug 2023 15:09:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52532 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234814AbjHHTJU (ORCPT ); Tue, 8 Aug 2023 15:09:20 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 029D32FA31 for ; Tue, 8 Aug 2023 09:31:05 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id D254762456 for ; Tue, 8 Aug 2023 14:05:02 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C8B41C433CA for ; Tue, 8 Aug 2023 14:05:01 +0000 (UTC) Authentication-Results: smtp.kernel.org; dkim=pass (1024-bit key) header.d=zx2c4.com header.i=@zx2c4.com header.b="jowMggc4" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zx2c4.com; s=20210105; t=1691503497; h=from:from: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=chf8FUmzD77OYzSkcoByYk3SJOxrgbPfjK0UO5OV0XE=; b=jowMggc457l0w5P0KjjSAX4WEd2PHPOQ/ugvjwZM4d9jjUo3AgCCdFObT4lYdxZ/fNChGJ Czv1p/IIe8jBX0xX3/KoV5kpXXIwypzkMPHzu93xxbk7gRepmjckmzFC77pbMomHe/S10l jXKYkxyJIOHDLU4zkOlWVy0GBjO5FYI= Received: by mail.zx2c4.com (ZX2C4 Mail Server) with ESMTPSA id 79122d4b (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO) for ; Tue, 8 Aug 2023 14:04:56 +0000 (UTC) Received: by mail-oo1-f51.google.com with SMTP id 006d021491bc7-56d0f4180bbso3821945eaf.1 for ; Tue, 08 Aug 2023 07:04:56 -0700 (PDT) X-Gm-Message-State: AOJu0YxtUbPFq56uDNw4Cg5Gi9DQyByRSv1aDtdpWDDCSAZa6FfRG2iI zAjbKohMdHyQctSbeWEOh3bBmRDEgIfDp0KMG/8= X-Received: by 2002:a05:6358:2611:b0:135:96fa:bff3 with SMTP id l17-20020a056358261100b0013596fabff3mr10294439rwc.4.1691503493824; Tue, 08 Aug 2023 07:04:53 -0700 (PDT) MIME-Version: 1.0 References: <20230808062658.391595-1-jstultz@google.com> <20230808062658.391595-2-jstultz@google.com> <20230808103637.GA212435@hirez.programming.kicks-ass.net> In-Reply-To: <20230808103637.GA212435@hirez.programming.kicks-ass.net> From: "Jason A. Donenfeld" Date: Tue, 8 Aug 2023 16:03:09 +0200 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [RFC][PATCH 1/3] test-ww_mutex: Use prng instead of rng to avoid hangs at bootup To: Peter Zijlstra Cc: John Stultz , LKML , Ingo Molnar , Will Deacon , Waiman Long , Boqun Feng , "Paul E . McKenney" , Joel Fernandes , Li Zhijian , Dietmar Eggemann , kernel-team@android.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=no 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 Hi Peter, John, On Tue, Aug 8, 2023 at 12:36=E2=80=AFPM Peter Zijlstra wrote: > > On Tue, Aug 08, 2023 at 06:26:41AM +0000, John Stultz wrote: > > Booting w/ qemu without kvm, I noticed we'd sometimes seem to get > > stuck in get_random_u32_below(). This seems potentially to be > > entropy exhaustion (with the test module linked statically, it > > runs pretty early in the bootup). > > > > I'm not 100% sure on this, but this patch switches to use the > > prng instead since we don't need true randomness, just mixed up > > orders for testing ww_mutex lock acquisitions. > > > > With this patch, I no longer see hangs in get_random_u32_below() > > > > Feedback would be appreciated! > > Jason, I thought part of the 'recent' random rework was avoiding the > exhaustion problem, could you please give an opinion on the below? Thanks for looping me in. I actually can't reproduce this. I'm using a minimal config and using QEMU without KVM. The RNG doesn't initialize until much later on in the boot process, expectedly, yet get_random_u32_below() does _not_ hang in my trials. And indeed it's designed to never hang, since that would create boot deadlocks. So I'm not sure why you're seeing a hang. It is worth noting that in those early boot test-case scenarios, before the RNG initializes, get_random_u32_below() will be somewhat slower than it normally is, and also slower than prandom_u32_state(). (But only in this early boot scenario edge case; this isn't a general statement about speed.) It's possible that in your QEMU machine, things are slow enough that you're simply noticing the difference. On my system, however, I replaced `get_random_u32_below()` with `static u32 x; return ++x % ceil;` and I didn't see any difference running it under TCG -- it took about 7 seconds either way. So, from my perspective, you shouldn't see any hang. That function never blocks. I'm happy to look more into what's happening on your end though. Maybe share your .config and qemu command line and I'll see if I can repro? Jason