@@ -165,7 +165,7 @@ async fn nvme_relay(config: PetriVmBuilder<OpenVmmPetriBackend>) -> Result<(), a
165165///
166166/// Use the private pool override to test the private pool dma path.
167167#[ openvmm_test( openhcl_uefi_x64[ nvme] ( vhd( ubuntu_2504_server_x64) ) ) ]
168- async fn nvme_relay_private_pool (
168+ async fn nvme_relay_explicit_private_pool (
169169 config : PetriVmBuilder < OpenVmmPetriBackend > ,
170170) -> Result < ( ) , anyhow:: Error > {
171171 // Number of pages to reserve as a private pool.
@@ -183,14 +183,43 @@ async fn nvme_relay_private_pool(
183183 . await
184184}
185185
186+ /// Test an OpenHCL uefi VM with a NVME disk assigned to VTL2 that boots
187+ /// linux, with vmbus relay. This should expose a disk to VTL0 via vmbus.
188+ ///
189+ /// There _should_ be enough private pool memory for the NVMe driver to
190+ /// allocate all of its buffers contiguously.
191+ #[ cfg( debug_assertions) ]
192+ #[ openvmm_test( openhcl_uefi_x64[ nvme] ( vhd( ubuntu_2504_server_x64) ) ) ]
193+ async fn nvme_relay_heuristic_16vp_768mb_heavy (
194+ config : PetriVmBuilder < OpenVmmPetriBackend > ,
195+ ) -> Result < ( ) , anyhow:: Error > {
196+ nvme_relay_test_core (
197+ config,
198+ "" ,
199+ Some ( ProcessorTopology {
200+ vp_count : 16 ,
201+ ..Default :: default ( )
202+ } ) ,
203+ Some ( hvlite_defs:: config:: Vtl2BaseAddressType :: Vtl2Allocate {
204+ size : Some ( 768 * 1024 * 1024 ) ,
205+ } ) ,
206+ Some ( ExpectedNvmeDeviceProperties {
207+ save_restore_supported : true ,
208+ qsize : 256 , // private pool should allow contiguous allocations.
209+ nvme_keepalive : false ,
210+ } ) ,
211+ )
212+ . await
213+ }
214+
186215/// Test an OpenHCL uefi VM with a NVME disk assigned to VTL2 that boots
187216/// linux, with vmbus relay. This should expose a disk to VTL0 via vmbus.
188217///
189218/// There _should_ be enough private pool memory for the NVMe driver to
190219/// allocate all of its buffers contiguously.
191220#[ cfg( not( debug_assertions) ) ]
192221#[ openvmm_test( openhcl_uefi_x64[ nvme] ( vhd( ubuntu_2504_server_x64) ) ) ]
193- async fn nvme_relay_private_16vp_256mb (
222+ async fn nvme_relay_heuristic_release_16vp_256mb_heavy (
194223 config : PetriVmBuilder < OpenVmmPetriBackend > ,
195224) -> Result < ( ) , anyhow:: Error > {
196225 nvme_relay_test_core (
@@ -222,7 +251,7 @@ async fn nvme_relay_private_16vp_256mb(
222251/// of the heuristics exactly, but there should still be private pool memory.
223252#[ cfg( not( debug_assertions) ) ]
224253#[ openvmm_test( openhcl_uefi_x64[ nvme] ( vhd( ubuntu_2504_server_x64) ) ) ]
225- async fn nvme_relay_private_32vp_500mb (
254+ async fn nvme_relay_heuristic_release_32vp_500mb_very_heavy (
226255 config : PetriVmBuilder < OpenVmmPetriBackend > ,
227256) -> Result < ( ) , anyhow:: Error > {
228257 nvme_relay_test_core (
0 commit comments