block_size * 256, (int64_t) 0, &extents));
alloc->init_add_free(0, block_size * 256);
alloc->init_add_free(block_size * 512, block_size * 256);
+ extents.clear();
EXPECT_EQ(alloc->reserve(block_size * 512), 0);
EXPECT_EQ(-ENOSPC,
alloc->allocate(512 * (uint64_t)block_size,
ASSERT_EQ(1u, extents.size());
ASSERT_EQ(extents[0].offset, (uint64_t) zone_size);
+ extents.clear();
allocated = alloc->allocate(1, 1, 1, zone_size * 2 - 1, &extents);
EXPECT_EQ(1, allocated);
ASSERT_EQ(1u, extents.size());
/*
* Wrap around with hint
*/
+ extents.clear();
allocated = alloc->allocate(zone_size * 2, 1, 1, blocks - zone_size * 2,
&extents);
ASSERT_EQ(zone_size * 2, allocated);
EXPECT_EQ(zone_size * 2, (int)extents.size());
EXPECT_EQ((int64_t)extents[0].offset, blocks - zone_size * 2);
+ extents.clear();
allocated = alloc->allocate(zone_size, 1, 1, blocks - zone_size, &extents);
ASSERT_EQ(zone_size, allocated);
EXPECT_EQ(zone_size, (int)extents.size());
bmap_test_assert(lock);
int64_t blk_size = 1024;
- AllocExtentVector extents = AllocExtentVector
- (zone->size() / 2, AllocExtent(-1, -1));
-
+ AllocExtentVector extents;
+ cout << extents.size() << std::endl;
+ cout << (int)extents.empty() << std::endl;
+ extents.clear();
ExtentList *block_list = new ExtentList(&extents, blk_size);
allocated = zone->alloc_blocks_dis(zone->size() / 2, 1, 0, 0, block_list);
bmap_test_assert(allocated == zone->size() / 2);
{
int64_t blk_size = 1024;
- AllocExtentVector extents = AllocExtentVector
- (zone->size() / 2, AllocExtent(-1, -1));
-
+ AllocExtentVector extents;
ExtentList *block_list = new ExtentList(&extents, blk_size);
zone = new BitMapZone(total_blocks, 0);
*/
{
int64_t blk_size = 1;
- AllocExtentVector extents = AllocExtentVector
- (zone->size() / 2, AllocExtent(-1, -1));
+ AllocExtentVector extents;
for (int i = 1; i <= total_blocks - BmapEntry::size(); i = i << 1) {
for (int64_t j = 0; j <= BmapEntry::size(); j = 1 << j) {
+ extents.clear();
ExtentList *block_list = new ExtentList(&extents, blk_size);
zone = new BitMapZone(total_blocks, 0);
lock = zone->lock_excl_try();
//allocation in loop
{
+ extents.clear();
ExtentList *block_list = new ExtentList(&extents, blk_size);
zone = new BitMapZone(total_blocks, 0);
lock = zone->lock_excl_try();
}
{
+ extents.clear();
+ ExtentList *block_list = new ExtentList(&extents, blk_size);
+ zone = new BitMapZone(total_blocks, 0);
+ lock = zone->lock_excl_try();
+ bmap_test_assert(lock);
- ExtentList *block_list = new ExtentList(&extents, blk_size);
- zone = new BitMapZone(total_blocks, 0);
- lock = zone->lock_excl_try();
- bmap_test_assert(lock);
-
- block_list->reset();
- allocated = zone->alloc_blocks_dis(total_blocks + 1, total_blocks + 1, 0, 1024, block_list);
- bmap_test_assert(allocated == 0);
+ block_list->reset();
+ allocated = zone->alloc_blocks_dis(total_blocks + 1, total_blocks + 1, 0, 1024, block_list);
+ bmap_test_assert(allocated == 0);
- block_list->reset();
- allocated = zone->alloc_blocks_dis(total_blocks, total_blocks, 1, 1024, block_list);
- bmap_test_assert(allocated == 0);
+ block_list->reset();
+ allocated = zone->alloc_blocks_dis(total_blocks, total_blocks, 1, 1024, block_list);
+ bmap_test_assert(allocated == 0);
- block_list->reset();
- allocated = zone->alloc_blocks_dis(total_blocks, total_blocks, 0, 0, block_list);
- bmap_test_assert(allocated == total_blocks);
- bmap_test_assert(extents[0].offset == 0);
+ block_list->reset();
+ allocated = zone->alloc_blocks_dis(total_blocks, total_blocks, 0, 0, block_list);
+ bmap_test_assert(allocated == total_blocks);
+ bmap_test_assert(extents[0].offset == 0);
- zone->free_blocks(extents[0].offset, allocated);
+ zone->free_blocks(extents[0].offset, allocated);
- delete block_list;
- block_list = new ExtentList(&extents, blk_size, total_blocks / 4 * blk_size);
- block_list->reset();
- allocated = zone->alloc_blocks_dis(total_blocks, total_blocks / 4, 0, 0, block_list);
- bmap_test_assert(allocated == total_blocks);
- for (int i = 0; i < 4; i++) {
- bmap_test_assert(extents[i].offset == (uint64_t) i * (total_blocks / 4));
- }
-
+ delete block_list;
+ extents.clear();
+ block_list = new ExtentList(&extents, blk_size, total_blocks / 4 * blk_size);
+ block_list->reset();
+ allocated = zone->alloc_blocks_dis(total_blocks, total_blocks / 4, 0, 0, block_list);
+ bmap_test_assert(allocated == total_blocks);
+ for (int i = 0; i < 4; i++) {
+ bmap_test_assert(extents[i].offset == (uint64_t) i * (total_blocks / 4));
+ }
}
}
}
for (int64_t iter = 0; iter < max_iter; iter++) {
for (int64_t j = 0; alloc_size <= total_blocks; j++) {
int64_t blk_size = 1024;
- auto extents = AllocExtentVector
- (alloc->size(), AllocExtent(-1, -1));
+ AllocExtentVector extents;
ExtentList *block_list = new ExtentList(&extents, blk_size, alloc_size);
for (int64_t i = 0; i < total_blocks; i += alloc_size) {
bmap_test_assert(alloc->reserve_blocks(alloc_size) == true);
}
int64_t blk_size = 1024;
- auto extents = AllocExtentVector
- (alloc->size(), AllocExtent(-1, -1));
+ AllocExtentVector extents;
ExtentList *block_list = new ExtentList(&extents, blk_size);
int64_t allocated = 0;
int64_t verified = 0;
int64_t count = 0;
- AllocExtentVector extents = AllocExtentVector
- (total_alloc, AllocExtent(-1, -1));
+ AllocExtentVector extents;
ExtentList *block_list = new ExtentList(&extents, blk_size, max_alloc);
int64_t alloced = 0;
int64_t num_blocks = alloc->size() / NUM_THREADS;
- AllocExtentVector extents = AllocExtentVector
- (num_blocks, AllocExtent(-1, -1));
+ AllocExtentVector extents;
ExtentList *block_list = new ExtentList(&extents, 4096);
while (num_iters--) {
- alloc_assert(alloc->reserve_blocks(num_blocks));
- alloced = alloc->alloc_blocks_dis_res(num_blocks, 1, 0, block_list);
- alloc_assert(alloced == num_blocks);
+ alloc_assert(alloc->reserve_blocks(num_blocks));
+ alloced = alloc->alloc_blocks_dis_res(num_blocks, 1, 0, block_list);
+ alloc_assert(alloced == num_blocks);
- alloc_assert(alloc->is_allocated_dis(block_list, num_blocks));
- alloc->free_blocks_dis(num_blocks, block_list);
- block_list->reset();
+ alloc_assert(alloc->is_allocated_dis(block_list, num_blocks));
+ alloc->free_blocks_dis(num_blocks, block_list);
+ block_list->reset();
}
}