diff options
author | Josh Blum | 2013-09-09 00:01:07 -0700 |
---|---|---|
committer | Josh Blum | 2013-09-09 00:01:07 -0700 |
commit | f9c0d4c2e39aa28cc501ceb6479afc32f7849b11 (patch) | |
tree | 63a6677b3d4051c8a7776515ec733f6d475d1a15 /lib/block_allocator.cpp | |
parent | 7c4911c28c28305ed4d1aab9b5ea82f96b49f404 (diff) | |
download | sandhi-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.cpp | 10 |
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); |