@@ -5406,7 +5406,7 @@ pub(crate) mod up_test {
5406
5406
assert ! ( guest. consume_req( ) . await . is_none( ) ) ;
5407
5407
5408
5408
// If no IOP limit set, don't track it
5409
- assert_eq ! ( * guest. iop_tokens. lock( ) . await , 0 ) ;
5409
+ assert_eq ! ( * guest. iop_tokens. lock( ) . unwrap ( ) , 0 ) ;
5410
5410
5411
5411
Ok ( ( ) )
5412
5412
}
@@ -5447,21 +5447,21 @@ pub(crate) mod up_test {
5447
5447
// remains in the queue.
5448
5448
assert ! ( guest. consume_req( ) . await . is_none( ) ) ;
5449
5449
assert ! ( !guest. reqs. lock( ) . await . is_empty( ) ) ;
5450
- assert_eq ! ( * guest. iop_tokens. lock( ) . await , 2 ) ;
5450
+ assert_eq ! ( * guest. iop_tokens. lock( ) . unwrap ( ) , 2 ) ;
5451
5451
5452
5452
// Replenish one token, meaning next read can be consumed
5453
- guest. leak_iop_tokens ( 1 ) . await ;
5454
- assert_eq ! ( * guest. iop_tokens. lock( ) . await , 1 ) ;
5453
+ guest. leak_iop_tokens ( 1 ) ;
5454
+ assert_eq ! ( * guest. iop_tokens. lock( ) . unwrap ( ) , 1 ) ;
5455
5455
5456
5456
assert ! ( guest. consume_req( ) . await . is_some( ) ) ;
5457
5457
assert ! ( guest. reqs. lock( ) . await . is_empty( ) ) ;
5458
- assert_eq ! ( * guest. iop_tokens. lock( ) . await , 2 ) ;
5458
+ assert_eq ! ( * guest. iop_tokens. lock( ) . unwrap ( ) , 2 ) ;
5459
5459
5460
- guest. leak_iop_tokens ( 2 ) . await ;
5461
- assert_eq ! ( * guest. iop_tokens. lock( ) . await , 0 ) ;
5460
+ guest. leak_iop_tokens ( 2 ) ;
5461
+ assert_eq ! ( * guest. iop_tokens. lock( ) . unwrap ( ) , 0 ) ;
5462
5462
5463
- guest. leak_iop_tokens ( 16000 ) . await ;
5464
- assert_eq ! ( * guest. iop_tokens. lock( ) . await , 0 ) ;
5463
+ guest. leak_iop_tokens ( 16000 ) ;
5464
+ assert_eq ! ( * guest. iop_tokens. lock( ) . unwrap ( ) , 0 ) ;
5465
5465
5466
5466
Ok ( ( ) )
5467
5467
}
@@ -5535,21 +5535,21 @@ pub(crate) mod up_test {
5535
5535
// remains in the queue.
5536
5536
assert ! ( guest. consume_req( ) . await . is_none( ) ) ;
5537
5537
assert ! ( !guest. reqs. lock( ) . await . is_empty( ) ) ;
5538
- assert_eq ! ( * guest. bw_tokens. lock( ) . await , 1024 * 1024 ) ;
5538
+ assert_eq ! ( * guest. bw_tokens. lock( ) . unwrap ( ) , 1024 * 1024 ) ;
5539
5539
5540
5540
// Replenish enough tokens, meaning next read can be consumed
5541
- guest. leak_bw_tokens ( 1024 * 1024 / 2 ) . await ;
5542
- assert_eq ! ( * guest. bw_tokens. lock( ) . await , 1024 * 1024 / 2 ) ;
5541
+ guest. leak_bw_tokens ( 1024 * 1024 / 2 ) ;
5542
+ assert_eq ! ( * guest. bw_tokens. lock( ) . unwrap ( ) , 1024 * 1024 / 2 ) ;
5543
5543
5544
5544
assert ! ( guest. consume_req( ) . await . is_some( ) ) ;
5545
5545
assert ! ( guest. reqs. lock( ) . await . is_empty( ) ) ;
5546
- assert_eq ! ( * guest. bw_tokens. lock( ) . await , 1024 * 1024 ) ;
5546
+ assert_eq ! ( * guest. bw_tokens. lock( ) . unwrap ( ) , 1024 * 1024 ) ;
5547
5547
5548
- guest. leak_bw_tokens ( 1024 * 1024 ) . await ;
5549
- assert_eq ! ( * guest. bw_tokens. lock( ) . await , 0 ) ;
5548
+ guest. leak_bw_tokens ( 1024 * 1024 ) ;
5549
+ assert_eq ! ( * guest. bw_tokens. lock( ) . unwrap ( ) , 0 ) ;
5550
5550
5551
- guest. leak_bw_tokens ( 1024 * 1024 * 1024 ) . await ;
5552
- assert_eq ! ( * guest. bw_tokens. lock( ) . await , 0 ) ;
5551
+ guest. leak_bw_tokens ( 1024 * 1024 * 1024 ) ;
5552
+ assert_eq ! ( * guest. bw_tokens. lock( ) . unwrap ( ) , 0 ) ;
5553
5553
5554
5554
Ok ( ( ) )
5555
5555
}
@@ -5618,21 +5618,21 @@ pub(crate) mod up_test {
5618
5618
assert ! ( guest. consume_req( ) . await . is_none( ) ) ;
5619
5619
5620
5620
// Assert we've hit the BW limit before IOPS
5621
- assert_eq ! ( * guest. iop_tokens. lock( ) . await , 438 ) ; // 437.5 rounded up
5622
- assert_eq ! ( * guest. bw_tokens. lock( ) . await , 7000 * 1024 ) ;
5621
+ assert_eq ! ( * guest. iop_tokens. lock( ) . unwrap ( ) , 438 ) ; // 437.5 rounded up
5622
+ assert_eq ! ( * guest. bw_tokens. lock( ) . unwrap ( ) , 7000 * 1024 ) ;
5623
5623
5624
- guest. leak_iop_tokens ( 438 ) . await ;
5625
- guest. leak_bw_tokens ( 7000 * 1024 ) . await ;
5624
+ guest. leak_iop_tokens ( 438 ) ;
5625
+ guest. leak_bw_tokens ( 7000 * 1024 ) ;
5626
5626
5627
5627
assert ! ( guest. consume_req( ) . await . is_some( ) ) ;
5628
5628
assert ! ( guest. reqs. lock( ) . await . is_empty( ) ) ;
5629
5629
5630
5630
// Back to zero
5631
- guest. leak_iop_tokens ( 438 ) . await ;
5632
- guest. leak_bw_tokens ( 7000 * 1024 ) . await ;
5631
+ guest. leak_iop_tokens ( 438 ) ;
5632
+ guest. leak_bw_tokens ( 7000 * 1024 ) ;
5633
5633
5634
- assert_eq ! ( * guest. iop_tokens. lock( ) . await , 0 ) ;
5635
- assert_eq ! ( * guest. bw_tokens. lock( ) . await , 0 ) ;
5634
+ assert_eq ! ( * guest. iop_tokens. lock( ) . unwrap ( ) , 0 ) ;
5635
+ assert_eq ! ( * guest. bw_tokens. lock( ) . unwrap ( ) , 0 ) ;
5636
5636
5637
5637
// Validate that IOP limit activates by sending 501 1024b IOs
5638
5638
for _ in 0 ..500 {
@@ -5654,17 +5654,17 @@ pub(crate) mod up_test {
5654
5654
assert ! ( guest. consume_req( ) . await . is_none( ) ) ;
5655
5655
5656
5656
// Assert we've hit the IOPS limit
5657
- assert_eq ! ( * guest. iop_tokens. lock( ) . await , 500 ) ;
5658
- assert_eq ! ( * guest. bw_tokens. lock( ) . await , 500 * 1024 ) ;
5657
+ assert_eq ! ( * guest. iop_tokens. lock( ) . unwrap ( ) , 500 ) ;
5658
+ assert_eq ! ( * guest. bw_tokens. lock( ) . unwrap ( ) , 500 * 1024 ) ;
5659
5659
5660
5660
// Back to zero
5661
- guest. leak_iop_tokens ( 500 ) . await ;
5662
- guest. leak_bw_tokens ( 500 * 1024 ) . await ;
5661
+ guest. leak_iop_tokens ( 500 ) ;
5662
+ guest. leak_bw_tokens ( 500 * 1024 ) ;
5663
5663
guest. reqs . lock ( ) . await . clear ( ) ;
5664
5664
5665
5665
assert ! ( guest. reqs. lock( ) . await . is_empty( ) ) ;
5666
- assert_eq ! ( * guest. iop_tokens. lock( ) . await , 0 ) ;
5667
- assert_eq ! ( * guest. bw_tokens. lock( ) . await , 0 ) ;
5666
+ assert_eq ! ( * guest. iop_tokens. lock( ) . unwrap ( ) , 0 ) ;
5667
+ assert_eq ! ( * guest. bw_tokens. lock( ) . unwrap ( ) , 0 ) ;
5668
5668
5669
5669
// From
5670
5670
// https://aws.amazon.com/premiumsupport/knowledge-center/ebs-calculate-optimal-io-size/:
@@ -5680,8 +5680,8 @@ pub(crate) mod up_test {
5680
5680
// I mean, it makes sense: now we submit 500 of those to reach both
5681
5681
// limits at the same time.
5682
5682
for i in 0 ..500 {
5683
- assert_eq ! ( * guest. iop_tokens. lock( ) . await , i) ;
5684
- assert_eq ! ( * guest. bw_tokens. lock( ) . await , i * optimal_io_size) ;
5683
+ assert_eq ! ( * guest. iop_tokens. lock( ) . unwrap ( ) , i) ;
5684
+ assert_eq ! ( * guest. bw_tokens. lock( ) . unwrap ( ) , i * optimal_io_size) ;
5685
5685
5686
5686
let _ = guest
5687
5687
. send ( BlockOp :: Read {
@@ -5693,8 +5693,8 @@ pub(crate) mod up_test {
5693
5693
assert ! ( guest. consume_req( ) . await . is_some( ) ) ;
5694
5694
}
5695
5695
5696
- assert_eq ! ( * guest. iop_tokens. lock( ) . await , 500 ) ;
5697
- assert_eq ! ( * guest. bw_tokens. lock( ) . await , 500 * optimal_io_size) ;
5696
+ assert_eq ! ( * guest. iop_tokens. lock( ) . unwrap ( ) , 500 ) ;
5697
+ assert_eq ! ( * guest. bw_tokens. lock( ) . unwrap ( ) , 500 * optimal_io_size) ;
5698
5698
5699
5699
Ok ( ( ) )
5700
5700
}
@@ -5723,8 +5723,8 @@ pub(crate) mod up_test {
5723
5723
} )
5724
5724
. await ;
5725
5725
5726
- assert_eq ! ( * guest. iop_tokens. lock( ) . await , 0 ) ;
5727
- assert_eq ! ( * guest. bw_tokens. lock( ) . await , 0 ) ;
5726
+ assert_eq ! ( * guest. iop_tokens. lock( ) . unwrap ( ) , 0 ) ;
5727
+ assert_eq ! ( * guest. bw_tokens. lock( ) . unwrap ( ) , 0 ) ;
5728
5728
5729
5729
// Even though the first IO is larger than the bandwidth and IOP limit,
5730
5730
// it should still succeed. The next IO should not, even if it consumes
@@ -5734,25 +5734,25 @@ pub(crate) mod up_test {
5734
5734
assert ! ( guest. consume_req( ) . await . is_some( ) ) ;
5735
5735
assert ! ( guest. consume_req( ) . await . is_none( ) ) ;
5736
5736
5737
- assert_eq ! ( * guest. iop_tokens. lock( ) . await , 20 ) ;
5738
- assert_eq ! ( * guest. bw_tokens. lock( ) . await , 10 * 1024 * 1024 ) ;
5737
+ assert_eq ! ( * guest. iop_tokens. lock( ) . unwrap ( ) , 20 ) ;
5738
+ assert_eq ! ( * guest. bw_tokens. lock( ) . unwrap ( ) , 10 * 1024 * 1024 ) ;
5739
5739
5740
5740
// Bandwidth trigger is going to be larger and need more leaking to get
5741
5741
// down to a point where the zero sized IO can fire.
5742
5742
for _ in 0 ..9 {
5743
- guest. leak_iop_tokens ( 10 ) . await ;
5744
- guest. leak_bw_tokens ( 1024 * 1024 ) . await ;
5743
+ guest. leak_iop_tokens ( 10 ) ;
5744
+ guest. leak_bw_tokens ( 1024 * 1024 ) ;
5745
5745
5746
5746
assert ! ( guest. consume_req( ) . await . is_none( ) ) ;
5747
5747
}
5748
5748
5749
- assert_eq ! ( * guest. iop_tokens. lock( ) . await , 0 ) ;
5750
- assert_eq ! ( * guest. bw_tokens. lock( ) . await , 1024 * 1024 ) ;
5749
+ assert_eq ! ( * guest. iop_tokens. lock( ) . unwrap ( ) , 0 ) ;
5750
+ assert_eq ! ( * guest. bw_tokens. lock( ) . unwrap ( ) , 1024 * 1024 ) ;
5751
5751
5752
5752
assert ! ( guest. consume_req( ) . await . is_none( ) ) ;
5753
5753
5754
- guest. leak_iop_tokens ( 10 ) . await ;
5755
- guest. leak_bw_tokens ( 1024 * 1024 ) . await ;
5754
+ guest. leak_iop_tokens ( 10 ) ;
5755
+ guest. leak_bw_tokens ( 1024 * 1024 ) ;
5756
5756
5757
5757
// We've leaked 10 KiB worth, it should fire now!
5758
5758
assert ! ( guest. consume_req( ) . await . is_some( ) ) ;
0 commit comments