copy_engine: only calculate task size once
Track the maximum copy task size as modules are registered rather than recalculating it every time spdk_copy_task_size() is called. Change-Id: I141aca61e7075402dac41915080d1b43faee32ce Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
This commit is contained in:
parent
5b63b8a448
commit
fb08791096
@ -44,6 +44,8 @@
|
|||||||
#include "spdk/event.h"
|
#include "spdk/event.h"
|
||||||
#include "spdk/io_channel.h"
|
#include "spdk/io_channel.h"
|
||||||
|
|
||||||
|
static size_t g_max_copy_module_size = 0;
|
||||||
|
|
||||||
static struct spdk_copy_engine *hw_copy_engine = NULL;
|
static struct spdk_copy_engine *hw_copy_engine = NULL;
|
||||||
/* Memcpy engine always exist */
|
/* Memcpy engine always exist */
|
||||||
static struct spdk_copy_engine *mem_copy_engine = NULL;
|
static struct spdk_copy_engine *mem_copy_engine = NULL;
|
||||||
@ -163,20 +165,15 @@ copy_engine_mem_get_ctx_size(void)
|
|||||||
size_t
|
size_t
|
||||||
spdk_copy_task_size(void)
|
spdk_copy_task_size(void)
|
||||||
{
|
{
|
||||||
struct spdk_copy_module_if *copy_engine;
|
return g_max_copy_module_size;
|
||||||
size_t max_copy_module_size = 0;
|
|
||||||
|
|
||||||
TAILQ_FOREACH(copy_engine, &spdk_copy_module_list, tailq) {
|
|
||||||
if (copy_engine->get_ctx_size && copy_engine->get_ctx_size() > max_copy_module_size) {
|
|
||||||
max_copy_module_size = copy_engine->get_ctx_size();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return max_copy_module_size;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void spdk_copy_module_list_add(struct spdk_copy_module_if *copy_module)
|
void spdk_copy_module_list_add(struct spdk_copy_module_if *copy_module)
|
||||||
{
|
{
|
||||||
TAILQ_INSERT_TAIL(&spdk_copy_module_list, copy_module, tailq);
|
TAILQ_INSERT_TAIL(&spdk_copy_module_list, copy_module, tailq);
|
||||||
|
if (copy_module->get_ctx_size && copy_module->get_ctx_size() > g_max_copy_module_size) {
|
||||||
|
g_max_copy_module_size = copy_module->get_ctx_size();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
Loading…
Reference in New Issue
Block a user