From: luca.boccassi@gmail.com To: Bruce Richardson <bruce.richardson@intel.com> Cc: David Hunt <david.hunt@intel.com>, Anatoly Burakov <anatoly.burakov@intel.com>, dpdk stable <stable@dpdk.org> Subject: [dpdk-stable] patch 'power: rename constants' has been queued to stable release 20.11.1 Date: Fri, 5 Feb 2021 11:18:07 +0000 Message-ID: <20210205111920.1272063-201-luca.boccassi@gmail.com> (raw) In-Reply-To: <20210205111920.1272063-1-luca.boccassi@gmail.com> Hi, FYI, your patch has been queued to stable release 20.11.1 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 02/07/21. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/bluca/dpdk-stable This queued commit can be viewed at: https://github.com/bluca/dpdk-stable/commit/ad55da76d3f9204e3f03126ce3753732fddfb2e1 Thanks. Luca Boccassi --- From ad55da76d3f9204e3f03126ce3753732fddfb2e1 Mon Sep 17 00:00:00 2001 From: Bruce Richardson <bruce.richardson@intel.com> Date: Thu, 21 Jan 2021 17:21:59 +0000 Subject: [PATCH] power: rename constants [ upstream commit 38d232b9b804eebd458d758f2face173220ee2f8 ] Rename the #defines to have an RTE_POWER_ prefix Fixes: 210c383e247b ("power: packet format for vm power management") Fixes: cd0d5547e873 ("power: vm communication channels in guest") Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Signed-off-by: David Hunt <david.hunt@intel.com> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com> --- examples/vm_power_manager/channel_monitor.c | 116 +++++++++--------- examples/vm_power_manager/channel_monitor.h | 6 +- examples/vm_power_manager/guest_cli/main.c | 29 +++-- .../guest_cli/vm_power_cli_guest.c | 28 ++--- examples/vm_power_manager/main.c | 2 +- lib/librte_power/guest_channel.c | 2 +- lib/librte_power/power_kvm_vm.c | 14 +-- lib/librte_power/rte_power_guest_channel.h | 100 +++++++-------- 8 files changed, 156 insertions(+), 141 deletions(-) diff --git a/examples/vm_power_manager/channel_monitor.c b/examples/vm_power_manager/channel_monitor.c index 1b6041b6f8..7bb33e026c 100644 --- a/examples/vm_power_manager/channel_monitor.c +++ b/examples/vm_power_manager/channel_monitor.c @@ -177,10 +177,10 @@ parse_json_to_pkt(json_t *element, struct rte_power_channel_packet *pkt, pkt->nb_mac_to_monitor = 0; pkt->t_boost_status.tbEnabled = false; - pkt->workload = LOW; - pkt->policy_to_use = TIME; - pkt->command = PKT_POLICY; - pkt->core_type = CORE_TYPE_PHYSICAL; + pkt->workload = RTE_POWER_WL_LOW; + pkt->policy_to_use = RTE_POWER_POLICY_TIME; + pkt->command = RTE_POWER_PKT_POLICY; + pkt->core_type = RTE_POWER_CORE_TYPE_PHYSICAL; if (vm_name == NULL) { RTE_LOG(ERR, CHANNEL_MONITOR, @@ -203,11 +203,11 @@ parse_json_to_pkt(json_t *element, struct rte_power_channel_packet *pkt, char command[32]; strlcpy(command, json_string_value(value), 32); if (!strcmp(command, "power")) { - pkt->command = CPU_POWER; + pkt->command = RTE_POWER_CPU_POWER; } else if (!strcmp(command, "create")) { - pkt->command = PKT_POLICY; + pkt->command = RTE_POWER_PKT_POLICY; } else if (!strcmp(command, "destroy")) { - pkt->command = PKT_POLICY_REMOVE; + pkt->command = RTE_POWER_PKT_POLICY_REMOVE; } else { RTE_LOG(ERR, CHANNEL_MONITOR, "Invalid command received in JSON\n"); @@ -217,13 +217,17 @@ parse_json_to_pkt(json_t *element, struct rte_power_channel_packet *pkt, char command[32]; strlcpy(command, json_string_value(value), 32); if (!strcmp(command, "TIME")) { - pkt->policy_to_use = TIME; + pkt->policy_to_use = + RTE_POWER_POLICY_TIME; } else if (!strcmp(command, "TRAFFIC")) { - pkt->policy_to_use = TRAFFIC; + pkt->policy_to_use = + RTE_POWER_POLICY_TRAFFIC; } else if (!strcmp(command, "WORKLOAD")) { - pkt->policy_to_use = WORKLOAD; + pkt->policy_to_use = + RTE_POWER_POLICY_WORKLOAD; } else if (!strcmp(command, "BRANCH_RATIO")) { - pkt->policy_to_use = BRANCH_RATIO; + pkt->policy_to_use = + RTE_POWER_POLICY_BRANCH_RATIO; } else { RTE_LOG(ERR, CHANNEL_MONITOR, "Wrong policy_type received in JSON\n"); @@ -233,11 +237,11 @@ parse_json_to_pkt(json_t *element, struct rte_power_channel_packet *pkt, char command[32]; strlcpy(command, json_string_value(value), 32); if (!strcmp(command, "HIGH")) { - pkt->workload = HIGH; + pkt->workload = RTE_POWER_WL_HIGH; } else if (!strcmp(command, "MEDIUM")) { - pkt->workload = MEDIUM; + pkt->workload = RTE_POWER_WL_MEDIUM; } else if (!strcmp(command, "LOW")) { - pkt->workload = LOW; + pkt->workload = RTE_POWER_WL_LOW; } else { RTE_LOG(ERR, CHANNEL_MONITOR, "Wrong workload received in JSON\n"); @@ -283,17 +287,17 @@ parse_json_to_pkt(json_t *element, struct rte_power_channel_packet *pkt, char unit[32]; strlcpy(unit, json_string_value(value), 32); if (!strcmp(unit, "SCALE_UP")) { - pkt->unit = CPU_POWER_SCALE_UP; + pkt->unit = RTE_POWER_SCALE_UP; } else if (!strcmp(unit, "SCALE_DOWN")) { - pkt->unit = CPU_POWER_SCALE_DOWN; + pkt->unit = RTE_POWER_SCALE_DOWN; } else if (!strcmp(unit, "SCALE_MAX")) { - pkt->unit = CPU_POWER_SCALE_MAX; + pkt->unit = RTE_POWER_SCALE_MAX; } else if (!strcmp(unit, "SCALE_MIN")) { - pkt->unit = CPU_POWER_SCALE_MIN; + pkt->unit = RTE_POWER_SCALE_MIN; } else if (!strcmp(unit, "ENABLE_TURBO")) { - pkt->unit = CPU_POWER_ENABLE_TURBO; + pkt->unit = RTE_POWER_ENABLE_TURBO; } else if (!strcmp(unit, "DISABLE_TURBO")) { - pkt->unit = CPU_POWER_DISABLE_TURBO; + pkt->unit = RTE_POWER_DISABLE_TURBO; } else { RTE_LOG(ERR, CHANNEL_MONITOR, "Invalid command received in JSON\n"); @@ -312,7 +316,7 @@ parse_json_to_pkt(json_t *element, struct rte_power_channel_packet *pkt, vm_name); return -1; } - strlcpy(pkt->vm_name, vm_name, VM_MAX_NAME_SZ); + strlcpy(pkt->vm_name, vm_name, RTE_POWER_VM_MAX_NAME_SZ); pkt->resource_id = resource_id; } return 0; @@ -367,7 +371,7 @@ pcpu_monitor(struct policy *pol, struct core_info *ci, int pcpu, int count) { int ret = 0; - if (pol->pkt.policy_to_use == BRANCH_RATIO) { + if (pol->pkt.policy_to_use == RTE_POWER_POLICY_BRANCH_RATIO) { ci->cd[pcpu].oob_enabled = 1; ret = add_core_to_monitor(pcpu); if (ret == 0) @@ -407,7 +411,7 @@ get_pcpu_to_control(struct policy *pol) * differenciate between them when adding them to the branch monitor. * Virtual cores need to be converted to physical cores. */ - if (pol->pkt.core_type == CORE_TYPE_VIRTUAL) { + if (pol->pkt.core_type == RTE_POWER_CORE_TYPE_VIRTUAL) { /* * If the cores in the policy are virtual, we need to map them * to physical core. We look up the vm info and use that for @@ -479,7 +483,8 @@ update_policy(struct rte_power_channel_packet *pkt) policies[i].pkt = *pkt; get_pcpu_to_control(&policies[i]); /* Check Eth dev only for Traffic policy */ - if (policies[i].pkt.policy_to_use == TRAFFIC) { + if (policies[i].pkt.policy_to_use == + RTE_POWER_POLICY_TRAFFIC) { if (get_pfid(&policies[i]) < 0) { updated = 1; break; @@ -496,7 +501,8 @@ update_policy(struct rte_power_channel_packet *pkt) policies[i].pkt = *pkt; get_pcpu_to_control(&policies[i]); /* Check Eth dev only for Traffic policy */ - if (policies[i].pkt.policy_to_use == TRAFFIC) { + if (policies[i].pkt.policy_to_use == + RTE_POWER_POLICY_TRAFFIC) { if (get_pfid(&policies[i]) < 0) { updated = 1; break; @@ -615,7 +621,7 @@ apply_time_profile(struct policy *pol) /* Format the date and time, down to a single second. */ strftime(time_string, sizeof(time_string), "%Y-%m-%d %H:%M:%S", ptm); - for (x = 0; x < HOURS; x++) { + for (x = 0; x < RTE_POWER_HOURS_PER_DAY; x++) { if (ptm->tm_hour == pol->pkt.timer_policy.busy_hours[x]) { for (count = 0; count < pol->pkt.num_vcpu; count++) { @@ -648,19 +654,19 @@ apply_workload_profile(struct policy *pol) int count; - if (pol->pkt.workload == HIGH) { + if (pol->pkt.workload == RTE_POWER_WL_HIGH) { for (count = 0; count < pol->pkt.num_vcpu; count++) { if (pol->core_share[count].status != 1) power_manager_scale_core_max( pol->core_share[count].pcpu); } - } else if (pol->pkt.workload == MEDIUM) { + } else if (pol->pkt.workload == RTE_POWER_WL_MEDIUM) { for (count = 0; count < pol->pkt.num_vcpu; count++) { if (pol->core_share[count].status != 1) power_manager_scale_core_med( pol->core_share[count].pcpu); } - } else if (pol->pkt.workload == LOW) { + } else if (pol->pkt.workload == RTE_POWER_WL_LOW) { for (count = 0; count < pol->pkt.num_vcpu; count++) { if (pol->core_share[count].status != 1) power_manager_scale_core_min( @@ -676,11 +682,11 @@ apply_policy(struct policy *pol) struct rte_power_channel_packet *pkt = &pol->pkt; /*Check policy to use*/ - if (pkt->policy_to_use == TRAFFIC) + if (pkt->policy_to_use == RTE_POWER_POLICY_TRAFFIC) apply_traffic_profile(pol); - else if (pkt->policy_to_use == TIME) + else if (pkt->policy_to_use == RTE_POWER_POLICY_TIME) apply_time_profile(pol); - else if (pkt->policy_to_use == WORKLOAD) + else if (pkt->policy_to_use == RTE_POWER_POLICY_WORKLOAD) apply_workload_profile(pol); } @@ -726,13 +732,13 @@ send_freq(struct rte_power_channel_packet *pkt, if (get_info_vm(pkt->vm_name, &info) != 0) return -1; - if (!freq_list && vcore_id >= MAX_VCPU_PER_VM) + if (!freq_list && vcore_id >= RTE_POWER_MAX_VCPU_PER_VM) return -1; if (!info.allow_query) return -1; - channel_pkt_freq_list.command = CPU_POWER_FREQ_LIST; + channel_pkt_freq_list.command = RTE_POWER_FREQ_LIST; channel_pkt_freq_list.num_vcpu = info.num_vcpus; if (freq_list) { @@ -764,13 +770,13 @@ send_capabilities(struct rte_power_channel_packet *pkt, if (get_info_vm(pkt->vm_name, &info) != 0) return -1; - if (!list_requested && vcore_id >= MAX_VCPU_PER_VM) + if (!list_requested && vcore_id >= RTE_POWER_MAX_VCPU_PER_VM) return -1; if (!info.allow_query) return -1; - channel_pkt_caps_list.command = CPU_POWER_CAPS_LIST; + channel_pkt_caps_list.command = RTE_POWER_CAPS_LIST; channel_pkt_caps_list.num_vcpu = info.num_vcpus; if (list_requested) { @@ -828,10 +834,10 @@ process_request(struct rte_power_channel_packet *pkt, CHANNEL_MGR_CHANNEL_PROCESSING) == 0) return -1; - if (pkt->command == CPU_POWER) { + if (pkt->command == RTE_POWER_CPU_POWER) { unsigned int core_num; - if (pkt->core_type == CORE_TYPE_VIRTUAL) + if (pkt->core_type == RTE_POWER_CORE_TYPE_VIRTUAL) core_num = get_pcpu(chan_info, pkt->resource_id); else core_num = pkt->resource_id; @@ -843,22 +849,22 @@ process_request(struct rte_power_channel_packet *pkt, bool valid_unit = true; switch (pkt->unit) { - case(CPU_POWER_SCALE_MIN): + case(RTE_POWER_SCALE_MIN): scale_res = power_manager_scale_core_min(core_num); break; - case(CPU_POWER_SCALE_MAX): + case(RTE_POWER_SCALE_MAX): scale_res = power_manager_scale_core_max(core_num); break; - case(CPU_POWER_SCALE_DOWN): + case(RTE_POWER_SCALE_DOWN): scale_res = power_manager_scale_core_down(core_num); break; - case(CPU_POWER_SCALE_UP): + case(RTE_POWER_SCALE_UP): scale_res = power_manager_scale_core_up(core_num); break; - case(CPU_POWER_ENABLE_TURBO): + case(RTE_POWER_ENABLE_TURBO): scale_res = power_manager_enable_turbo_core(core_num); break; - case(CPU_POWER_DISABLE_TURBO): + case(RTE_POWER_DISABLE_TURBO): scale_res = power_manager_disable_turbo_core(core_num); break; default: @@ -870,8 +876,8 @@ process_request(struct rte_power_channel_packet *pkt, ret = send_ack_for_received_cmd(pkt, chan_info, scale_res >= 0 ? - CPU_POWER_CMD_ACK : - CPU_POWER_CMD_NACK); + RTE_POWER_CMD_ACK : + RTE_POWER_CMD_NACK); if (ret < 0) RTE_LOG(ERR, CHANNEL_MONITOR, "Error during sending ack command.\n"); } else @@ -879,19 +885,19 @@ process_request(struct rte_power_channel_packet *pkt, } - if (pkt->command == PKT_POLICY) { + if (pkt->command == RTE_POWER_PKT_POLICY) { RTE_LOG(INFO, CHANNEL_MONITOR, "Processing policy request %s\n", pkt->vm_name); int ret = send_ack_for_received_cmd(pkt, chan_info, - CPU_POWER_CMD_ACK); + RTE_POWER_CMD_ACK); if (ret < 0) RTE_LOG(ERR, CHANNEL_MONITOR, "Error during sending ack command.\n"); update_policy(pkt); policy_is_set = 1; } - if (pkt->command == PKT_POLICY_REMOVE) { + if (pkt->command == RTE_POWER_PKT_POLICY_REMOVE) { ret = remove_policy(pkt); if (ret == 0) RTE_LOG(INFO, CHANNEL_MONITOR, @@ -901,26 +907,26 @@ process_request(struct rte_power_channel_packet *pkt, "Policy %s does not exist\n", pkt->vm_name); } - if (pkt->command == CPU_POWER_QUERY_FREQ_LIST || - pkt->command == CPU_POWER_QUERY_FREQ) { + if (pkt->command == RTE_POWER_QUERY_FREQ_LIST || + pkt->command == RTE_POWER_QUERY_FREQ) { RTE_LOG(INFO, CHANNEL_MONITOR, "Frequency for %s requested.\n", pkt->vm_name); int ret = send_freq(pkt, chan_info, - pkt->command == CPU_POWER_QUERY_FREQ_LIST); + pkt->command == RTE_POWER_QUERY_FREQ_LIST); if (ret < 0) RTE_LOG(ERR, CHANNEL_MONITOR, "Error during frequency sending.\n"); } - if (pkt->command == CPU_POWER_QUERY_CAPS_LIST || - pkt->command == CPU_POWER_QUERY_CAPS) { + if (pkt->command == RTE_POWER_QUERY_CAPS_LIST || + pkt->command == RTE_POWER_QUERY_CAPS) { RTE_LOG(INFO, CHANNEL_MONITOR, "Capabilities for %s requested.\n", pkt->vm_name); int ret = send_capabilities(pkt, chan_info, - pkt->command == CPU_POWER_QUERY_CAPS_LIST); + pkt->command == RTE_POWER_QUERY_CAPS_LIST); if (ret < 0) RTE_LOG(ERR, CHANNEL_MONITOR, "Error during sending capabilities.\n"); } diff --git a/examples/vm_power_manager/channel_monitor.h b/examples/vm_power_manager/channel_monitor.h index 0ca6207ad8..5d3537b911 100644 --- a/examples/vm_power_manager/channel_monitor.h +++ b/examples/vm_power_manager/channel_monitor.h @@ -19,10 +19,10 @@ struct core_share { struct policy { struct rte_power_channel_packet pkt; - uint32_t pfid[MAX_VFS]; - uint32_t port[MAX_VFS]; + uint32_t pfid[RTE_POWER_MAX_VFS]; + uint32_t port[RTE_POWER_MAX_VFS]; unsigned int enabled; - struct core_share core_share[MAX_VCPU_PER_VM]; + struct core_share core_share[RTE_POWER_MAX_VCPU_PER_VM]; }; #ifdef __cplusplus diff --git a/examples/vm_power_manager/guest_cli/main.c b/examples/vm_power_manager/guest_cli/main.c index fc7a8c30af..4e17f7fb90 100644 --- a/examples/vm_power_manager/guest_cli/main.c +++ b/examples/vm_power_manager/guest_cli/main.c @@ -50,8 +50,8 @@ parse_args(int argc, char **argv) }; struct rte_power_channel_packet *policy; unsigned short int hours[MAX_HOURS]; - unsigned short int cores[MAX_VCPU_PER_VM]; - unsigned short int ports[MAX_VCPU_PER_VM]; + unsigned short int cores[RTE_POWER_MAX_VCPU_PER_VM]; + unsigned short int ports[RTE_POWER_MAX_VCPU_PER_VM]; int i, cnt, idx; policy = get_policy(); @@ -69,7 +69,8 @@ parse_args(int argc, char **argv) switch (opt) { /* portmask */ case 'n': - strlcpy(policy->vm_name, optarg, VM_MAX_NAME_SZ); + strlcpy(policy->vm_name, optarg, + RTE_POWER_VM_MAX_NAME_SZ); printf("Setting VM Name to [%s]\n", policy->vm_name); break; case 'b': @@ -97,14 +98,15 @@ parse_args(int argc, char **argv) } break; case 'l': - cnt = parse_set(optarg, cores, MAX_VCPU_PER_VM); + cnt = parse_set(optarg, cores, + RTE_POWER_MAX_VCPU_PER_VM); if (cnt < 0) { printf("Invalid value passed to vcpu-list - [%s]\n", optarg); break; } idx = 0; - for (i = 0; i < MAX_VCPU_PER_VM; i++) { + for (i = 0; i < RTE_POWER_MAX_VCPU_PER_VM; i++) { if (cores[i]) { printf("***Using core %d\n", i); policy->vcpu_to_control[idx++] = i; @@ -114,14 +116,15 @@ parse_args(int argc, char **argv) printf("Total cores: %d\n", idx); break; case 'p': - cnt = parse_set(optarg, ports, MAX_VCPU_PER_VM); + cnt = parse_set(optarg, ports, + RTE_POWER_MAX_VCPU_PER_VM); if (cnt < 0) { printf("Invalid value passed to port-list - [%s]\n", optarg); break; } idx = 0; - for (i = 0; i < MAX_VCPU_PER_VM; i++) { + for (i = 0; i < RTE_POWER_MAX_VCPU_PER_VM; i++) { if (ports[i]) { printf("***Using port %d\n", i); if (set_policy_mac(i, idx++) != 0) { @@ -135,13 +138,17 @@ parse_args(int argc, char **argv) break; case 'o': if (!strcmp(optarg, "TRAFFIC")) - policy->policy_to_use = TRAFFIC; + policy->policy_to_use = + RTE_POWER_POLICY_TRAFFIC; else if (!strcmp(optarg, "TIME")) - policy->policy_to_use = TIME; + policy->policy_to_use = + RTE_POWER_POLICY_TIME; else if (!strcmp(optarg, "WORKLOAD")) - policy->policy_to_use = WORKLOAD; + policy->policy_to_use = + RTE_POWER_POLICY_WORKLOAD; else if (!strcmp(optarg, "BRANCH_RATIO")) - policy->policy_to_use = BRANCH_RATIO; + policy->policy_to_use = + RTE_POWER_POLICY_BRANCH_RATIO; else { printf("Invalid policy specified: %s\n", optarg); diff --git a/examples/vm_power_manager/guest_cli/vm_power_cli_guest.c b/examples/vm_power_manager/guest_cli/vm_power_cli_guest.c index 125dfeb10a..ec6409abd7 100644 --- a/examples/vm_power_manager/guest_cli/vm_power_cli_guest.c +++ b/examples/vm_power_manager/guest_cli/vm_power_cli_guest.c @@ -103,10 +103,10 @@ set_policy_defaults(struct rte_power_channel_packet *pkt) pkt->timer_policy.hours_to_use_traffic_profile[0] = 8; pkt->timer_policy.hours_to_use_traffic_profile[1] = 10; - pkt->core_type = CORE_TYPE_VIRTUAL; - pkt->workload = LOW; - pkt->policy_to_use = TIME; - pkt->command = PKT_POLICY; + pkt->core_type = RTE_POWER_CORE_TYPE_VIRTUAL; + pkt->workload = RTE_POWER_WL_LOW; + pkt->policy_to_use = RTE_POWER_POLICY_TIME; + pkt->command = RTE_POWER_PKT_POLICY; strlcpy(pkt->vm_name, "ubuntu2", sizeof(pkt->vm_name)); return 0; @@ -169,7 +169,7 @@ receive_freq_list(struct rte_power_channel_packet_freq_list *pkt_freq_list, RTE_LOG(ERR, GUEST_CLI, "Error receiving message.\n"); return -1; } - if (pkt_freq_list->command != CPU_POWER_FREQ_LIST) { + if (pkt_freq_list->command != RTE_POWER_FREQ_LIST) { RTE_LOG(ERR, GUEST_CLI, "Unexpected message received.\n"); return -1; } @@ -203,18 +203,18 @@ cmd_query_freq_list_parsed(void *parsed_result, return; } - pkt.command = CPU_POWER_QUERY_FREQ_LIST; + pkt.command = RTE_POWER_QUERY_FREQ_LIST; strlcpy(pkt.vm_name, policy.vm_name, sizeof(pkt.vm_name)); query_list = true; } else { errno = 0; lcore_id = (unsigned int)strtol(res->cpu_num, &ep, 10); - if (errno != 0 || lcore_id >= MAX_VCPU_PER_VM || + if (errno != 0 || lcore_id >= RTE_POWER_MAX_VCPU_PER_VM || ep == res->cpu_num) { cmdline_printf(cl, "Invalid parameter provided.\n"); return; } - pkt.command = CPU_POWER_QUERY_FREQ; + pkt.command = RTE_POWER_QUERY_FREQ; strlcpy(pkt.vm_name, policy.vm_name, sizeof(pkt.vm_name)); pkt.resource_id = lcore_id; } @@ -279,7 +279,7 @@ receive_capabilities(struct rte_power_channel_packet_caps_list *pkt_caps_list, RTE_LOG(ERR, GUEST_CLI, "Error receiving message.\n"); return -1; } - if (pkt_caps_list->command != CPU_POWER_CAPS_LIST) { + if (pkt_caps_list->command != RTE_POWER_CAPS_LIST) { RTE_LOG(ERR, GUEST_CLI, "Unexpected message received.\n"); return -1; } @@ -313,18 +313,18 @@ cmd_query_caps_list_parsed(void *parsed_result, return; } - pkt.command = CPU_POWER_QUERY_CAPS_LIST; + pkt.command = RTE_POWER_QUERY_CAPS_LIST; strlcpy(pkt.vm_name, policy.vm_name, sizeof(pkt.vm_name)); query_list = true; } else { errno = 0; lcore_id = (unsigned int)strtol(res->cpu_num, &ep, 10); - if (errno != 0 || lcore_id >= MAX_VCPU_PER_VM || + if (errno != 0 || lcore_id >= RTE_POWER_MAX_VCPU_PER_VM || ep == res->cpu_num) { cmdline_printf(cl, "Invalid parameter provided.\n"); return; } - pkt.command = CPU_POWER_QUERY_CAPS; + pkt.command = RTE_POWER_QUERY_CAPS; strlcpy(pkt.vm_name, policy.vm_name, sizeof(pkt.vm_name)); pkt.resource_id = lcore_id; } @@ -388,10 +388,10 @@ check_response_cmd(unsigned int lcore_id, int *result) return -1; switch (pkt.command) { - case(CPU_POWER_CMD_ACK): + case(RTE_POWER_CMD_ACK): *result = 1; break; - case(CPU_POWER_CMD_NACK): + case(RTE_POWER_CMD_NACK): *result = 0; break; default: diff --git a/examples/vm_power_manager/main.c b/examples/vm_power_manager/main.c index 75d5b5364f..799d7b9bc3 100644 --- a/examples/vm_power_manager/main.c +++ b/examples/vm_power_manager/main.c @@ -394,7 +394,7 @@ main(int argc, char **argv) "Cannot init port %"PRIu8 "\n", portid); - for (w = 0; w < MAX_VFS; w++) { + for (w = 0; w < RTE_POWER_MAX_VFS; w++) { eth.addr_bytes[5] = w + 0xf0; ret = -ENOTSUP; diff --git a/lib/librte_power/guest_channel.c b/lib/librte_power/guest_channel.c index 9eb2f63306..039cb18729 100644 --- a/lib/librte_power/guest_channel.c +++ b/lib/librte_power/guest_channel.c @@ -100,7 +100,7 @@ guest_channel_host_connect(const char *path, unsigned int lcore_id) /* Send a test packet, this command is ignored by the host, but a successful * send indicates that the host endpoint is monitoring. */ - pkt.command = CPU_POWER_CONNECT; + pkt.command = RTE_POWER_CPU_POWER_CONNECT; global_fds[lcore_id] = fd; ret = guest_channel_send_msg(&pkt, lcore_id); if (ret != 0) { diff --git a/lib/librte_power/power_kvm_vm.c b/lib/librte_power/power_kvm_vm.c index 9ae438489e..27f9937aab 100644 --- a/lib/librte_power/power_kvm_vm.c +++ b/lib/librte_power/power_kvm_vm.c @@ -29,7 +29,7 @@ power_kvm_vm_init(unsigned int lcore_id) lcore_id, RTE_MAX_LCORE-1); return -1; } - pkt[lcore_id].command = CPU_POWER; + pkt[lcore_id].command = RTE_POWER_CPU_POWER; pkt[lcore_id].resource_id = lcore_id; return guest_channel_host_connect(FD_PATH, lcore_id); } @@ -90,25 +90,25 @@ send_msg(unsigned int lcore_id, uint32_t scale_direction) int power_kvm_vm_freq_up(unsigned int lcore_id) { - return send_msg(lcore_id, CPU_POWER_SCALE_UP); + return send_msg(lcore_id, RTE_POWER_SCALE_UP); } int power_kvm_vm_freq_down(unsigned int lcore_id) { - return send_msg(lcore_id, CPU_POWER_SCALE_DOWN); + return send_msg(lcore_id, RTE_POWER_SCALE_DOWN); } int power_kvm_vm_freq_max(unsigned int lcore_id) { - return send_msg(lcore_id, CPU_POWER_SCALE_MAX); + return send_msg(lcore_id, RTE_POWER_SCALE_MAX); } int power_kvm_vm_freq_min(unsigned int lcore_id) { - return send_msg(lcore_id, CPU_POWER_SCALE_MIN); + return send_msg(lcore_id, RTE_POWER_SCALE_MIN); } int @@ -121,13 +121,13 @@ power_kvm_vm_turbo_status(__rte_unused unsigned int lcore_id) int power_kvm_vm_enable_turbo(unsigned int lcore_id) { - return send_msg(lcore_id, CPU_POWER_ENABLE_TURBO); + return send_msg(lcore_id, RTE_POWER_ENABLE_TURBO); } int power_kvm_vm_disable_turbo(unsigned int lcore_id) { - return send_msg(lcore_id, CPU_POWER_DISABLE_TURBO); + return send_msg(lcore_id, RTE_POWER_DISABLE_TURBO); } struct rte_power_core_capabilities; diff --git a/lib/librte_power/rte_power_guest_channel.h b/lib/librte_power/rte_power_guest_channel.h index c9ab7bae81..b9273a025c 100644 --- a/lib/librte_power/rte_power_guest_channel.h +++ b/lib/librte_power/rte_power_guest_channel.h @@ -11,58 +11,41 @@ extern "C" { #include <stdint.h> #include <stdbool.h> -#define MAX_VFS 10 -#define VM_MAX_NAME_SZ 32 -#define MAX_VCPU_PER_VM 8 -#define HOURS 24 +#define RTE_POWER_MAX_VFS 10 +#define RTE_POWER_VM_MAX_NAME_SZ 32 +#define RTE_POWER_MAX_VCPU_PER_VM 8 +#define RTE_POWER_HOURS_PER_DAY 24 /* Valid Commands */ -#define CPU_POWER 1 -#define CPU_POWER_CONNECT 2 -#define PKT_POLICY 3 -#define PKT_POLICY_REMOVE 4 +#define RTE_POWER_CPU_POWER 1 +#define RTE_POWER_CPU_POWER_CONNECT 2 +#define RTE_POWER_PKT_POLICY 3 +#define RTE_POWER_PKT_POLICY_REMOVE 4 -#define CORE_TYPE_VIRTUAL 0 -#define CORE_TYPE_PHYSICAL 1 +#define RTE_POWER_CORE_TYPE_VIRTUAL 0 +#define RTE_POWER_CORE_TYPE_PHYSICAL 1 /* CPU Power Command Scaling */ -#define CPU_POWER_SCALE_UP 1 -#define CPU_POWER_SCALE_DOWN 2 -#define CPU_POWER_SCALE_MAX 3 -#define CPU_POWER_SCALE_MIN 4 -#define CPU_POWER_ENABLE_TURBO 5 -#define CPU_POWER_DISABLE_TURBO 6 +#define RTE_POWER_SCALE_UP 1 +#define RTE_POWER_SCALE_DOWN 2 +#define RTE_POWER_SCALE_MAX 3 +#define RTE_POWER_SCALE_MIN 4 +#define RTE_POWER_ENABLE_TURBO 5 +#define RTE_POWER_DISABLE_TURBO 6 /* CPU Power Queries */ -#define CPU_POWER_QUERY_FREQ_LIST 7 -#define CPU_POWER_QUERY_FREQ 8 -#define CPU_POWER_QUERY_CAPS_LIST 9 -#define CPU_POWER_QUERY_CAPS 10 - -/* --- Outgoing messages --- */ +#define RTE_POWER_QUERY_FREQ_LIST 7 +#define RTE_POWER_QUERY_FREQ 8 +#define RTE_POWER_QUERY_CAPS_LIST 9 +#define RTE_POWER_QUERY_CAPS 10 /* Generic Power Command Response */ -#define CPU_POWER_CMD_ACK 1 -#define CPU_POWER_CMD_NACK 2 +#define RTE_POWER_CMD_ACK 1 +#define RTE_POWER_CMD_NACK 2 /* CPU Power Query Responses */ -#define CPU_POWER_FREQ_LIST 3 -#define CPU_POWER_CAPS_LIST 4 - -struct rte_power_timer_profile { - int busy_hours[HOURS]; - int quiet_hours[HOURS]; - int hours_to_use_traffic_profile[HOURS]; -}; - -enum rte_power_workload_level {HIGH, MEDIUM, LOW}; - -enum rte_power_policy { - TRAFFIC, - TIME, - WORKLOAD, - BRANCH_RATIO -}; +#define RTE_POWER_FREQ_LIST 3 +#define RTE_POWER_CAPS_LIST 4 struct rte_power_traffic_policy { uint32_t min_packet_thresh; @@ -70,6 +53,25 @@ struct rte_power_traffic_policy { uint32_t max_max_packet_thresh; }; +struct rte_power_timer_profile { + int busy_hours[RTE_POWER_HOURS_PER_DAY]; + int quiet_hours[RTE_POWER_HOURS_PER_DAY]; + int hours_to_use_traffic_profile[RTE_POWER_HOURS_PER_DAY]; +}; + +enum rte_power_workload_level { + RTE_POWER_WL_HIGH, + RTE_POWER_WL_MEDIUM, + RTE_POWER_WL_LOW +}; + +enum rte_power_policy { + RTE_POWER_POLICY_TRAFFIC, + RTE_POWER_POLICY_TIME, + RTE_POWER_POLICY_WORKLOAD, + RTE_POWER_POLICY_BRANCH_RATIO +}; + struct rte_power_turbo_status { bool tbEnabled; }; @@ -78,12 +80,12 @@ struct rte_power_channel_packet { uint64_t resource_id; /**< core_num, device */ uint32_t unit; /**< scale down/up/min/max */ uint32_t command; /**< Power, IO, etc */ - char vm_name[VM_MAX_NAME_SZ]; + char vm_name[RTE_POWER_VM_MAX_NAME_SZ]; - uint64_t vfid[MAX_VFS]; + uint64_t vfid[RTE_POWER_MAX_VFS]; int nb_mac_to_monitor; struct rte_power_traffic_policy traffic_policy; - uint8_t vcpu_to_control[MAX_VCPU_PER_VM]; + uint8_t vcpu_to_control[RTE_POWER_MAX_VCPU_PER_VM]; uint8_t num_vcpu; struct rte_power_timer_profile timer_policy; bool core_type; @@ -96,9 +98,9 @@ struct rte_power_channel_packet_freq_list { uint64_t resource_id; /**< core_num, device */ uint32_t unit; /**< scale down/up/min/max */ uint32_t command; /**< Power, IO, etc */ - char vm_name[VM_MAX_NAME_SZ]; + char vm_name[RTE_POWER_VM_MAX_NAME_SZ]; - uint32_t freq_list[MAX_VCPU_PER_VM]; + uint32_t freq_list[RTE_POWER_MAX_VCPU_PER_VM]; uint8_t num_vcpu; }; @@ -106,10 +108,10 @@ struct rte_power_channel_packet_caps_list { uint64_t resource_id; /**< core_num, device */ uint32_t unit; /**< scale down/up/min/max */ uint32_t command; /**< Power, IO, etc */ - char vm_name[VM_MAX_NAME_SZ]; + char vm_name[RTE_POWER_VM_MAX_NAME_SZ]; - uint64_t turbo[MAX_VCPU_PER_VM]; - uint64_t priority[MAX_VCPU_PER_VM]; + uint64_t turbo[RTE_POWER_MAX_VCPU_PER_VM]; + uint64_t priority[RTE_POWER_MAX_VCPU_PER_VM]; uint8_t num_vcpu; }; -- 2.29.2 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2021-02-05 11:18:38.138654033 +0000 +++ 0201-power-rename-constants.patch 2021-02-05 11:18:29.158697813 +0000 @@ -1 +1 @@ -From 38d232b9b804eebd458d758f2face173220ee2f8 Mon Sep 17 00:00:00 2001 +From ad55da76d3f9204e3f03126ce3753732fddfb2e1 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 38d232b9b804eebd458d758f2face173220ee2f8 ] + @@ -10 +11,0 @@ -Cc: stable@dpdk.org
next prev parent reply other threads:[~2021-02-05 11:35 UTC|newest] Thread overview: 312+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-02-05 11:14 [dpdk-stable] patch 'eal/windows: fix build with MinGW-w64 8' " luca.boccassi 2021-02-05 11:14 ` [dpdk-stable] patch 'bus/pci: " luca.boccassi 2021-02-05 11:14 ` [dpdk-stable] patch 'eal/windows: fix debug build with MinGW' " luca.boccassi 2021-02-05 11:14 ` [dpdk-stable] patch 'eal/windows: fix vfprintf warning with clang' " luca.boccassi 2021-02-05 11:14 ` [dpdk-stable] patch 'license: add licenses for exception cases' " luca.boccassi 2021-02-05 11:14 ` [dpdk-stable] patch 'rib: fix insertion in some " luca.boccassi 2021-02-05 11:14 ` [dpdk-stable] patch 'bus/pci: fix hardware ID limit on Windows' " luca.boccassi 2021-02-05 11:14 ` [dpdk-stable] patch 'bus/pci: ignore missing NUMA node " luca.boccassi 2021-02-05 11:14 ` [dpdk-stable] patch 'build: fix plugin load on static build' " luca.boccassi 2021-02-05 11:14 ` [dpdk-stable] patch 'app/flow-perf: simplify objects initialization' " luca.boccassi 2021-02-05 11:14 ` [dpdk-stable] patch 'regex/octeontx2: fix PCI table overflow' " luca.boccassi 2021-02-05 11:14 ` [dpdk-stable] patch 'app/procinfo: fix _filters stats reporting' " luca.boccassi 2021-02-05 11:14 ` [dpdk-stable] patch 'app/procinfo: fix check on xstats-ids' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'app/procinfo: remove useless memset' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'app/procinfo: remove useless assignment' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/pcap: remove local variable shadowing outer one' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/bonding: " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/af_xdp: remove useless assignment' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/bnxt: remove redundant return' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'app/crypto-perf: remove always true condition' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/avp: " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'eal/linux: fix handling of error events from epoll' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'mbuf: add C++ include guard for dynamic fields header' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/bonding: fix port id validity check on parsing' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'app/testpmd: fix queue stats mapping configuration' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'common/sfc_efx/base: remove warnings about inline specifiers' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'common/sfc_efx/base: fix signed/unsigned mismatch warnings' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'common/sfc_efx/base: support alternative MAE match fields' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/ionic: do minor logging fixups' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/mlx5: fix Verbs memory allocation callback' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/mlx5: fix shared age action validation' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/bnxt: fix memory leak when mapping fails' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/bnxt: disable end of packet padding for Rx' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/hns3: fix FEC state query' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/ice: fix outer UDP Tx checksum offload' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/i40e: fix L4 checksum flag' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/i40e: fix global register recovery' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/ixgbe: detect failed VF MTU set' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/bnxt: fix Rx rings in RSS redirection table' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/bnxt: fix VNIC config on Rx queue stop' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/bnxt: release HWRM lock in error' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/bnxt: propagate FW command failure to application' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/bnxt: fix cleanup on mutex init failure' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/bnxt: fix format specifier for unsigned int' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/bnxt: fix max rings computation' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/bnxt: fix freeing mbuf' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/bnxt: fix VNIC RSS configure function' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/bnxt: fix PF resource query' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'common/sfc_efx/base: update MCDI headers for MAE privilege' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'common/sfc_efx/base: check " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/netvsc: ignore unsupported packet on sync command' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/iavf: fix memory leak in large VF' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/ice: fix outer checksum flags' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/mlx5: fix Direct Verbs flow descriptor allocation' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/mlx5: fix mbuf freeing in vectorized MPRQ' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/mlx5: fix buffer split offload advertising' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/bonding: fix PCI address comparison on non-PCI ports' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/i40e: fix stats counters' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'doc: fix some statements for ice vector PMD' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/i40e: fix VLAN stripping in VF' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/ixgbe: fix flex bytes flow director rule' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/i40e: fix Rx bytes statistics' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/ice: check Rx queue number on RSS init' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/ice/base: fix tunnel destroy' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/ice/base: fix null pointer dereference' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/iavf: fix queue pairs configuration' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/iavf: fix GTPU UL and DL support for flow director' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/i40e: fix flex payload rule conflict' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/bnxt: limit Rx representor packets per poll' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/bnxt: fix doorbell write ordering' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/bnxt: fix outer UDP checksum Rx offload capability' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/bnxt: make offload flags mapping per-ring' " luca.boccassi 2021-02-05 11:15 ` [dpdk-stable] patch 'net/bnxt: set correct checksum status in mbuf' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'app/testpmd: release flows left before port stop' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'net/mlx5: fix tunnel rules validation on VF representor' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'net/mlx5: fix constant array size' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'net/mlx5: fix freeing packet pacing' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'net/mlx5: fix flow action destroy wrapper' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'net/mlx5: fix flow operation wrapper per OS' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'net/mlx5: unify operations for all " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'net/mlx5: fix device name size on Windows' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'net/mlx5: fix comparison sign in flow engine' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'net/mlx5: fix shared RSS and mark actions combination' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'net/mlx5: fix VXLAN decap on non-VXLAN flow' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'net/mlx5: fix leak on Rx queue creation failure' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'net/mlx5: fix leak on Tx " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'net/virtio-user: fix run closing stdin and close callfd' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'net/virtio-user: fix protocol features advertising' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'net/ice/base: fix memory handling' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'doc: fix RSS flow description in i40e guide' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'net/i40e: fix returned code for RSS hardware failure' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'doc: add vtune profiling config to prog guide' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'build: fix linker flags on Windows' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'lpm: fix vector IPv4 lookup' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'net/hns3: fix build with SVE' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'net/octeontx: " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'common/octeontx2: " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'net/cxgbe: accept VLAN flow items without ethertype' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'net/virtio: add missing backend features negotiation' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'net/virtio: fix memory init with vDPA backend' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'net/iavf: fix conflicting RSS combination rules' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'net/ice: fix RSS lookup table initialization' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'net/ice: disable IPv4 checksum offload in vector Tx' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'net/ice: enlarge Rx queue rearm threshold to 64' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'net/i40e: add null input checks' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'net/bnxt: fix lock init and destroy' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'net/bnxt: fix error handling in device start' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'net/mvneta: check allocation in Rx queue flush' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'net/octeontx2: fix corruption in segments list' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'net/mlx5: fix hairpin flow split decision' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'common/mlx5: fix completion queue entry size configuration' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'net/mlx5: remove CQE padding device argument' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'net/mlx5: fix leak on ASO SQ creation failure' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'common/mlx5: fix pointer cast on Windows' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'ip_frag: remove padding length of fragment' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'doc: fix figure numbering in graph guide' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'bus/pci: fix build with Windows SDK >= 10.0.20253' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'service: propagate init error in EAL' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'test/mcslock: remove unneeded per lcore copy' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'eal/windows: fix C++ compatibility' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'test/rwlock: fix spelling and missing whitespace' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'test: fix terminal settings on exit' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'test: fix buffer overflow in Tx burst' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'fbarray: fix overlap check' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'examples/l3fwd: remove limitation on Tx queue count' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'regex/mlx5: fix memory rule alignment' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'regex/mlx5: fix support for group id' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'regex/mlx5: fix number of supported queues' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'crypto/qat: fix access to uninitialized variable' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'app/crypto-perf: fix spelling in output' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'net/i40e: fix X722 for 802.1ad frames ability' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'net/hns3: fix interception with flow director' " luca.boccassi 2021-02-05 11:16 ` [dpdk-stable] patch 'net/hns3: fix xstats with id and names' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'net/hns3: fix error code in xstats' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'net/hns3: fix Rx/Tx errors stats' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'net/hns3: fix crash with multi-process' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'net/qede: fix promiscuous enable' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'app/testpmd: fix start index for showing FEC array' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'common/sfc_efx/base: fix MPORT related byte order handling' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'common/sfc_efx/base: fix MAE match spec validation helper' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'common/sfc_efx/base: fix MAE match spec class comparison API' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'common/sfc_efx/base: enhance field ID check in field set " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'ethdev: fix max Rx packet length check' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'app/testpmd: fix max Rx packet length for VLAN packets' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'net/dpaa: fix jumbo frame flag condition for MTU set' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'net/dpaa2: " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'net/e1000: " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'net/hns3: " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'net/i40e: fix jumbo frame flag condition' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'net/iavf: " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'net/ice: " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'net/ipn3ke: fix jumbo frame flag condition for MTU set' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'net/octeontx: " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'net/octeontx2: fix jumbo frame flag condition for MTU' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'net/qede: fix jumbo frame flag condition for MTU set' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'net/sfc: " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'net/thunderx: " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'net/ixgbe: fix jumbo frame flag condition' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'net/cxgbe: " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'net/axgbe: fix jumbo frame flag condition for MTU set' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'net/enetc: " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'net/hinic: " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'net/nfp: " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'net/liquidio: " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'net/hinic: restore vectorised code' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'ethdev: avoid blocking telemetry for link status' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'app/testpmd: fix IP checksum calculation' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'net/ionic: fix link speed and autonegotiation' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'net/hns3: fix VF query link status in dev init' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'net/hns3: use new opcode for clearing hardware resource' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'net/hns3: fix register length when dumping registers' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'net/hns3: fix data overwriting during register dump' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'net/hns3: fix dump register out of range' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'common/sfc_efx/base: apply mask to value on match field set' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'net/mlx5: fix unnecessary checking for RSS action' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'net/ixgbe: fix configuration of max frame size' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'build: provide suitable error for "both" libraries option' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'eal: fix reciprocal header include' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'telemetry: fix missing " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'ethdev: " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'net: " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'mbuf: " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'bitrate: " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'rib: fix missing header includes' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'vhost: " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'ipsec: fix missing header include' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'fib: fix missing header includes' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'table: fix missing header include' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'pipeline: fix missing header includes' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'metrics: fix variable declaration in header' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'node: fix missing header include' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'app: fix build with extra include paths' " luca.boccassi 2021-02-05 11:17 ` [dpdk-stable] patch 'examples/pipeline: fix VXLAN script permission' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'build: force pkg-config for dependency detection' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'app/procinfo: fix security context info' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'eal/arm: fix debug build with gcc for 128-bit atomics' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'test/distributor: fix return buffer queue overload' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'power: create guest channel public header file' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'power: make channel message functions public' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'power: rename public structs' " luca.boccassi 2021-02-05 11:18 ` luca.boccassi [this message] 2021-02-05 11:18 ` [dpdk-stable] patch 'power: export guest channel header file' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'power: clean up includes' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'test/ring: reduce duration of performance tests' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'lib: fix doxygen for parameters of function pointers' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'examples/pipeline: fix CLI parsing crash' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'app/eventdev: adjust event count order for pipeline test' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'app/eventdev: remove redundant enqueue in burst Tx' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'examples/eventdev: check CPU core enabling' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'examples/eventdev: add info output for main core' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'examples/eventdev: move ethdev stop to the end' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'app/eventdev: fix SMP barrier in performance test' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'test/event_crypto: set cipher operation in transform' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'app/crypto-perf: fix latency CSV output' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'app/crypto-perf: fix CSV output format' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'crypto/qat: fix digest in buffer' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'test/ipsec: fix result code for not supported' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'crypto/dpaa2_sec: fix memory allocation check' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'eal: fix MCS lock header include' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'eal: fix internal ABI tag with clang' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'power: fix missing header includes' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'rib: fix missing header include' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'app/testpmd: fix packets dump overlapping' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'net/e1000: fix flow control mode setting' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'net/mlx5: fix flow split combined with counter' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'net/mlx5: fix flow split combined with age action' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'net/mlx4: fix device detach' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'net/mlx4: fix handling of probing failure' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'net/bnxt: fix FW version log' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'net/bnxt: fix packet type index calculation' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'net/bnxt: refactor init/uninit' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'net/ice: drain out DCF AdminQ command queue' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'app/testpmd: fix key for RSS flow rule' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'net/bnxt: fix null termination of Rx mbuf chain' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'net/octeontx2: fix PF flow action for Tx' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'net/mlx5: fix mark action in active tunnel offload' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'net/mlx5: fix drop action in tunnel offload mode' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'net/mlx5: fix flow tag decompression' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'net/mlx5: refuse empty VLAN in flow pattern' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'doc: update flow mark action in mlx5 guide' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'net/mlx5: fix multi-process port ID' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'net/mlx5: fix crash on secondary process port close' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'net/mlx5: fix port attach in secondary process' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'net/mlx4: " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'net/iavf: fix symmetric flow rule creation' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'net/ixgbe: disable NFS filtering' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'net/sfc: fix generic byte statistics to exclude FCS bytes' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'ethdev: fix close failure handling' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'net/virtio: fix getting old status on reconnect' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'vdpa/mlx5: fix configuration mutex cleanup' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'net/ionic: allow separate L3 and L4 checksum offload' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'net/ionic: fix up function attribute tags' " luca.boccassi 2021-02-05 11:18 ` [dpdk-stable] patch 'net/ionic: fix address handling in Tx' " luca.boccassi 2021-02-05 11:19 ` [dpdk-stable] patch 'net/mvpp2: fix stack corruption' " luca.boccassi 2021-02-05 11:19 ` [dpdk-stable] patch 'net/mvpp2: remove debug log on fast-path' " luca.boccassi 2021-02-05 11:19 ` [dpdk-stable] patch 'net/mvpp2: remove VLAN flush' " luca.boccassi 2021-02-05 11:19 ` [dpdk-stable] patch 'net/mvpp2: remove CRC length from MRU validation' " luca.boccassi 2021-02-05 11:19 ` [dpdk-stable] patch 'net/mvpp2: fix frame size checking' " luca.boccassi 2021-02-05 11:19 ` [dpdk-stable] patch 'net/mlx5: fix count actions query in sample flow' " luca.boccassi 2021-02-05 11:19 ` [dpdk-stable] patch 'net/mlx5: fix wire vport hint' " luca.boccassi 2021-02-05 11:19 ` [dpdk-stable] patch 'net/hns3: fix memory leak on secondary process exit' " luca.boccassi 2021-02-05 11:19 ` [dpdk-stable] patch 'net/hns3: fix interrupt resources in Rx interrupt mode' " luca.boccassi 2021-02-05 11:19 ` [dpdk-stable] patch 'net/hns3: adjust some comments' " luca.boccassi 2021-02-05 11:19 ` [dpdk-stable] patch 'net/hns3: adjust format specifier for enum' " luca.boccassi 2021-02-05 11:19 ` [dpdk-stable] patch 'app/testpmd: fix setting maximum packet length' " luca.boccassi 2021-02-05 11:19 ` [dpdk-stable] patch 'app/testpmd: avoid exit without terminal restore' " luca.boccassi 2021-02-05 11:19 ` [dpdk-stable] patch 'net/nfp: read chip model from PluDevice register' " luca.boccassi 2021-02-05 11:19 ` [dpdk-stable] patch 'net/ena: flush Rx buffers memory pool cache' " luca.boccassi 2021-02-05 11:19 ` [dpdk-stable] patch 'net/ena: fix Tx doorbell statistics' " luca.boccassi 2021-02-05 11:19 ` [dpdk-stable] patch 'net/ena: validate Rx req ID upon acquiring descriptor' " luca.boccassi 2021-02-05 11:19 ` [dpdk-stable] patch 'net/ena: fix Tx SQ free space assessment' " luca.boccassi 2021-02-05 11:19 ` [dpdk-stable] patch 'net/ena: prevent double doorbell' " luca.boccassi 2021-02-05 11:19 ` [dpdk-stable] patch 'net/iavf: fix vector mapping with queue' " luca.boccassi 2021-02-05 11:19 ` [dpdk-stable] patch 'app/testpmd: fix queue reconfig request on Rx split update' " luca.boccassi 2021-02-09 10:34 ` [dpdk-stable] patch 'net/bnxt: fix Rx completion ring size calculation' " luca.boccassi 2021-02-09 10:35 ` [dpdk-stable] patch 'net/mlx5: fix shared RSS translation and cleanup' " luca.boccassi 2021-02-09 10:35 ` [dpdk-stable] patch 'doc: fix QinQ flow rules in testpmd guide' " luca.boccassi 2021-02-09 10:35 ` [dpdk-stable] patch 'net/enic: fix filter type used for flow API' " luca.boccassi 2021-02-09 10:35 ` [dpdk-stable] patch 'doc: add FEC to NIC features' " luca.boccassi 2021-02-09 10:35 ` [dpdk-stable] patch 'doc: fix product link in hns3 guide' " luca.boccassi 2021-02-09 10:35 ` [dpdk-stable] patch 'net/sfc: fix TSO and checksum offloads for EF10' " luca.boccassi 2021-02-09 10:35 ` [dpdk-stable] patch 'net/mlx5: check FW miniCQE format capabilities' " luca.boccassi 2021-02-09 10:42 ` Luca Boccassi 2021-02-09 10:35 ` [dpdk-stable] patch 'net/mlx5: fix miniCQE configuration for Verbs' " luca.boccassi 2021-02-09 10:35 ` [dpdk-stable] patch 'vhost: fix vid allocation race' " luca.boccassi 2021-02-09 10:35 ` [dpdk-stable] patch 'net/octeontx: fix max Rx packet length' " luca.boccassi 2021-02-09 10:35 ` [dpdk-stable] patch 'doc: fix supported feature table in mlx5 guide' " luca.boccassi 2021-02-09 10:35 ` [dpdk-stable] patch 'net/mlx5: fix counter and age flow action validation' " luca.boccassi 2021-02-09 10:35 ` [dpdk-stable] patch 'common/mlx5: fix storing synced MAC to internal table' " luca.boccassi 2021-02-09 10:35 ` [dpdk-stable] patch 'net/hns3: fix link status change from firmware' " luca.boccassi 2021-02-09 10:35 ` [dpdk-stable] patch 'net/hns3: fix RSS indirection table size' " luca.boccassi 2021-02-09 10:35 ` [dpdk-stable] patch 'net/hns3: remove MPLS from supported flow items' " luca.boccassi 2021-02-09 10:35 ` [dpdk-stable] patch 'net/hns3: fix flow director rule residue on malloc failure' " luca.boccassi 2021-02-09 10:35 ` [dpdk-stable] patch 'net/hns3: fix firmware exceptions by concurrent commands' " luca.boccassi 2021-02-09 10:35 ` [dpdk-stable] patch 'net/hns3: fix VF reset on mailbox failure' " luca.boccassi 2021-02-09 10:35 ` [dpdk-stable] patch 'net/hns3: validate requested maximum Rx frame length' " luca.boccassi 2021-02-09 10:35 ` [dpdk-stable] patch 'app/testpmd: support shared age action query' " luca.boccassi 2021-02-09 10:35 ` [dpdk-stable] patch 'net/pcap: fix byte stats for drop Tx' " luca.boccassi 2021-02-09 10:35 ` [dpdk-stable] patch 'net/pcap: fix infinite Rx with large files' " luca.boccassi 2021-02-09 10:35 ` [dpdk-stable] patch 'net/mlx5: fix shared RSS capability check' " luca.boccassi 2021-02-09 10:35 ` [dpdk-stable] patch 'net/mlx5: validate hash Rx queue pointer' " luca.boccassi 2021-02-09 10:35 ` [dpdk-stable] patch 'net/enic: fix filter log message' " luca.boccassi 2021-02-09 10:35 ` [dpdk-stable] patch 'event/dlb: fix accessing uninitialized variables' " luca.boccassi 2021-02-09 10:35 ` [dpdk-stable] patch 'eventdev: fix a return value comment' " luca.boccassi 2021-02-09 10:35 ` [dpdk-stable] patch 'mempool: fix panic on dump or audit' " luca.boccassi 2021-02-09 10:35 ` [dpdk-stable] patch 'mbuf: remove unneeded atomic generic header include' " luca.boccassi 2021-02-12 23:40 ` [dpdk-stable] patch 'eal: fix automatic loading of drivers as shared libs' " luca.boccassi 2021-02-12 23:40 ` [dpdk-stable] patch 'net/ixgbe: fix UDP zero checksum on x86' " luca.boccassi 2021-02-12 23:40 ` [dpdk-stable] patch 'vhost: fix packed ring dequeue offloading' " luca.boccassi 2021-02-12 23:40 ` [dpdk-stable] patch 'doc: fix mark action zero value in mlx5 guide' " luca.boccassi 2021-02-12 23:40 ` [dpdk-stable] patch 'app/testpmd: fix help of metering commands' " luca.boccassi 2021-02-12 23:40 ` [dpdk-stable] patch 'usertools: fix binding built-in kernel driver' " luca.boccassi
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210205111920.1272063-201-luca.boccassi@gmail.com \ --to=luca.boccassi@gmail.com \ --cc=anatoly.burakov@intel.com \ --cc=bruce.richardson@intel.com \ --cc=david.hunt@intel.com \ --cc=stable@dpdk.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
patches for DPDK stable branches This inbox may be cloned and mirrored by anyone: git clone --mirror https://inbox.dpdk.org/stable/0 stable/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 stable stable/ https://inbox.dpdk.org/stable \ stable@dpdk.org public-inbox-index stable Example config snippet for mirrors. Newsgroup available over NNTP: nntp://inbox.dpdk.org/inbox.dpdk.stable AGPL code for this site: git clone https://public-inbox.org/public-inbox.git