Hi > > Hi all, > > Kindly ping for review. > > > 在 2024/12/19 15:53, Huisong Li 写道: > > The queue_list_entry structure data is used in rx_callback of io path > > when enable PMD Power Management. However its memory is currently from > > normal heap memory. For better performance, use hugepage memory to > > replace it.
Make sense to me. Acked-by: Konstantin Ananyev <konstantin.anan...@huawei.com> I suppose it would also help if you can provide some numbers: i.e.: how much exactly it is 'better'? Did you see any changes in throughput/latency numbers, etc. > > Signed-off-by: Huisong Li <lihuis...@huawei.com> > > --- > > lib/power/rte_power_pmd_mgmt.c | 10 +++++----- > > 1 file changed, 5 insertions(+), 5 deletions(-) > > > > diff --git a/lib/power/rte_power_pmd_mgmt.c b/lib/power/rte_power_pmd_mgmt.c > > index a2fff3b765..c7bf57a910 100644 > > --- a/lib/power/rte_power_pmd_mgmt.c > > +++ b/lib/power/rte_power_pmd_mgmt.c > > @@ -97,7 +97,7 @@ queue_list_find(const struct pmd_core_cfg *cfg, const > > union queue *q) > > } > > > > static int > > -queue_list_add(struct pmd_core_cfg *cfg, const union queue *q) > > +queue_list_add(struct pmd_core_cfg *cfg, const union queue *q, unsigned > > int lcore_id) > > { > > struct queue_list_entry *qle; > > > > @@ -105,10 +105,10 @@ queue_list_add(struct pmd_core_cfg *cfg, const union > > queue *q) > > if (queue_list_find(cfg, q) != NULL) > > return -EEXIST; > > > > - qle = malloc(sizeof(*qle)); > > + qle = rte_zmalloc_socket(NULL, sizeof(*qle), RTE_CACHE_LINE_SIZE, > > + rte_lcore_to_socket_id(lcore_id)); > > if (qle == NULL) > > return -ENOMEM; > > - memset(qle, 0, sizeof(*qle)); > > > > queue_copy(&qle->queue, q); > > TAILQ_INSERT_TAIL(&cfg->head, qle, next); > > @@ -570,7 +570,7 @@ rte_power_ethdev_pmgmt_queue_enable(unsigned int > > lcore_id, uint16_t port_id, > > goto end; > > } > > /* add this queue to the list */ > > - ret = queue_list_add(lcore_cfg, &qdata); > > + ret = queue_list_add(lcore_cfg, &qdata, lcore_id); > > if (ret < 0) { > > POWER_LOG(DEBUG, "Failed to add queue to list: %s", > > strerror(-ret)); > > @@ -664,7 +664,7 @@ rte_power_ethdev_pmgmt_queue_disable(unsigned int > > lcore_id, > > * callbacks can be freed. we're intentionally casting away const-ness. > > */ > > rte_free((void *)(uintptr_t)queue_cfg->cb); > > - free(queue_cfg); > > + rte_free(queue_cfg); > > > > return 0; > > }