diff --git a/Cargo.lock b/Cargo.lock index 453647cf5e..f0d4e603be 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -692,7 +692,7 @@ dependencies = [ [[package]] name = "bhyve_api" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/propolis?rev=71dd30f454f35c1d33cd8ea0198116f680ac1689#71dd30f454f35c1d33cd8ea0198116f680ac1689" +source = "git+https://github.com/oxidecomputer/propolis?rev=e3988414bd68ecf806078fb898120e1194451ee9#e3988414bd68ecf806078fb898120e1194451ee9" dependencies = [ "bhyve_api_sys", "libc", @@ -702,7 +702,7 @@ dependencies = [ [[package]] name = "bhyve_api_sys" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/propolis?rev=71dd30f454f35c1d33cd8ea0198116f680ac1689#71dd30f454f35c1d33cd8ea0198116f680ac1689" +source = "git+https://github.com/oxidecomputer/propolis?rev=e3988414bd68ecf806078fb898120e1194451ee9#e3988414bd68ecf806078fb898120e1194451ee9" dependencies = [ "libc", "strum", @@ -7421,7 +7421,7 @@ dependencies = [ "pq-sys", "pretty_assertions", "progenitor-client 0.10.0", - "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=71dd30f454f35c1d33cd8ea0198116f680ac1689)", + "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=e3988414bd68ecf806078fb898120e1194451ee9)", "qorb", "rand 0.8.5", "range-requests", @@ -7786,7 +7786,7 @@ dependencies = [ "oximeter-producer", "oxnet", "pretty_assertions", - "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=71dd30f454f35c1d33cd8ea0198116f680ac1689)", + "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=e3988414bd68ecf806078fb898120e1194451ee9)", "propolis-mock-server", "propolis_api_types", "rand 0.8.5", @@ -9790,7 +9790,7 @@ dependencies = [ [[package]] name = "propolis-client" version = "0.1.0" -source = "git+https://github.com/oxidecomputer/propolis?rev=71dd30f454f35c1d33cd8ea0198116f680ac1689#71dd30f454f35c1d33cd8ea0198116f680ac1689" +source = "git+https://github.com/oxidecomputer/propolis?rev=e3988414bd68ecf806078fb898120e1194451ee9#e3988414bd68ecf806078fb898120e1194451ee9" dependencies = [ "async-trait", "base64 0.21.7", @@ -9835,7 +9835,7 @@ dependencies = [ [[package]] name = "propolis-mock-server" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/propolis?rev=71dd30f454f35c1d33cd8ea0198116f680ac1689#71dd30f454f35c1d33cd8ea0198116f680ac1689" +source = "git+https://github.com/oxidecomputer/propolis?rev=e3988414bd68ecf806078fb898120e1194451ee9#e3988414bd68ecf806078fb898120e1194451ee9" dependencies = [ "anyhow", "atty", @@ -9879,7 +9879,7 @@ dependencies = [ [[package]] name = "propolis_api_types" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/propolis?rev=71dd30f454f35c1d33cd8ea0198116f680ac1689#71dd30f454f35c1d33cd8ea0198116f680ac1689" +source = "git+https://github.com/oxidecomputer/propolis?rev=e3988414bd68ecf806078fb898120e1194451ee9#e3988414bd68ecf806078fb898120e1194451ee9" dependencies = [ "crucible-client-types", "propolis_types", @@ -9892,7 +9892,7 @@ dependencies = [ [[package]] name = "propolis_types" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/propolis?rev=71dd30f454f35c1d33cd8ea0198116f680ac1689#71dd30f454f35c1d33cd8ea0198116f680ac1689" +source = "git+https://github.com/oxidecomputer/propolis?rev=e3988414bd68ecf806078fb898120e1194451ee9#e3988414bd68ecf806078fb898120e1194451ee9" dependencies = [ "schemars", "serde", @@ -11586,7 +11586,7 @@ dependencies = [ "omicron-workspace-hack", "oxnet", "progenitor 0.10.0", - "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=71dd30f454f35c1d33cd8ea0198116f680ac1689)", + "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=e3988414bd68ecf806078fb898120e1194451ee9)", "regress", "reqwest", "schemars", @@ -11655,7 +11655,7 @@ dependencies = [ "omicron-uuid-kinds", "omicron-workspace-hack", "oxnet", - "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=71dd30f454f35c1d33cd8ea0198116f680ac1689)", + "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=e3988414bd68ecf806078fb898120e1194451ee9)", "rcgen", "schemars", "serde", diff --git a/Cargo.toml b/Cargo.toml index f8c8df4c1e..a6af50834e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -606,10 +606,10 @@ progenitor-client = "0.10.0" # NOTE: if you change the pinned revision of the `bhyve_api` and propolis # dependencies, you must also update the references in package-manifest.toml to # match the new revision. -bhyve_api = { git = "https://github.com/oxidecomputer/propolis", rev = "71dd30f454f35c1d33cd8ea0198116f680ac1689" } -propolis_api_types = { git = "https://github.com/oxidecomputer/propolis", rev = "71dd30f454f35c1d33cd8ea0198116f680ac1689" } -propolis-client = { git = "https://github.com/oxidecomputer/propolis", rev = "71dd30f454f35c1d33cd8ea0198116f680ac1689" } -propolis-mock-server = { git = "https://github.com/oxidecomputer/propolis", rev = "71dd30f454f35c1d33cd8ea0198116f680ac1689" } +bhyve_api = { git = "https://github.com/oxidecomputer/propolis", rev = "e3988414bd68ecf806078fb898120e1194451ee9" } +propolis_api_types = { git = "https://github.com/oxidecomputer/propolis", rev = "e3988414bd68ecf806078fb898120e1194451ee9" } +propolis-client = { git = "https://github.com/oxidecomputer/propolis", rev = "e3988414bd68ecf806078fb898120e1194451ee9" } +propolis-mock-server = { git = "https://github.com/oxidecomputer/propolis", rev = "e3988414bd68ecf806078fb898120e1194451ee9" } # NOTE: see above! proptest = "1.6.0" qorb = "0.3.1" diff --git a/nexus/src/app/mod.rs b/nexus/src/app/mod.rs index 1291f369c7..7fe39d578d 100644 --- a/nexus/src/app/mod.rs +++ b/nexus/src/app/mod.rs @@ -127,7 +127,22 @@ pub(crate) const MAX_EPHEMERAL_IPS_PER_INSTANCE: usize = 1; pub const MAX_VCPU_PER_INSTANCE: u16 = 64; pub const MIN_MEMORY_BYTES_PER_INSTANCE: u32 = 1 << 30; // 1 GiB -pub const MAX_MEMORY_BYTES_PER_INSTANCE: u64 = 256 * (1 << 30); // 256 GiB +// This is larger than total memory (let alone reservoir) on some sleds; it is +// not to guard against overallocation, but to keep instance memory sizes in +// ranges that we've tested. It is bounded only by the intersection of +// large-memory hardware configurations and tested instance sizes. +// +// Propolis has a similar limit in MAX_PHYSMEM. There, we would like to remove +// the limit entirely. Here, we may want to make the max size operator +// configurable as it may have implications on migratability for racks with +// mixed sled configurations. +// +// Before raising or removing this limit, testing has been valuable. See: +// * illumos bug #17403 +// * Propolis issue #903 +// There are known issues setting this above 1028 GiB. See: +// * Propolis issue #907 +pub const MAX_MEMORY_BYTES_PER_INSTANCE: u64 = 1024 * (1 << 30); // 1 TiB pub const MIN_DISK_SIZE_BYTES: u32 = 1 << 30; // 1 GiB pub const MAX_DISK_SIZE_BYTES: u64 = 1023 * (1 << 30); // 1023 GiB diff --git a/package-manifest.toml b/package-manifest.toml index 0e26e7c4b1..35d762b281 100644 --- a/package-manifest.toml +++ b/package-manifest.toml @@ -622,10 +622,10 @@ service_name = "propolis-server" only_for_targets.image = "standard" source.type = "prebuilt" source.repo = "propolis" -source.commit = "71dd30f454f35c1d33cd8ea0198116f680ac1689" +source.commit = "e3988414bd68ecf806078fb898120e1194451ee9" # The SHA256 digest is automatically posted to: # https://buildomat.eng.oxide.computer/public/file/oxidecomputer/propolis/image//propolis-server.sha256.txt -source.sha256 = "e1fe40e66b92c84503613f83de2693c8446b3b05c8e5bad914299d2ab7d7fb00" +source.sha256 = "a858fe9db8db262b402a44598e991c6298f92531421029f7728b3fdd45fe621b" output.type = "zone" [package.mg-ddm-gz]