> Right: but you're using flang and mlir HEAD as a test suite for clang as I 
> understand it, I don't think that MLIR/flang developers should get their 
> patches flagged here (which is what buildbots are doing).
> We (google) are doing similar tests, but in a silent infrastructure and 
> investigate issues that we report asynchronously:

Point taken, and moving to silent is a lot simpler way to achieve that
than filtering changes.

I'll discuss this with the team next week, thanks again for the feedback!

On Fri, 22 Jul 2022 at 16:21, Mehdi AMINI <joker....@gmail.com> wrote:
>
>
>
> On Fri, Jul 22, 2022 at 3:39 PM David Spickett <david.spick...@linaro.org> 
> wrote:
>>
>> > OK! But how is testing flang in stage2 helpful for this? This is just 
>> > testing that clang from stage-1 is properly functioning right? The 
>> > test-suite is there for this I think?
>>
>> Yes, it is checking that the clang in stage 1 generates correct SVE
>> code. So that when that clang becomes the next release, flang works
>> out of the box.
>>
>> The test suite (meaning https://github.com/llvm/llvm-test-suite) does
>> include some fortran programs but they are run in a mode where flang
>> is used to "parse unparse" basically go source to AST to source. Then
>> compiled with gofrtran. So you have some coverage there but not a lot.
>>
>> > That is: no change to MLIR or Flang should affect the behavior of 
>> > clang-stage-1? (I'm trying to figure out if these commits should trigger 
>> > testing)
>>
>> If SVE codegen were perfect then I'd agree. Given that it isn't I
>> wouldn't want to miss:
>> * some change to flang/mlir comes in
>> * this change hits some particular codegen situation
>> * clang built in stage 1 emits incorrect code
>
>
> Right: but you're using flang and mlir HEAD as a test suite for clang as I 
> understand it, I don't think that MLIR/flang developers should get their 
> patches flagged here (which is what buildbots are doing).
> We (google) are doing similar tests, but in a silent infrastructure and 
> investigate issues that we report asynchronously: that is the difference is 
> that the community does not bear the weight of the bot maintenance.
> This is exacerbated by the fact that this bot runs too slowly and batches too 
> many commits together to provide a good signal, you likely should look into 
> making it silent (that is only you gets notified automatically).
>
>
>> Similarly if there is a change to clang then you compile the same
>> flang but get some of it wrong, hopefully the tests pick this up. We
>> want to check the runtime behaviour of the code stage 1 clang
>> generates.
>>
>> Granted it can be frustrating to be on a blame list just because your
>> perfectly valid code hit a pre-existing bug. It's something we try to
>> mitigate by proactively telling people "hey we see your commit broke
>> this but don't worry we know it's something else". We could reason
>> that if a flang/mlir change made it through our other 2 stage bots or
>> the 1 stage SVE bots, it cannot be the root of the issue. If that
>> makes sense.
>>
>> We'd still want to trigger a new 2 stage SVE build on that change
>> though. So it would need buildbot to be able to take the blame list
>> and filter out flang/mlir changes (and if stage 1 of the 2 stage
>> broke, the stage 1 bot already reported that so it's fine to not
>> notify again). I'm not sure if it can handle that.
>>
>> > By the way, your method of having ccache enabled globally mean it is 
>> > enabled implicitly during stage-2 as well? This won't have cache hit 
>> > (stage-2...) but it'll take cache space unfortunately (and there is a 
>> > slight overhead to going through the cache all the time).
>>
>> Stage 2 bypasses the cache. Stage 1 uses /usr/bin/cc which invokes
>> ccache then stage 2 has the compilers set directly to the clang
>> executable built in stage 1.
>
>
> Ah of course, it all WAI :)
>
>>
>>
>> On Fri, 22 Jul 2022 at 12:28, Mehdi AMINI <joker....@gmail.com> wrote:
>> >
>> >
>> >
>> > On Fri, Jul 22, 2022 at 1:18 PM David Spickett <david.spick...@linaro.org> 
>> > wrote:
>> >>
>> >> > I didn't know this builder would test flang as well: which stage of the 
>> >> > build is doing so?
>> >>
>> >> It tests it only for stage 2, and the 1 stage bot checks stage 1. So
>> >> we do have some of that focus you talked about between
>> >> clang-aarch64-sve-vla (which is the 1 stage) and
>> >> clang-aarch64-sve-vla-2stage. We also have plain AArch64 bots checking
>> >> flang, but the point here is to exercise SVE codegen.
>> >
>> >
>> > OK! But how is testing flang in stage2 helpful for this? This is just 
>> > testing that clang from stage-1 is properly functioning right? The 
>> > test-suite is there for this I think?
>> >
>> > That is: no change to MLIR or Flang should affect the behavior of 
>> > clang-stage-1? (I'm trying to figure out if these commits should trigger 
>> > testing)
>> >
>> >
>> >>
>> >> You are right that the 2 stage bot could skip building flang in stage
>> >> 1 because it's not going to test it. In theory our ccaching means this
>> >> isn't a big deal (it does now, thanks again!) but we could explicitly
>> >> disable it and save a lot of linking at least.
>> >>
>> >> We will do our best to improve the build times but ultimately we are
>> >> limited by hardware availability which is a more difficult problem to
>> >> fix.
>> >
>> >
>> > Right, and stage-2 can't use any ccache anyway: this is tricky...
>> >
>> > By the way, your method of having ccache enabled globally mean it is 
>> > enabled implicitly during stage-2 as well? This won't have cache hit 
>> > (stage-2...) but it'll take cache space unfortunately (and there is a 
>> > slight overhead to going through the cache all the time).
>> >
>> >
>> >>
>> >>
>> >> On Fri, 22 Jul 2022 at 10:16, Mehdi AMINI <joker....@gmail.com> wrote:
>> >> >
>> >> > On Fri, Jul 22, 2022 at 5:46 AM Thiago Jung Bauermann <
>> >> > thiago.bauerm...@linaro.org> wrote:
>> >> >
>> >> > >
>> >> > > Hello Mehdi,
>> >> > >
>> >> > > Mehdi AMINI <joker....@gmail.com> writes:
>> >> > >
>> >> > > > I don't know if you are maintaining also 
>> >> > > > clang-aarch64-sve-vla-2stage
>> >> > > > but it takes far too long right now (>10 hours).
>> >> > >
>> >> > > Yes, I actually increased its ccache size on July 6th but only from 5 
>> >> > > GB
>> >> > > to 20 GB because the machine running that builder is also a 
>> >> > > development
>> >> > > box. Looking at the build times graph it looks like it helped a bit 
>> >> > > but
>> >> > > not a lot.
>> >> > >
>> >> > > I now increased the size again to 40 GB. I'll monitor to see if 
>> >> > > there's
>> >> > > an impact.
>> >> > >
>> >> > > > It notifies for large number of people which is overly noisy right 
>> >> > > > now.
>> >> > > > See: https://lab.llvm.org/buildbot/#/builders/198/builds/1234
>> >> > >
>> >> > > Does adding a “depends_on_projects” argument help reduce the number of
>> >> > > notified people? Or is there something else that could/should be done
>> >> > > about that?
>> >> > >
>> >> >
>> >> > It will at least eliminate people who commit in unrelated projects.
>> >> >
>> >> >
>> >> > >
>> >> > > > One thing I noticed is that it seems to be missing the
>> >> > > > `depends_on_projects` for the buildbot configuration: that means 
>> >> > > > it'll
>> >> > > > include commits that touches part of the codebase totally unrelated 
>> >> > > > to
>> >> > > > what it is testing (like flang and mlir). That would be a first easy
>> >> > > > step to reduce the number of unrelated changes that get flagged
>> >> > > > incorrectly.
>> >> > >
>> >> > > Thank you for the suggestion, I see that many builders running on 
>> >> > > Linaro
>> >> > > workers don't have it. I'll prepare a patch to add 
>> >> > > “depends_on_projects”
>> >> > > arguments to them.
>> >> > >
>> >> > > Though specifically for clang-aarch64-sve-vla-2stage IIUC its value
>> >> > > would be ["llvm", "mlir", "clang", "flang"] (since it's meant to test
>> >> > > flang as well), so perhaps it wouldn't change much in practice?
>> >> > >
>> >> >
>> >> > I didn't know this builder would test flang as well: which stage of the
>> >> > build is doing so?
>> >> > In general I try to keep builder configs more focused to avoid that bug 
>> >> > in
>> >> > one components hides regression in another one (for example MLIR 
>> >> > breaking
>> >> > stage1 for this bot for a day and in the meantime you get a stage-2
>> >> > regression that won't be detected)
>> >> >
>> >> > In any case, this will still help people contributing outside this list
>> >> > (libc++, lldb, lld, compiler-rt), unless you also need these.
>> >> >
>> >> > Cheers,
>> >> >
>> >> > --
>> >> > Mehdi
>> >> > _______________________________________________
>> >> > linaro-toolchain mailing list -- linaro-toolchain@lists.linaro.org
>> >> > To unsubscribe send an email to linaro-toolchain-le...@lists.linaro.org
_______________________________________________
linaro-toolchain mailing list -- linaro-toolchain@lists.linaro.org
To unsubscribe send an email to linaro-toolchain-le...@lists.linaro.org

Reply via email to