@@ -88,10 +88,11 @@ var _ = Describe("TestStatisticHandler", func() {
8888
8989 // Generate KVVMI with "dynamic cores" specifics: cores and sockets are intentionally
9090 // swapped to bypass kvvm validations.
91- newKVVMIHotplug := func (cores , sockets , maxCores int , cpuFraction , memory , maxMemory string ) * virtv1.VirtualMachineInstance {
91+ newKVVMIHotplug := func (cores , sockets , maxCores int , cpuFraction , memory string ) * virtv1.VirtualMachineInstance {
9292 kvvmi := newEmptyKVVMI (vmName , vmNamespace )
9393 memoryGuest := resource .MustParse (memory )
94- memoryMaxGuest := resource .MustParse (maxMemory )
94+
95+ memoryMaxGuest := resource .NewQuantity (kvbuilder .MaxMemorySizeForHotplug , resource .BinarySI )
9596
9697 kvvmi .SetAnnotations (map [string ]string {
9798 kvbuilder .CPUResourcesRequestsFractionAnnotation : cpuFraction ,
@@ -107,7 +108,7 @@ var _ = Describe("TestStatisticHandler", func() {
107108 },
108109 Memory : & virtv1.Memory {
109110 Guest : & memoryGuest ,
110- MaxGuest : & memoryMaxGuest ,
111+ MaxGuest : memoryMaxGuest ,
111112 },
112113 Resources : virtv1.ResourceRequirements {
113114 Requests : corev1.ResourceList {
@@ -261,7 +262,7 @@ var _ = Describe("TestStatisticHandler", func() {
261262 ),
262263 Entry ("Hotplug enabled: 8 cores, 100% fraction, 2 Gi" ,
263264 newVM (8 , ptr .To ("100%" ), "2Gi" ),
264- newKVVMIHotplug (8 , 1 , 16 , "100" , "2Gi" , "256Gi" ),
265+ newKVVMIHotplug (8 , 1 , 16 , "100" , "2Gi" ),
265266 newPod ("8" , "8" , "2Gi" , "2Gi" ),
266267 expectedValues {
267268 CPUCores : 8 ,
@@ -278,7 +279,7 @@ var _ = Describe("TestStatisticHandler", func() {
278279 ),
279280 Entry ("Hotplug enabled: 8 cores, 25% fraction, 2 Gi" ,
280281 newVM (8 , ptr .To ("25%" ), "2Gi" ),
281- newKVVMIHotplug (8 , 1 , 16 , "25" , "2Gi" , "256Gi" ),
282+ newKVVMIHotplug (8 , 1 , 16 , "25" , "2Gi" ),
282283 newPod ("2" , "8" , "2Gi" , "2Gi" ),
283284 expectedValues {
284285 CPUCores : 8 ,
@@ -295,7 +296,7 @@ var _ = Describe("TestStatisticHandler", func() {
295296 ),
296297 Entry ("Hotplug enabled: 1 core, 25% fraction, 2 Gi" ,
297298 newVM (1 , ptr .To ("25%" ), "2Gi" ),
298- newKVVMIHotplug (1 , 1 , 16 , "25" , "2Gi" , "256Gi" ),
299+ newKVVMIHotplug (1 , 1 , 16 , "25" , "2Gi" ),
299300 newPod ("250m" , "1" , "2Gi" , "2Gi" ),
300301 expectedValues {
301302 CPUCores : 1 ,
@@ -310,6 +311,74 @@ var _ = Describe("TestStatisticHandler", func() {
310311 MemoryRuntimeOverhead : 0 ,
311312 },
312313 ),
314+ Entry ("Hotplug enabled: 24 cores, 25% fraction, 2 Gi" ,
315+ newVM (1 , ptr .To ("25%" ), "2Gi" ),
316+ newKVVMIHotplug (12 , 2 , 16 , "25" , "2Gi" ),
317+ newPod ("6" , "24" , "2Gi" , "2Gi" ),
318+ expectedValues {
319+ CPUCores : 24 ,
320+ CPUCoreFraction : "25%" ,
321+ CPURequestedCores : 6000 ,
322+ CPURuntimeOverhead : 0 ,
323+
324+ TopologyCoresPerSocket : 12 ,
325+ TopologySockets : 2 ,
326+
327+ MemorySize : 2147483648 ,
328+ MemoryRuntimeOverhead : 0 ,
329+ },
330+ ),
331+ Entry ("Hotplug enabled: max cores, 24 cores, 50% fraction, 2 Gi" ,
332+ newVM (1 , ptr .To ("50%" ), "2Gi" ),
333+ newKVVMIHotplug (32 , 8 , 32 , "50" , "2Gi" ),
334+ newPod ("6" , "24" , "2Gi" , "2Gi" ),
335+ expectedValues {
336+ CPUCores : 256 ,
337+ CPUCoreFraction : "50%" ,
338+ CPURequestedCores : 128000 ,
339+ CPURuntimeOverhead : 0 ,
340+
341+ TopologyCoresPerSocket : 32 ,
342+ TopologySockets : 8 ,
343+
344+ MemorySize : 2147483648 ,
345+ MemoryRuntimeOverhead : 0 ,
346+ },
347+ ),
348+ Entry ("Memory overhead for Pod with equal limits and requests" ,
349+ newVM (1 , ptr .To ("25%" ), "2Gi" ),
350+ newKVVMIHotplug (1 , 1 , 16 , "25" , "3Gi" ),
351+ newPod ("250m" , "1" , "4Gi" , "4Gi" ),
352+ expectedValues {
353+ CPUCores : 1 ,
354+ CPUCoreFraction : "25%" ,
355+ CPURequestedCores : 250 ,
356+ CPURuntimeOverhead : 0 ,
357+
358+ TopologyCoresPerSocket : 1 ,
359+ TopologySockets : 1 ,
360+
361+ MemorySize : 3 * 1024 * 1024 * 1024 ,
362+ MemoryRuntimeOverhead : 1024 * 1024 * 1024 ,
363+ },
364+ ),
365+ Entry ("Memory overhead for Pod with limits greater than requests" ,
366+ newVM (1 , ptr .To ("25%" ), "2Gi" ),
367+ newKVVMIHotplug (1 , 1 , 16 , "25" , "3Gi" ),
368+ newPod ("250m" , "1" , "4Gi" , "4156Mi" ), // Overhead is 1Gi+60Mi
369+ expectedValues {
370+ CPUCores : 1 ,
371+ CPUCoreFraction : "25%" ,
372+ CPURequestedCores : 250 ,
373+ CPURuntimeOverhead : 0 ,
374+
375+ TopologyCoresPerSocket : 1 ,
376+ TopologySockets : 1 ,
377+
378+ MemorySize : 3 * 1024 * 1024 * 1024 ,
379+ MemoryRuntimeOverhead : 1024 * 1024 * 1024 + 60 * 1024 * 1024 ,
380+ },
381+ ),
313382 )
314383})
315384
0 commit comments