Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1502200 > unrolled thread
| Started by | Linus Torvalds <torvalds@linux-foundation.org> |
|---|---|
| First post | 2016-10-17 18:50 +0200 |
| Last post | 2016-10-18 11:30 +0200 |
| Articles | 2 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: [4.9-rc1] Build-time 2x slower Linus Torvalds <torvalds@linux-foundation.org> - 2016-10-17 18:50 +0200
Re: [4.9-rc1] Build-time 2x slower Sedat Dilek <sedat.dilek@gmail.com> - 2016-10-18 11:30 +0200
| From | Linus Torvalds <torvalds@linux-foundation.org> |
|---|---|
| Date | 2016-10-17 18:50 +0200 |
| Subject | Re: [4.9-rc1] Build-time 2x slower |
| Message-ID | <stjgS-5Xu-21@gated-at.bofh.it> |
On Mon, Oct 17, 2016 at 9:04 AM, Sedat Dilek <sedat.dilek@gmail.com> 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 <linux./fs.h> 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
[toc] | [next] | [standalone]
| From | Sedat Dilek <sedat.dilek@gmail.com> |
|---|---|
| Date | 2016-10-18 11:30 +0200 |
| Message-ID | <stySB-8al-19@gated-at.bofh.it> |
| In reply to | #1502200 |
On Mon, Oct 17, 2016 at 6:46 PM, Linus Torvalds <torvalds@linux-foundation.org> wrote: > On Mon, Oct 17, 2016 at 9:04 AM, Sedat Dilek <sedat.dilek@gmail.com> 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 <linux./fs.h> 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.. > OK, thanks for confirming the problem. I was not sure if this is a "local" problem. Your timing-script looks interesting and test... will report. - Sedat -
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web