OS-8766 load_sdc_sysinfo forks cut and sed per line, adding ~850ms to every zone boot
The loop forked a subshell, cut and sed for each line of sysinfo
output, about 71 processes per call. The function runs from the zone
brand statechange hook, so every zone boot paid for it.
Measured on a compute node with an Intel Xeon Gold 6240:
load_sdc_sysinfo 842 ms -> 33 ms
statechange hook 1012 ms -> 161 ms
vmadm start to guest ready 2631 ms -> 1721 ms
Output verified identical under both bash and ksh93: 69 variables,
byte for byte.
load_sdc_bootparams and sdc_bootparams_keys below have the same
pattern and are left alone here; they were not on the path measured.
Co-Authored-By: Claude Opus 5 (1M context) <noreply at anthropic.com>
Claude-Session: https://claude.ai/code/session_01XsuxyuVvHe6ro76LWLs8GP
Fix gcc14-debug release builds with a bit more space in /. (#1183)
Reviewed by: Toomas Soome <tsoome at edgecast.io>
Reviewed by: Nahum Shalman <nshalman at edgecast.io>
Approved by: Nahum Shalman <nshalman at edgecast.io>
OS-8766 load_sdc_sysinfo forks cut and sed per line, adding ~850ms to every zone boot
The loop forked a subshell, cut and sed for each line of sysinfo
output, about 71 processes per call. The function runs from the zone
brand statechange hook, so every zone boot paid for it.
Measured on a compute node with an Intel Xeon Gold 6240:
load_sdc_sysinfo 842 ms -> 33 ms
statechange hook 1012 ms -> 161 ms
vmadm start to guest ready 2631 ms -> 1721 ms
Output verified identical under both bash and ksh93: 69 variables,
byte for byte.
load_sdc_bootparams and sdc_bootparams_keys below have the same
pattern and are left alone here; they were not on the path measured.
Co-Authored-By: Claude Opus 5 (1M context) <noreply at anthropic.com>
Claude-Session: https://claude.ai/code/session_012Kn8vg7nnv6i6kYcSaRHty
OS-8759 SmartOS installation needs to pull newer bootstrap tar
Reviewed by: Jonathan Perkin <jperkin at edgecast.io>
Reviewed by: Nahum Shalman <nshalman at edgecast.io>
Approved by: Nahum Shalman <nshalman at edgecast.io>
OS-8754 let Jenkinsfile skip stages in case of single-stage failure
Reviewed by: Toomas Soome <tsoome at edgecast.io>
Approved by: Toomas Soome <tsoome at edgecast.io>
This branch should build components from related branches.
NOTE: THIS CHANGE AND ANY OTHERS IN default.configure-* SHOULD NOT GET PUSHED
INTO `master` WHEN IT IS READY FOR BEING ACTUALLY COMMITTED!
vm.js, vmadm: migrate-listen startup mode for bhyve live migration
Adds a first-class way to boot a bhyve VM in its live-migration
destination mode, replacing the /tmp/migrate.listen sentinel file
sidechannel with a properly scoped zonecfg attribute.
Interface:
vmadm start <uuid> migrate-listen=true
This flows through VM.start(uuid, extra, {migrate_listen: true}, cb)
→ startVM → startZone, which (for the duration of this single
zoneadm boot call only) adds a transient `migrate_listen=true`
attribute to the zone's config via zonecfg. The brand boot program
(usr/src/lib/brand/bhyve/zone/boot.c, illumos-joyent companion
change) reads the attribute and appends `-o migrate.listen=true` to
the bhyve argv, causing bhyve to skip bootrom + vcpu_reset and block
on its in-zone control socket waiting for import-state from the GZ
migration agent.
[16 lines not shown]
This branch should build components from related branches on Jenkins too.
NOTE: THIS CHANGE AND ANY OTHERS IN Jenkinsfile SHOULD NOT GET PUSHED
INTO `master` WHEN IT IS READY FOR BEING ACTUALLY COMMITTED!
This branch should build components from related branches on Jenkins too.
NOTE: THIS CHANGE AND ANY OTHERS IN Jenkinsfile SHOULD NOT GET PUSHED
INTO `master` WHEN IT IS READY FOR BEING ACTUALLY COMMITTED!
This branch should build components from related branches.
NOTE: THIS CHANGE AND ANY OTHERS IN default.configure-* SHOULD NOT GET PUSHED
INTO `master` WHEN IT IS READY FOR BEING ACTUALLY COMMITTED!
OS-8735 piadm(8) lies about what version of loader is installed
Reviewed by: Toomas Soome <tsoome at edgecast.io>
Approved by: Toomas Soome <tsoome at edgecast.io>
OS-8730 Bump /usr size to make room for illumos#17974
Reviewed by: Carlos Neira <cneira at edgecast.io>
Reviewed by: Toomas Soome <tsoome at edgecast.io>
Reviewed by: Nahum Shalman <nshalman at edgecast.io>
Approved by: Toomas Soome <tsoome at edgecast.io>
vm.js, vmadm: migrate-listen startup mode for bhyve live migration
Adds a first-class way to boot a bhyve VM in its live-migration
destination mode, replacing the /tmp/migrate.listen sentinel file
sidechannel with a properly scoped zonecfg attribute.
Interface:
vmadm start <uuid> migrate-listen=true
This flows through VM.start(uuid, extra, {migrate_listen: true}, cb)
→ startVM → startZone, which (for the duration of this single
zoneadm boot call only) adds a transient `migrate_listen=true`
attribute to the zone's config via zonecfg. The brand boot program
(usr/src/lib/brand/bhyve/zone/boot.c, illumos-joyent companion
change) reads the attribute and appends `-o migrate.listen=true` to
the bhyve argv, causing bhyve to skip bootrom + vcpu_reset and block
on its in-zone control socket waiting for import-state from the GZ
migration agent.
[16 lines not shown]
vm.js, vmadm: migrate-listen startup mode for bhyve live migration
Adds a first-class way to boot a bhyve VM in its live-migration
destination mode, replacing the /tmp/migrate.listen sentinel file
sidechannel with a properly scoped zonecfg attribute.
Interface:
vmadm start <uuid> migrate-listen=true
This flows through VM.start(uuid, extra, {migrate_listen: true}, cb)
→ startVM → startZone, which (for the duration of this single
zoneadm boot call only) adds a transient `migrate_listen=true`
attribute to the zone's config via zonecfg. The brand boot program
(usr/src/lib/brand/bhyve/zone/boot.c, illumos-joyent companion
change) reads the attribute and appends `-o migrate.listen=true` to
the bhyve argv, causing bhyve to skip bootrom + vcpu_reset and block
on its in-zone control socket waiting for import-state from the GZ
migration agent.
[16 lines not shown]