Received: by 2002:a05:6358:9144:b0:117:f937:c515 with SMTP id r4csp9713707rwr; Thu, 11 May 2023 20:39:31 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5vaT1cwfYbLOTHh53QmDrjsA8rCwosAG6C3fTTOVXVJo4w/4GEVY0B9Da31Jo3lj0O4arS X-Received: by 2002:a17:90a:458e:b0:24e:277a:c031 with SMTP id v14-20020a17090a458e00b0024e277ac031mr23536765pjg.28.1683862771474; Thu, 11 May 2023 20:39:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1683862771; cv=none; d=google.com; s=arc-20160816; b=ZOQuNG64fOJdq2MfX0hP66kjmENspxwC7rCKdjv/UrG7t4Vj/O+xQMOBsyy4Qe2YC8 TpqCDzUsVAsyEcR3brTVSFq4QDa/r85QO6XD04Zwresb5CtvQjwQQzPae2gm97Np79Cp pEQx1LZKQz2yxm452OgU/40hytM4N18rH1O1VBNct3Jjm9kWnHEF8svdamN2xTKvtPaj g4D/ucmC8L7K7MLpcrPfQGxUNC6+8AOD0aER/5IULZBmVWyoKfR034ApeVpo4BYtXKHI vE3kH+nq3xhfXbvmrc4mWEluUo7xgeGc/kAzKG0c2zQElvN5OWT1B5V14Xy3QlSoCde1 FI+A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:mime-version :dkim-signature; bh=ks2FM1BqalvHu6n1UvEhUcRj1dcALdM4DvRNBvFf6Tk=; b=duSxmeq7l5qBE/08Ho5AfeGmNnRQZa8Ouykm0Y17IHuZ3fVTMLHCG5Hzt6s3kJPg8B R706pA/m8iBUZDDIsVQbypzP5iz9ofiMdQEFzgTdqSLhcncQ/FLWiTBJLCwBk+iasX0P GWvPkHem6Opaok77zn3UnzEkQqqzquh0c2p9XMWw6pITouf0o5JDPyEfimBvwEiC5Q9w aBpd8+s/cTDnC4Y73InGvLsPqPkJwWBQI0UxPrIkxyTgu9Rp0pYT6h99xWItwmNYNxwT 8huJQRC56ktKAoyIXhWvJFtcUyF+FKkgoemARyInAhlka9mgRHBEOt4CDBkSd8R14ZyK Nh2Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=N0YskMbC; 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=kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id i69-20020a639d48000000b00524d4b572dfsi8125243pgd.275.2023.05.11.20.39.17; Thu, 11 May 2023 20:39:31 -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=@kernel.org header.s=k20201202 header.b=N0YskMbC; 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=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239707AbjELDZz (ORCPT + 99 others); Thu, 11 May 2023 23:25:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51994 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239158AbjELDZx (ORCPT ); Thu, 11 May 2023 23:25:53 -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 ABFE51BC9; Thu, 11 May 2023 20:25:51 -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 3608264DA2; Fri, 12 May 2023 03:25:51 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 95252C433D2; Fri, 12 May 2023 03:25:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1683861950; bh=cTBnLy3eQku5I3kq4VRmAiy3V6kmgt0B+3aiC8bEzrs=; h=From:Date:Subject:To:Cc:From; b=N0YskMbCr/s51e6Run2XBWc60UFbGTLquAPlTV1KT+TKezFxBUYwV+K1noDlWjukv JjzxSGFF94c2t0IcYM0YPyu8cZYyF+AHNd5c7CBpSgemiJI/Kpqz9qH6WFnuzR4v2K dh3Dopyxmyh4VsfExbTlSVCBGzSWtlVBf91NYJAO1d4j+rOT3tr4HkRpTBd1dEPPHT ie6qoKQ6llzGrGtCH2dmNt6pQjTmYwTFWbWkg8486WtB3MPtk+Fzwug1FTzPF1bk3W JTIUepOMDsFSdjkPK2E2WDOk1z5BtcaBN61ni/7t6MfRZpzpOLzdHrgQLobe0vowym DcvMQWndQ6MGA== Received: by mail-oi1-f170.google.com with SMTP id 5614622812f47-394690088acso350527b6e.0; Thu, 11 May 2023 20:25:50 -0700 (PDT) X-Gm-Message-State: AC+VfDy2kP0SjKDWGY89dAiND3ht0q8a/caEn9cRq0lHZzh7wIKY11UY PPL6M2JnY5cxMlh7WMLC63wrk6j5xTlVG1rd51g= X-Received: by 2002:a05:6808:23c2:b0:394:65f4:f146 with SMTP id bq2-20020a05680823c200b0039465f4f146mr1762400oib.5.1683861949904; Thu, 11 May 2023 20:25:49 -0700 (PDT) MIME-Version: 1.0 From: Masahiro Yamada Date: Fri, 12 May 2023 12:25:13 +0900 X-Gmail-Original-Message-ID: Message-ID: Subject: [RFC] [kbuild test robot] random-order parallel building To: kernel test robot Cc: Linux Kbuild mailing list , Linux Kernel Mailing List Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED 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 Hello, maintainers of the kbuild test robot. I have a proposal for the 0day tests. GNU Make traditionally processes the dependency from left to right. For example, if you have dependency like this: all: foo bar baz GNU Make builds foo, bar, baz, in this order. Some projects that are not capable of parallel builds rely on that behavior implicitly. Kbuild, however, is intended to work well in parallel. (As the maintainer, I really care about it.) From time to time, people add "just worked for me" code, but apparently that lacks proper dependency. Sometimes it requires an expensive CPU to reproduce parallel build issues. For example, see this report, https://lkml.org/lkml/2016/11/30/587 The report says 'make -j112' reproduces the broken parallel build. Most people do not have such a build machine that comes with 112 cores. It is difficult to reproduce it (or even notice it). (Some time later, it was root-caused by 07a422bb213a) GNU Make 4.4 got this option. --shuffle[={SEED|random|reverse|none}] Perform shuffle of prerequisites and goals. 'make --shuffle=reverse' will build in reverse order. In the example above, baz, bar, foo. 'make --shuffle' will randomize the build order. If there exists a missing dependency among foo, bar, baz, it will fail to build. We already perform the randconfig daily basis. So, random-order parallel building is a similar idea. Perhaps, it makes sense to add the "--shuffle=SEED" option but it requires GNU Make 4.4. (or GNU Make 4.4.1) Is this too new? -- Best Regards Masahiro Yamada