@@ -598,11 +598,12 @@ static bool s_should_trim_for_reserve_synced(
598598 return true;
599599}
600600
601- static size_t s_align_up_to_block_size (size_t size , size_t block_size , size_t * out ) {
601+ static int s_align_up_to_block_size (size_t size , size_t block_size , size_t * out ) {
602602 AWS_FATAL_ASSERT (block_size > 0 );
603603 size_t remainder = size % block_size ;
604604 if (remainder == 0 )
605- return size ;
605+ * out = size ;
606+ return AWS_OP_SUCCESS ;
606607
607608 size_t sub = 0 ;
608609 if (!aws_sub_size_checked (block_size , remainder , & sub )) {
@@ -647,6 +648,7 @@ struct aws_s3_default_buffer_ticket *s_try_reserve_synced(
647648 overall_taken -= buffer_pool -> forced_used - max_impact_of_forced_on_limit ;
648649 }
649650
651+ AWS_LOGF_DEBUG (0 , "foo" );
650652 if ((meta .size + overall_taken ) <= buffer_pool -> mem_limit ) {
651653 ticket = aws_mem_calloc (buffer_pool -> base_allocator , 1 , sizeof (struct aws_s3_default_buffer_ticket ));
652654 ticket -> size = meta .size ;
@@ -660,6 +662,7 @@ struct aws_s3_default_buffer_ticket *s_try_reserve_synced(
660662 } else if (meta .size <= buffer_pool -> primary_size_cutoff ) {
661663 /* This needs to be smarter. Currently if primary req size is below limit, it will allocate full block,
662664 which can be above limit. */
665+ AWS_LOGF_DEBUG (0 , "foo1" );
663666 if (meta .size <= buffer_pool -> primary_size_min_cutoff ) {
664667 ticket -> reserved_from = AWS_S3_BUFFER_POOL_RESERVED_FROM_SECONDARY ;
665668 buffer_pool -> secondary_reserved += meta .size ;
@@ -683,6 +686,7 @@ struct aws_s3_default_buffer_ticket *s_try_reserve_synced(
683686 }
684687 }
685688 } else {
689+ AWS_LOGF_DEBUG (0 , "foo2" );
686690 ticket -> reserved_from = AWS_S3_BUFFER_POOL_RESERVED_FROM_SECONDARY ;
687691 buffer_pool -> secondary_reserved += meta .size ;
688692 }
@@ -710,6 +714,13 @@ struct aws_future_s3_buffer_ticket *aws_s3_default_buffer_pool_reserve(
710714 ticket -> forced = true;
711715 ticket -> pool = buffer_pool_wrapper ;
712716
717+ if (meta .size <= buffer_pool -> primary_size_cutoff &&
718+ meta .size >= buffer_pool -> primary_size_min_cutoff ) {
719+ ticket -> reserved_from = AWS_S3_BUFFER_POOL_RESERVED_FROM_PRIMARY ;
720+ } else {
721+ ticket -> reserved_from = AWS_S3_BUFFER_POOL_RESERVED_FROM_SECONDARY ;
722+ }
723+
713724 } else {
714725 ticket = s_try_reserve_synced (buffer_pool_wrapper , meta );
715726 }
0 commit comments