Add/Enable Race builder for liux/s390x

190 views
Skip to first unread message

Srinivas Pokala

unread,
Apr 26, 2023, 5:45:47 AM4/26/23
to golang-dev
Hi Team,

Race builders are currently running on the AMD64 port for several GOOS's in the Golang Build Dashboard. The Linux/s390x port is supporting the race detection functionality, and there are currently 2 virtual machines running on a cluster ("host-linux-s390x") for regular builds using the "linux-s390x-ibm" builder.
What factors should be taken into account while adding or enabling race builder for the linux/s390x port?


Thanks,
Srinivas

Srinivas Pokala

unread,
May 2, 2023, 5:29:18 AM5/2/23
to golan...@googlegroups.com
I have referred to the "How to setup a builder" section at https://github.com/golang/go/wiki/DashboardBuilders as part of adding a new race builder for the linux/s390x port.  

The first step in adding a new builder is to get its host type and hash key. Can someone in the community assist me in obtaining these?

Thanks,
Srinivas


---------- Forwarded message ---------
From: Srinivas Pokala <Unknown>
Date: Wednesday, April 26, 2023 at 3:15:47 PM UTC+5:30
Subject: Add/Enable Race builder for liux/s390x
To: golang-dev <Unknown>


Hi Team,

Race builders are currently running on the AMD64 port for several GOOS's in the Golang Build Dashboard. The Linux/s390x port is supporting the race detection functionality, and there are currently 2 VM's running on a cluster ("host-linux-s390x") for regular builds using the "linux-s390x-ibm" builder.

What factors should be taken into account while adding or enabling race builder for the linux/s390x port?


Thanks,
Srinivas

Michael Pratt

unread,
May 2, 2023, 11:33:03 AM5/2/23
to Srinivas Pokala, golan...@googlegroups.com
Assuming that the existing linux-s390x-ibm builder VMs are capable of running race builds (I don't see why they wouldn't be), then you don't need to create a new host type + key. You would simply add a new race builder alongside linux-s390x-ibm (https://cs.opensource.google/go/x/build/+/master:dashboard/builders.go;l=2956-2961;drc=91c2cfd508c2d1f262436b8cabfcbf9c8747e94d) using the same `HostType: "host-linux-s390x"`. Looking at the other race builders, I don't think you need to add anything special to the new builder configuration. Simply having a name ending in "-race" will be sufficient to enable race testing.

If the 2 VMs aren't enough capacity to run double the test workload, you could add more VMs using the same host type and key as the existing builders.

--
You received this message because you are subscribed to the Google Groups "golang-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/golang-dev/9eaa699e-2c7c-4d9f-a6f5-cf6c5d70401dn%40googlegroups.com.

Srinivas Pokala

unread,
May 3, 2023, 3:12:14 AM5/3/23
to golang-dev
I appreciate your response, Michael.  Based on this, I can configure a new race builder and add it to the host cluster "host-linux-s390x" that already exists.

How can we determine the workload capacity of the two virtual machines we now have and whether we need to add more? Each  VM's  processing power:  8 cpu cores, 16GB memory 
Do we need to add anything further if the present VMs are sufficient to execute the race builder workload, aside from providing new builder config details in go/build: dashboard/builders.go?

Regards,
Srinivas

Michael Pratt

unread,
May 3, 2023, 11:16:10 AM5/3/23
to Srinivas Pokala, golang-dev
https://farmer.golang.org/#sched can show if builders are actively backlogged. e.g., at the moment host-linux-mips64-rtrk shows "669 waiting (oldest 285h44m22s, newest 1m4s)". i.e., there are 669 runs waiting in the queue, up to 285hr old. So this builder is clearly not keeping up with the commit rate. On the other hand, host-linux-s390x shows "17 waiting (oldest 9m22s, newest 9m13s)", so it seems to be keeping up OK. I don't think we really tend to do much robust analysis to determine if adding more builds will overwhelm the existing builders. I think it is OK to add first and then monitor and if things get backed up either add capacity or turn off the race builder.

Adding the new builder config to dashboard/builders.go should be all that is needed (plus fixing any new test failures that show up once the builder is added).

Reply all
Reply to author
Forward
0 new messages