Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935954AbcJQQqM (ORCPT ); Mon, 17 Oct 2016 12:46:12 -0400 Received: from mail-oi0-f48.google.com ([209.85.218.48]:36522 "EHLO mail-oi0-f48.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S935738AbcJQQqL (ORCPT ); Mon, 17 Oct 2016 12:46:11 -0400 MIME-Version: 1.0 In-Reply-To: References: From: Linus Torvalds Date: Mon, 17 Oct 2016 09:46:09 -0700 X-Google-Sender-Auth: nNX_jtIpTUNHOkufhPzZY3lFVZI Message-ID: Subject: Re: [4.9-rc1] Build-time 2x slower To: Sedat Dilek Cc: LKML Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1925 Lines: 53 On Mon, Oct 17, 2016 at 9:04 AM, Sedat Dilek wrote: > > not sure whom to address on this issue. > > I have built Linux v4.9-rc1, v4.8.2 and v4.4.25 kernels (in this > order) this morning. > > Building a Linux v4.8.2 under Linux v4.9-rc1 took two times longer. > > As usually I build with 2 parallel-make-jobs. > This takes approx. 30mins. > Under Linux v4.9-rc1 it took approx. an hour. Hmm. Would you mind just bisecting it? I've not noticed the same thing on my setup, but to be honest I generally don't time things very closely because the variation for me tends to be much more along the lines of "damn, that pull request touched now it's rebuilding everything" vs "40 seconds to build just the driver that changed". Most of my builds are the "allmodconfig" builds I do in between pulls.. You can even automate it, since it's going to take some time, using "git bisect run" and writing a small script that looks at how long it takes to build the kernel from scratch each time. I'd suggest trying to write the script using a smaller repository (maybe git itself). The script would just needs to do a clean rebuild, time it, and have return success or error based on how long it took. The script *might* look something like #!/bin/sh git clean -dqfx make oldconfig time -o time-file -f '%e' sh -c "make -j8 > ../output" # remove fractional seconds time=$(cat time-file | sed 's/\..*//') # less than 35 minutes is good? [ $time -lt $((35*60)) ] but I didn't really test that very much. Anyway, you *should* be able to do something like git bisect good v4.8 git bisect bad v4.9-rc1 git bisect run ../timing-script (put the "timing-script" somewhere _else_ than the kernel sources so that the "git clean" doesn't remove it - that's what my first silly test did ;) You may have to tweak that script a bit, but I think you get the idea.. Linus