golang / go

The Go programming language
https://go.dev
BSD 3-Clause "New" or "Revised" License
123.97k stars 17.66k forks source link

x/build: run DragonflyBSD VMs on GCE? #23060

Open bradfitz opened 6 years ago

bradfitz commented 6 years ago

Looks like Dragonfly now supports virtio:

https://leaf.dragonflybsd.org/cgi/web-man?command=virtio&section=4

So it should run on GCE?

If somebody could prepare make.bash scripts to script the install to prepare bootable images, we could run it on GCE.

See the netbsd, openbsd, and freebsd directories as examples: https://github.com/golang/build/tree/master/env

(The script must run on Linux and use qemu to do the image creation.)

/cc @tdfbsd

gopherbot commented 2 years ago

Change https://go.dev/cl/420756 mentions this issue: dashboard: rename dragonfly-amd64 builder to dragonfly-amd64-622

rsc commented 2 years ago

I started the GCE builder but it has yet to complete a build. After make.bash it is supposed to upload the tree back to the coordinator, and in 5 minutes it is only able to transfer about 130 MB which turns out to be not the whole thing. Perhaps this is the MTU thing, or perhaps it is something else. I am going to try to reproduce slow network uploads in a simpler context. We may turn the reverse builder back on in the interim. I will keep this issue posted.

rsc commented 2 years ago

We have our first 'ok' on build.golang.org for dragonfly-amd64-622. We still need to figure out the upload slowness (worked around for now by disabling that upload) and perhaps also the boot-time network issue (which may be related), but it's working, and much more scalable.

@tuxillo, please feel free to shut down the reverse builder, and thanks again for keeping it running for so long!

rsc commented 2 years ago

Leaving this issue open for the networking issues.

daftaupe commented 1 year ago

Not directly related, but I also discovered an easy way to panic the kernel:

root@buildlet:~ # ifconfig vtnet0 mtu 16384
panic: overflowed mbuf 0xfffff8037c5bec00
cpuid = 8
Trace beginning at frame 0xfffff8037cf9c6e8
m_free() at m_free+0x351 0xffffffff806be5c1 
m_free() at m_free+0x351 0xffffffff806be5c1 
m_freem() at m_freem+0x15 0xffffffff806be845 
vtnet_newbuf() at vtnet_newbuf+0x4b 0xffffffff80a71e9b 
vtnet_init() at vtnet_init+0x108 0xffffffff80a73848 
vtnet_ioctl() at vtnet_ioctl+0x213 0xffffffff80a73d23 
Debugger("panic")

CPU8 stopping CPUs: 0x0000feff
 stopped
Stopped at      Debugger+0x7c:  movb    $0,0xbcc819(%rip)
db> 
db>

This should be fixed with https://gitweb.dragonflybsd.org/dragonfly.git/commit/20bf50996e30140ca0d813694090469045bba0c4 for what it's worth.

This has also been merged in DragonFly_RELEASE_6_4 branch.