Flang Buildbot

Hi,

what is the status of the flang buildbot? Seeing that the current
master does not build for some days, it could be helpful.

I have some experience with setting up a buildbot and zorg, maybe I could help?

Michael

Hi Michael

We have an AArch64 server at Arm that is earmarked for the task. @Caroline Concatto is setting this up now and should be in the farm soon, initially as an unstable builder while we prove it out.

Ta
Rich

Hi Michael,

Thanks for the update.

Note that there is a staging area for unstable buildbots, that does
not send out mails: http://lab.llvm.org:8014/

Michael

Hi again,

Thanks for the update.

Note that there is a staging area for unstable buildbots, that does
not send out mails: http://lab.llvm.org:8014/

I have made some progress configuring a flang buildbot at NERSC.
However I am confused by some parts of the LLVM builder docs
(https://llvm.org/docs/HowToAddABuilder.html):

- In some places that page says the production buildmaster is
http://lab.llvm.org:8011 and the silent buildmaster is
http://lab.llvm.org:8014 (Michael mentioned the same URLs earlier in
this thread). But in other places on the same page, the production
port is listed as 9990 and the silent port as 9994. Which pair of
ports is correct? Or do these pairs of ports serve different purposes?

- Step 9 of that page says "Send a patch which adds your build slave
and your builder to zorg." What does that mean? I searched a bit and
found this GitHub repository: https://github.com/llvm/llvm-zorg. Does
step 9 consist of sending a GitHub pull request to that repository
with the buildbot info?

- Assuming that the above mentioned GitHub page is the correct page
for 'zorg', what is the meaning of the properties 'jobs' and
'max_builds'? e.g., this buildbot
(https://github.com/llvm/llvm-zorg/blob/master/buildbot/osuosl/master/config/slaves.py#L14)
has `jobs=24` and `max_builds=2`.

Thanks.

Hey,

Just to make sure, have you build the version 0.8.5?

Are you following the instructions in:
http://docs.buildbot.net/0.8.5/full.html to install/start the slave?

About which master to connect.
First time I see asking to connect to 8014. I've only seeing http://lab.llvm.org: 9994/ to the silent one.

I believe step 9 is the one that connects the master in llvm to our slave.
So I believe that we need to do the git clone and then send the patch.

Not very sure about jobs=24` and `max_builds=2, but maybe max_builds is the number of slaves you have to build, jobs are the same as to make -j X, where X is the number of threads you could run your job in each slave.

I hope it has helped.

Carol

    Hi again,

    >
    > Thanks for the update.
    >
    > Note that there is a staging area for unstable buildbots, that does
    > not send out mails: http://lab.llvm.org:8014/

    I have made some progress configuring a flang buildbot at NERSC.
    However I am confused by some parts of the LLVM builder docs
    (https://llvm.org/docs/HowToAddABuilder.html):

    - In some places that page says the production buildmaster is
    http://lab.llvm.org:8011 and the silent buildmaster is
    http://lab.llvm.org:8014 (Michael mentioned the same URLs earlier in
    this thread). But in other places on the same page, the production
    port is listed as 9990 and the silent port as 9994. Which pair of
    ports is correct? Or do these pairs of ports serve different purposes?

    - Step 9 of that page says "Send a patch which adds your build slave
    and your builder to zorg." What does that mean? I searched a bit and
    found this GitHub repository: https://github.com/llvm/llvm-zorg. Does
    step 9 consist of sending a GitHub pull request to that repository
    with the buildbot info?

     - Assuming that the above mentioned GitHub page is the correct page
    for 'zorg', what is the meaning of the properties 'jobs' and
    'max_builds'? e.g., this buildbot
    (https://github.com/llvm/llvm-zorg/blob/master/buildbot/osuosl/master/config/slaves.py#L14)
    has `jobs=24` and `max_builds=2`.

    Thanks.

Hi again,

Thanks for the update.

Note that there is a staging area for unstable buildbots, that does
not send out mails: http://lab.llvm.org:8014/

I have made some progress configuring a flang buildbot at NERSC.
However I am confused by some parts of the LLVM builder docs
(https://llvm.org/docs/HowToAddABuilder.html):

Cool!

- In some places that page says the production buildmaster is
http://lab.llvm.org:8011 and the silent buildmaster is
http://lab.llvm.org:8014 (Michael mentioned the same URLs earlier in
this thread). But in other places on the same page, the production
port is listed as 9990 and the silent port as 9994. Which pair of
ports is correct? Or do these pairs of ports serve different purposes?

The latter two don't seem to serve a buildbot instance. Use the former.

- Step 9 of that page says "Send a patch which adds your build slave
and your builder to zorg." What does that mean? I searched a bit and
found this GitHub repository: https://github.com/llvm/llvm-zorg. Does
step 9 consist of sending a GitHub pull request to that repository
with the buildbot info?

We might or might not accept PRs there but a plain old .patch

file will do too. You can probably just send it to

Galina Kistanova <gkistanova@gmail.com>

Hi again,

>
> Thanks for the update.
>
> Note that there is a staging area for unstable buildbots, that does
> not send out mails: http://lab.llvm.org:8014/

I have made some progress configuring a flang buildbot at NERSC.
However I am confused by some parts of the LLVM builder docs
(https://llvm.org/docs/HowToAddABuilder.html):

- In some places that page says the production buildmaster is
http://lab.llvm.org:8011 and the silent buildmaster is
http://lab.llvm.org:8014 (Michael mentioned the same URLs earlier in
this thread). But in other places on the same page, the production
port is listed as 9990 and the silent port as 9994. Which pair of
ports is correct? Or do these pairs of ports serve different purposes?

To confirm the buildslave works, connect it to port 9994. The results
are reported to lab.llvm.org:8014

Once we see that the builder works and is not flaky (randomly fails
e.g. because of timeouts), switch the buildslave to connect to port
9990. Results will be reported at lab.llvm.org:8011 and lab.llvm.org
will send out blame mails.

It is important to use buildbot version 0.8.5 EXACTLY. Other versions
do connect successfully (i.e. no check for version mismatch), but fail
at some other stage. For me it was that "git" on the slave was not
found.

- Step 9 of that page says "Send a patch which adds your build slave
and your builder to zorg." What does that mean? I searched a bit and
found this GitHub repository: https://github.com/llvm/llvm-zorg. Does
step 9 consist of sending a GitHub pull request to that repository
with the buildbot info?

Upload a patch like the following:

https://reviews.llvm.org/D75127

- Assuming that the above mentioned GitHub page is the correct page
for 'zorg', what is the meaning of the properties 'jobs' and
'max_builds'? e.g., this buildbot
(https://github.com/llvm/llvm-zorg/blob/master/buildbot/osuosl/master/config/slaves.py#L14)
has `jobs=24` and `max_builds=2`.

'jobs' typically is the '-j' parameter for ninja. It depends on the
builder, of which you will define your own (in builders.py).

'max_builds' is the number of buildbot builds the buildslave is
allowed to do concurrently (I think). I don't recommend that, there
should be enough parallelism in the compilation.

Michael

Hi Carol + Michael,