@@ -365,7 +365,6 @@ static const struct logtype logtype_strings[] = {
{RTE_LOGTYPE_PIPELINE, "lib.pipeline"},
{RTE_LOGTYPE_MBUF, "lib.mbuf"},
{RTE_LOGTYPE_CRYPTODEV, "lib.cryptodev"},
- {RTE_LOGTYPE_EFD, "lib.efd"},
{RTE_LOGTYPE_EVENTDEV, "lib.eventdev"},
{RTE_LOGTYPE_USER1, "user1"},
@@ -44,7 +44,7 @@ extern "C" {
#define RTE_LOGTYPE_PIPELINE 15 /**< Log related to pipeline. */
#define RTE_LOGTYPE_MBUF 16 /**< Log related to mbuf. */
#define RTE_LOGTYPE_CRYPTODEV 17 /**< Log related to cryptodev. */
-#define RTE_LOGTYPE_EFD 18 /**< Log related to EFD. */
+ /* was RTE_LOGTYPE_EFD */
#define RTE_LOGTYPE_EVENTDEV 19 /**< Log related to eventdev. */
/* these log types can be used in an application */
@@ -87,6 +87,11 @@ static struct rte_tailq_elem rte_efd_tailq = {
};
EAL_REGISTER_TAILQ(rte_efd_tailq);
+RTE_LOG_REGISTER_DEFAULT(efd_logtype, INFO);
+
+#define EFD_LOG(level, fmt, args...) \
+ rte_log(RTE_LOG_ ## level, efd_logtype, "%s(): " fmt "\n", __func__, ##args)
+
/** Internal permutation array used to shuffle bins into pseudorandom groups */
const uint32_t efd_bin_to_group[EFD_CHUNK_NUM_BIN_TO_GROUP_SETS][EFD_CHUNK_NUM_BINS] = {
{
@@ -509,13 +514,12 @@ rte_efd_create(const char *name, uint32_t max_num_rules, uint32_t key_len,
efd_list = RTE_TAILQ_CAST(rte_efd_tailq.head, rte_efd_list);
if (online_cpu_socket_bitmask == 0) {
- RTE_LOG(ERR, EFD, "At least one CPU socket must be enabled "
- "in the bitmask\n");
+ EFD_LOG(ERR, "At least one CPU socket must be enabled in the bitmask");
return NULL;
}
if (max_num_rules == 0) {
- RTE_LOG(ERR, EFD, "Max num rules must be higher than 0\n");
+ EFD_LOG(ERR, "Max num rules must be higher than 0");
return NULL;
}
@@ -554,7 +558,7 @@ rte_efd_create(const char *name, uint32_t max_num_rules, uint32_t key_len,
te = rte_zmalloc("EFD_TAILQ_ENTRY", sizeof(*te), 0);
if (te == NULL) {
- RTE_LOG(ERR, EFD, "tailq entry allocation failed\n");
+ EFD_LOG(ERR, "tailq entry allocation failed");
goto error_unlock_exit;
}
@@ -564,15 +568,15 @@ rte_efd_create(const char *name, uint32_t max_num_rules, uint32_t key_len,
RTE_CACHE_LINE_SIZE,
offline_cpu_socket);
if (table == NULL) {
- RTE_LOG(ERR, EFD, "Allocating EFD table management structure"
- " on socket %u failed\n",
- offline_cpu_socket);
+ EFD_LOG(ERR,
+ "Allocating EFD table management structureon socket %u failed",
+ offline_cpu_socket);
goto error_unlock_exit;
}
- RTE_LOG(DEBUG, EFD, "Allocated EFD table management structure "
- "on socket %u\n", offline_cpu_socket);
+ EFD_LOG(DEBUG, "Allocated EFD table management structure on socket %u",
+ offline_cpu_socket);
table->max_num_rules = num_chunks * EFD_TARGET_CHUNK_MAX_NUM_RULES;
table->num_rules = 0;
@@ -586,17 +590,17 @@ rte_efd_create(const char *name, uint32_t max_num_rules, uint32_t key_len,
RTE_CACHE_LINE_SIZE,
offline_cpu_socket);
if (key_array == NULL) {
- RTE_LOG(ERR, EFD, "Allocating key array"
- " on socket %u failed\n",
- offline_cpu_socket);
+ EFD_LOG(ERR,
+ "Allocating key array on socket %u failed",
+ offline_cpu_socket);
goto error_unlock_exit;
}
table->keys = key_array;
strlcpy(table->name, name, sizeof(table->name));
- RTE_LOG(DEBUG, EFD, "Creating an EFD table with %u chunks,"
- " which potentially supports %u entries\n",
- num_chunks, table->max_num_rules);
+ EFD_LOG(DEBUG,
+ "Creating an EFD table with %u chunks, which potentially supports %u entries",
+ num_chunks, table->max_num_rules);
/* Make sure all the allocatable table pointers are NULL initially */
for (socket_id = 0; socket_id < RTE_MAX_NUMA_NODES; socket_id++)
@@ -623,19 +627,16 @@ rte_efd_create(const char *name, uint32_t max_num_rules, uint32_t key_len,
RTE_CACHE_LINE_SIZE,
socket_id);
if (table->chunks[socket_id] == NULL) {
- RTE_LOG(ERR, EFD,
- "Allocating EFD online table on "
- "socket %u failed\n",
- socket_id);
+ EFD_LOG(ERR,
+ "Allocating EFD online table on socket %u failed",
+ socket_id);
goto error_unlock_exit;
}
- RTE_LOG(DEBUG, EFD,
- "Allocated EFD online table of size "
- "%"PRIu64" bytes (%.2f MB) on socket %u\n",
- online_table_size,
- (float) online_table_size /
- (1024.0F * 1024.0F),
- socket_id);
+ EFD_LOG(DEBUG,
+ "Allocated EFD online table of size %" PRIu64 " bytes (%.2f MB) on socket %u",
+ online_table_size,
+ (float) online_table_size / (1024.0F * 1024.0F),
+ socket_id);
}
}
@@ -675,16 +676,17 @@ rte_efd_create(const char *name, uint32_t max_num_rules, uint32_t key_len,
RTE_CACHE_LINE_SIZE,
offline_cpu_socket);
if (table->offline_chunks == NULL) {
- RTE_LOG(ERR, EFD, "Allocating EFD offline table on socket %u "
- "failed\n", offline_cpu_socket);
+ EFD_LOG(ERR,
+ "Allocating EFD offline table on socket %u failed",
+ offline_cpu_socket);
goto error_unlock_exit;
}
- RTE_LOG(DEBUG, EFD,
- "Allocated EFD offline table of size %"PRIu64" bytes "
- " (%.2f MB) on socket %u\n", offline_table_size,
- (float) offline_table_size / (1024.0F * 1024.0F),
- offline_cpu_socket);
+ EFD_LOG(DEBUG,
+ "Allocated EFD offline table of size %" PRIu64 " bytes (%.2f MB) on socket %u",
+ offline_table_size,
+ (float) offline_table_size / (1024.0F * 1024.0F),
+ offline_cpu_socket);
te->data = (void *) table;
TAILQ_INSERT_TAIL(efd_list, te, next);
@@ -695,7 +697,7 @@ rte_efd_create(const char *name, uint32_t max_num_rules, uint32_t key_len,
r = rte_ring_create(ring_name, rte_align32pow2(table->max_num_rules),
offline_cpu_socket, 0);
if (r == NULL) {
- RTE_LOG(ERR, EFD, "memory allocation failed\n");
+ EFD_LOG(ERR, "ring memory allocation failed");
rte_efd_free(table);
return NULL;
}
@@ -1015,20 +1017,17 @@ efd_compute_update(struct rte_efd_table * const table,
if (found == 0) {
/* Key does not exist. Insert the rule into the bin/group */
if (unlikely(current_group->num_rules >= EFD_MAX_GROUP_NUM_RULES)) {
- RTE_LOG(ERR, EFD,
- "Fatal: No room remaining for insert into "
- "chunk %u group %u bin %u\n",
- *chunk_id,
- current_group_id, *bin_id);
+ EFD_LOG(ERR,
+ "Fatal: No room remaining for insert into chunk %u group %u bin %u",
+ *chunk_id, current_group_id, *bin_id);
return RTE_EFD_UPDATE_FAILED;
}
if (unlikely(current_group->num_rules ==
(EFD_MAX_GROUP_NUM_RULES - 1))) {
- RTE_LOG(INFO, EFD, "Warn: Insert into last "
- "available slot in chunk %u "
- "group %u bin %u\n", *chunk_id,
- current_group_id, *bin_id);
+ EFD_LOG(NOTICE,
+ "Insert into last available slot in chunk %u group %u bin %u",
+ *chunk_id, current_group_id, *bin_id);
status = RTE_EFD_UPDATE_WARN_GROUP_FULL;
}
@@ -1112,14 +1111,11 @@ efd_compute_update(struct rte_efd_table * const table,
uint8_t choice = 0;
for (;;) {
if (current_group != new_group &&
- new_group->num_rules + bin_size >
- EFD_MAX_GROUP_NUM_RULES) {
- RTE_LOG(DEBUG, EFD,
- "Unable to move_groups to dest group "
- "containing %u entries."
- "bin_size:%u choice:%02x\n",
- new_group->num_rules, bin_size,
- choice - 1);
+ new_group->num_rules + bin_size > EFD_MAX_GROUP_NUM_RULES) {
+ EFD_LOG(DEBUG,
+ "Unable to move_groups to dest group containing %u entries. bin_size:%u choice:%02x",
+ new_group->num_rules, bin_size,
+ choice - 1);
goto next_choice;
}
move_groups(*bin_id, bin_size, new_group, current_group);
@@ -1132,10 +1128,10 @@ efd_compute_update(struct rte_efd_table * const table,
if (!ret)
return status;
- RTE_LOG(DEBUG, EFD,
- "Failed to find perfect hash for group "
- "containing %u entries. bin_size:%u choice:%02x\n",
- new_group->num_rules, bin_size, choice - 1);
+ EFD_LOG(DEBUG,
+ "Failed to find perfect hash for group containing %u entries. bin_size:%u choice:%02x",
+ new_group->num_rules, bin_size, choice - 1);
+
/* Restore groups modified to their previous state */
revert_groups(current_group, new_group, bin_size);