From 5db41474f9cbdbb902460f66375144650fa634e2 Mon Sep 17 00:00:00 2001 From: iximeow Date: Mon, 26 Jan 2026 22:09:42 +0000 Subject: [PATCH 1/2] Bump Propolis to disable Doorbell Buffer support (for now) two propolis changes since last bump: * Add DTrace script to monitor viona activity * do not adverstise Doorbell Buffer support for now The second is the only one that ends up in a build. While we're still figuring out what's going on in the Propolis issue (1008), this at least seems to keep guests from experiencing the issue. The NVMe Doorbell Buffer feature here was merged into Propolis right after R17 along with the other NVMe reworking, so there's not a loss of behavior here so far as released software is concerned. For development/dogfood/etc there should be no issue with losing the Doorbell Buffer feature, in the same way we are confident that enabling Doorbell Buffer support is OK to do as it was implemented. It's just a faster (not needing as many interrupts and exits) way to communicate NVMe queue state. --- Cargo.lock | 18 +++++++++--------- Cargo.toml | 8 ++++---- package-manifest.toml | 4 ++-- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 690c6ee18eb..3b6a7d338af 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -734,7 +734,7 @@ dependencies = [ [[package]] name = "bhyve_api" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/propolis?rev=2aa7f9d0ee84a1c45e821d6444b1d2f0e69b743e#2aa7f9d0ee84a1c45e821d6444b1d2f0e69b743e" +source = "git+https://github.com/oxidecomputer/propolis?rev=d6cd9573a8134d6d9b1aa26e9adc10a823642275#d6cd9573a8134d6d9b1aa26e9adc10a823642275" dependencies = [ "bhyve_api_sys", "libc", @@ -744,7 +744,7 @@ dependencies = [ [[package]] name = "bhyve_api_sys" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/propolis?rev=2aa7f9d0ee84a1c45e821d6444b1d2f0e69b743e#2aa7f9d0ee84a1c45e821d6444b1d2f0e69b743e" +source = "git+https://github.com/oxidecomputer/propolis?rev=d6cd9573a8134d6d9b1aa26e9adc10a823642275#d6cd9573a8134d6d9b1aa26e9adc10a823642275" dependencies = [ "libc", "strum 0.26.3", @@ -8465,7 +8465,7 @@ dependencies = [ "pq-sys", "pretty_assertions", "progenitor-client 0.10.0", - "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=2aa7f9d0ee84a1c45e821d6444b1d2f0e69b743e)", + "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=d6cd9573a8134d6d9b1aa26e9adc10a823642275)", "qorb", "rand 0.9.2", "range-requests", @@ -8905,7 +8905,7 @@ dependencies = [ "oxnet", "pretty_assertions", "progenitor 0.10.0", - "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=2aa7f9d0ee84a1c45e821d6444b1d2f0e69b743e)", + "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=d6cd9573a8134d6d9b1aa26e9adc10a823642275)", "propolis-mock-server", "propolis_api_types", "rand 0.9.2", @@ -10994,7 +10994,7 @@ dependencies = [ [[package]] name = "propolis-client" version = "0.1.0" -source = "git+https://github.com/oxidecomputer/propolis?rev=2aa7f9d0ee84a1c45e821d6444b1d2f0e69b743e#2aa7f9d0ee84a1c45e821d6444b1d2f0e69b743e" +source = "git+https://github.com/oxidecomputer/propolis?rev=d6cd9573a8134d6d9b1aa26e9adc10a823642275#d6cd9573a8134d6d9b1aa26e9adc10a823642275" dependencies = [ "async-trait", "base64 0.21.7", @@ -11039,7 +11039,7 @@ dependencies = [ [[package]] name = "propolis-mock-server" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/propolis?rev=2aa7f9d0ee84a1c45e821d6444b1d2f0e69b743e#2aa7f9d0ee84a1c45e821d6444b1d2f0e69b743e" +source = "git+https://github.com/oxidecomputer/propolis?rev=d6cd9573a8134d6d9b1aa26e9adc10a823642275#d6cd9573a8134d6d9b1aa26e9adc10a823642275" dependencies = [ "anyhow", "atty", @@ -11083,7 +11083,7 @@ dependencies = [ [[package]] name = "propolis_api_types" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/propolis?rev=2aa7f9d0ee84a1c45e821d6444b1d2f0e69b743e#2aa7f9d0ee84a1c45e821d6444b1d2f0e69b743e" +source = "git+https://github.com/oxidecomputer/propolis?rev=d6cd9573a8134d6d9b1aa26e9adc10a823642275#d6cd9573a8134d6d9b1aa26e9adc10a823642275" dependencies = [ "crucible-client-types", "propolis_types", @@ -11096,7 +11096,7 @@ dependencies = [ [[package]] name = "propolis_types" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/propolis?rev=2aa7f9d0ee84a1c45e821d6444b1d2f0e69b743e#2aa7f9d0ee84a1c45e821d6444b1d2f0e69b743e" +source = "git+https://github.com/oxidecomputer/propolis?rev=d6cd9573a8134d6d9b1aa26e9adc10a823642275#d6cd9573a8134d6d9b1aa26e9adc10a823642275" dependencies = [ "schemars 0.8.22", "serde", @@ -13040,7 +13040,7 @@ dependencies = [ "omicron-workspace-hack", "oxnet", "progenitor 0.10.0", - "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=2aa7f9d0ee84a1c45e821d6444b1d2f0e69b743e)", + "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=d6cd9573a8134d6d9b1aa26e9adc10a823642275)", "regress", "reqwest", "schemars 0.8.22", diff --git a/Cargo.toml b/Cargo.toml index ff9c75098fe..a56a7323d3b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -680,10 +680,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 = "2aa7f9d0ee84a1c45e821d6444b1d2f0e69b743e" } -propolis_api_types = { git = "https://github.com/oxidecomputer/propolis", rev = "2aa7f9d0ee84a1c45e821d6444b1d2f0e69b743e" } -propolis-client = { git = "https://github.com/oxidecomputer/propolis", rev = "2aa7f9d0ee84a1c45e821d6444b1d2f0e69b743e" } -propolis-mock-server = { git = "https://github.com/oxidecomputer/propolis", rev = "2aa7f9d0ee84a1c45e821d6444b1d2f0e69b743e" } +bhyve_api = { git = "https://github.com/oxidecomputer/propolis", rev = "d6cd9573a8134d6d9b1aa26e9adc10a823642275" } +propolis_api_types = { git = "https://github.com/oxidecomputer/propolis", rev = "d6cd9573a8134d6d9b1aa26e9adc10a823642275" } +propolis-client = { git = "https://github.com/oxidecomputer/propolis", rev = "d6cd9573a8134d6d9b1aa26e9adc10a823642275" } +propolis-mock-server = { git = "https://github.com/oxidecomputer/propolis", rev = "d6cd9573a8134d6d9b1aa26e9adc10a823642275" } # NOTE: see above! proptest = "1.7.0" qorb = "0.4.1" diff --git a/package-manifest.toml b/package-manifest.toml index 689958cf15e..bf4b3878438 100644 --- a/package-manifest.toml +++ b/package-manifest.toml @@ -650,10 +650,10 @@ service_name = "propolis-server" only_for_targets.image = "standard" source.type = "prebuilt" source.repo = "propolis" -source.commit = "2aa7f9d0ee84a1c45e821d6444b1d2f0e69b743e" +source.commit = "d6cd9573a8134d6d9b1aa26e9adc10a823642275" # The SHA256 digest is automatically posted to: # https://buildomat.eng.oxide.computer/public/file/oxidecomputer/propolis/image//propolis-server.sha256.txt -source.sha256 = "32bd7ec72221b16c1b4705192e13f665deea9d9b4a1c80b2bd558463d94f5f6e" +source.sha256 = "6705a397f4dde7e4a8213eb85a555a00d4670755058548d64e86e38b56dde645" output.type = "zone" [package.mg-ddm-gz] From 3a1b510d731e4d49dbdcdb622ec7b816a34ab47d Mon Sep 17 00:00:00 2001 From: iximeow Date: Thu, 29 Jan 2026 20:35:45 +0000 Subject: [PATCH 2/2] make propolis recent enough to not have the bug, instead --- Cargo.lock | 18 +++++++++--------- Cargo.toml | 8 ++++---- package-manifest.toml | 4 ++-- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3b6a7d338af..466064a950c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -734,7 +734,7 @@ dependencies = [ [[package]] name = "bhyve_api" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/propolis?rev=d6cd9573a8134d6d9b1aa26e9adc10a823642275#d6cd9573a8134d6d9b1aa26e9adc10a823642275" +source = "git+https://github.com/oxidecomputer/propolis?rev=7d4e2a49b9ef7750140bdddd2391d24d4729ec8c#7d4e2a49b9ef7750140bdddd2391d24d4729ec8c" dependencies = [ "bhyve_api_sys", "libc", @@ -744,7 +744,7 @@ dependencies = [ [[package]] name = "bhyve_api_sys" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/propolis?rev=d6cd9573a8134d6d9b1aa26e9adc10a823642275#d6cd9573a8134d6d9b1aa26e9adc10a823642275" +source = "git+https://github.com/oxidecomputer/propolis?rev=7d4e2a49b9ef7750140bdddd2391d24d4729ec8c#7d4e2a49b9ef7750140bdddd2391d24d4729ec8c" dependencies = [ "libc", "strum 0.26.3", @@ -8465,7 +8465,7 @@ dependencies = [ "pq-sys", "pretty_assertions", "progenitor-client 0.10.0", - "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=d6cd9573a8134d6d9b1aa26e9adc10a823642275)", + "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=7d4e2a49b9ef7750140bdddd2391d24d4729ec8c)", "qorb", "rand 0.9.2", "range-requests", @@ -8905,7 +8905,7 @@ dependencies = [ "oxnet", "pretty_assertions", "progenitor 0.10.0", - "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=d6cd9573a8134d6d9b1aa26e9adc10a823642275)", + "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=7d4e2a49b9ef7750140bdddd2391d24d4729ec8c)", "propolis-mock-server", "propolis_api_types", "rand 0.9.2", @@ -10994,7 +10994,7 @@ dependencies = [ [[package]] name = "propolis-client" version = "0.1.0" -source = "git+https://github.com/oxidecomputer/propolis?rev=d6cd9573a8134d6d9b1aa26e9adc10a823642275#d6cd9573a8134d6d9b1aa26e9adc10a823642275" +source = "git+https://github.com/oxidecomputer/propolis?rev=7d4e2a49b9ef7750140bdddd2391d24d4729ec8c#7d4e2a49b9ef7750140bdddd2391d24d4729ec8c" dependencies = [ "async-trait", "base64 0.21.7", @@ -11039,7 +11039,7 @@ dependencies = [ [[package]] name = "propolis-mock-server" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/propolis?rev=d6cd9573a8134d6d9b1aa26e9adc10a823642275#d6cd9573a8134d6d9b1aa26e9adc10a823642275" +source = "git+https://github.com/oxidecomputer/propolis?rev=7d4e2a49b9ef7750140bdddd2391d24d4729ec8c#7d4e2a49b9ef7750140bdddd2391d24d4729ec8c" dependencies = [ "anyhow", "atty", @@ -11083,7 +11083,7 @@ dependencies = [ [[package]] name = "propolis_api_types" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/propolis?rev=d6cd9573a8134d6d9b1aa26e9adc10a823642275#d6cd9573a8134d6d9b1aa26e9adc10a823642275" +source = "git+https://github.com/oxidecomputer/propolis?rev=7d4e2a49b9ef7750140bdddd2391d24d4729ec8c#7d4e2a49b9ef7750140bdddd2391d24d4729ec8c" dependencies = [ "crucible-client-types", "propolis_types", @@ -11096,7 +11096,7 @@ dependencies = [ [[package]] name = "propolis_types" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/propolis?rev=d6cd9573a8134d6d9b1aa26e9adc10a823642275#d6cd9573a8134d6d9b1aa26e9adc10a823642275" +source = "git+https://github.com/oxidecomputer/propolis?rev=7d4e2a49b9ef7750140bdddd2391d24d4729ec8c#7d4e2a49b9ef7750140bdddd2391d24d4729ec8c" dependencies = [ "schemars 0.8.22", "serde", @@ -13040,7 +13040,7 @@ dependencies = [ "omicron-workspace-hack", "oxnet", "progenitor 0.10.0", - "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=d6cd9573a8134d6d9b1aa26e9adc10a823642275)", + "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=7d4e2a49b9ef7750140bdddd2391d24d4729ec8c)", "regress", "reqwest", "schemars 0.8.22", diff --git a/Cargo.toml b/Cargo.toml index a56a7323d3b..62d637daa13 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -680,10 +680,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 = "d6cd9573a8134d6d9b1aa26e9adc10a823642275" } -propolis_api_types = { git = "https://github.com/oxidecomputer/propolis", rev = "d6cd9573a8134d6d9b1aa26e9adc10a823642275" } -propolis-client = { git = "https://github.com/oxidecomputer/propolis", rev = "d6cd9573a8134d6d9b1aa26e9adc10a823642275" } -propolis-mock-server = { git = "https://github.com/oxidecomputer/propolis", rev = "d6cd9573a8134d6d9b1aa26e9adc10a823642275" } +bhyve_api = { git = "https://github.com/oxidecomputer/propolis", rev = "7d4e2a49b9ef7750140bdddd2391d24d4729ec8c" } +propolis_api_types = { git = "https://github.com/oxidecomputer/propolis", rev = "7d4e2a49b9ef7750140bdddd2391d24d4729ec8c" } +propolis-client = { git = "https://github.com/oxidecomputer/propolis", rev = "7d4e2a49b9ef7750140bdddd2391d24d4729ec8c" } +propolis-mock-server = { git = "https://github.com/oxidecomputer/propolis", rev = "7d4e2a49b9ef7750140bdddd2391d24d4729ec8c" } # NOTE: see above! proptest = "1.7.0" qorb = "0.4.1" diff --git a/package-manifest.toml b/package-manifest.toml index bf4b3878438..2e878b1f046 100644 --- a/package-manifest.toml +++ b/package-manifest.toml @@ -650,10 +650,10 @@ service_name = "propolis-server" only_for_targets.image = "standard" source.type = "prebuilt" source.repo = "propolis" -source.commit = "d6cd9573a8134d6d9b1aa26e9adc10a823642275" +source.commit = "7d4e2a49b9ef7750140bdddd2391d24d4729ec8c" # The SHA256 digest is automatically posted to: # https://buildomat.eng.oxide.computer/public/file/oxidecomputer/propolis/image//propolis-server.sha256.txt -source.sha256 = "6705a397f4dde7e4a8213eb85a555a00d4670755058548d64e86e38b56dde645" +source.sha256 = "0d5998ffd44f7103e5012a06ba1280260f6c8ed6f48bb2f58fcc70cbc96cb873" output.type = "zone" [package.mg-ddm-gz]