summaryrefslogtreecommitdiff
path: root/lib/block_allocator.cpp
diff options
context:
space:
mode:
authorJosh Blum2013-09-09 00:01:07 -0700
committerJosh Blum2013-09-09 00:01:07 -0700
commitf9c0d4c2e39aa28cc501ceb6479afc32f7849b11 (patch)
tree63a6677b3d4051c8a7776515ec733f6d475d1a15 /lib/block_allocator.cpp
parent7c4911c28c28305ed4d1aab9b5ea82f96b49f404 (diff)
downloadsandhi-f9c0d4c2e39aa28cc501ceb6479afc32f7849b11.tar.gz
sandhi-f9c0d4c2e39aa28cc501ceb6479afc32f7849b11.tar.bz2
sandhi-f9c0d4c2e39aa28cc501ceb6479afc32f7849b11.zip
gras: work on global config that works on hier
Diffstat (limited to 'lib/block_allocator.cpp')
-rw-r--r--lib/block_allocator.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/block_allocator.cpp b/lib/block_allocator.cpp
index 8246037..6f59ef6 100644
--- a/lib/block_allocator.cpp
+++ b/lib/block_allocator.cpp
@@ -61,11 +61,15 @@ void BlockActor::handle_top_alloc(const TopAllocMessage &, const Theron::Address
const size_t num_outputs = worker->get_num_outputs();
for (size_t i = 0; i < num_outputs; i++)
{
+ size_t reserve_items = data->output_configs[i].reserve_items;
+ size_t maximum_items = data->output_configs[i].maximum_items;
+ if (maximum_items == 0) maximum_items = data->block->global_config().maximum_output_items;
+
const size_t bytes = recommend_length(
data->output_allocation_hints[i],
my_round_up_mult(AT_LEAST_BYTES, data->output_configs[i].item_size),
- data->output_configs[i].reserve_items*data->output_configs[i].item_size,
- data->output_configs[i].maximum_items*data->output_configs[i].item_size
+ reserve_items*data->output_configs[i].item_size,
+ maximum_items*data->output_configs[i].item_size
);
SBufferDeleter deleter = boost::bind(&buffer_returner, this->thread_pool, this->GetAddress(), i, _1);
@@ -74,7 +78,7 @@ void BlockActor::handle_top_alloc(const TopAllocMessage &, const Theron::Address
SBufferConfig config;
config.memory = NULL;
config.length = bytes;
- config.affinity = data->global_config.buffer_affinity;
+ config.affinity = data->block->global_config().buffer_affinity;
config.token = token;
BufferQueueSptr queue = data->block->output_buffer_allocator(i, config);