From: "Medvedkin, Vladimir" <vladimir.medvedkin@intel.com>
To: Stephen Hemminger <stephen@networkplumber.org>, <dev@dpdk.org>
Subject: Re: [PATCH 2/2] rib6: mark error tests with unlikely
Date: Tue, 26 Apr 2022 15:27:47 +0100 [thread overview]
Message-ID: <651e769b-eab5-13a4-d338-13ef8684ba44@intel.com> (raw)
In-Reply-To: <20220413020935.90499-3-stephen@networkplumber.org>
On 13/04/2022 03:09, Stephen Hemminger wrote:
> Also mark some conditional functions as const.
>
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> ---
> lib/rib/rte_rib6.c | 25 ++++++++++++-------------
> 1 file changed, 12 insertions(+), 13 deletions(-)
>
> diff --git a/lib/rib/rte_rib6.c b/lib/rib/rte_rib6.c
> index 042ac1f090bf..650bf1b8f681 100644
> --- a/lib/rib/rte_rib6.c
> +++ b/lib/rib/rte_rib6.c
> @@ -47,13 +47,13 @@ struct rte_rib6 {
> };
>
> static inline bool
> -is_valid_node(struct rte_rib6_node *node)
> +is_valid_node(const struct rte_rib6_node *node)
> {
> return (node->flag & RTE_RIB_VALID_NODE) == RTE_RIB_VALID_NODE;
> }
>
> static inline bool
> -is_right_node(struct rte_rib6_node *node)
> +is_right_node(const struct rte_rib6_node *node)
> {
> return node->parent->right == node;
> }
> @@ -171,7 +171,7 @@ rte_rib6_lookup_exact(struct rte_rib6 *rib,
> uint8_t tmp_ip[RTE_RIB6_IPV6_ADDR_SIZE];
> int i;
>
> - if ((rib == NULL) || (ip == NULL) || (depth > RIB6_MAXDEPTH)) {
> + if (unlikely(rib == NULL || ip == NULL || depth > RIB6_MAXDEPTH)) {
> rte_errno = EINVAL;
> return NULL;
> }
> @@ -210,7 +210,7 @@ rte_rib6_get_nxt(struct rte_rib6 *rib,
> uint8_t tmp_ip[RTE_RIB6_IPV6_ADDR_SIZE];
> int i;
>
> - if ((rib == NULL) || (ip == NULL) || (depth > RIB6_MAXDEPTH)) {
> + if (unlikely(rib == NULL || ip == NULL || depth > RIB6_MAXDEPTH)) {
> rte_errno = EINVAL;
> return NULL;
> }
> @@ -293,8 +293,7 @@ rte_rib6_insert(struct rte_rib6 *rib,
> int i, d;
> uint8_t common_depth, ip_xor;
>
> - if (unlikely((rib == NULL) || (ip == NULL) ||
> - (depth > RIB6_MAXDEPTH))) {
> + if (unlikely((rib == NULL || ip == NULL || depth > RIB6_MAXDEPTH))) {
> rte_errno = EINVAL;
> return NULL;
> }
> @@ -413,7 +412,7 @@ int
> rte_rib6_get_ip(const struct rte_rib6_node *node,
> uint8_t ip[RTE_RIB6_IPV6_ADDR_SIZE])
> {
> - if ((node == NULL) || (ip == NULL)) {
> + if (unlikely(node == NULL || ip == NULL)) {
> rte_errno = EINVAL;
> return -1;
> }
> @@ -424,7 +423,7 @@ rte_rib6_get_ip(const struct rte_rib6_node *node,
> int
> rte_rib6_get_depth(const struct rte_rib6_node *node, uint8_t *depth)
> {
> - if ((node == NULL) || (depth == NULL)) {
> + if (unlikely(node == NULL || depth == NULL)) {
> rte_errno = EINVAL;
> return -1;
> }
> @@ -441,7 +440,7 @@ rte_rib6_get_ext(struct rte_rib6_node *node)
> int
> rte_rib6_get_nh(const struct rte_rib6_node *node, uint64_t *nh)
> {
> - if ((node == NULL) || (nh == NULL)) {
> + if (unlikely(node == NULL || nh == NULL)) {
> rte_errno = EINVAL;
> return -1;
> }
> @@ -452,7 +451,7 @@ rte_rib6_get_nh(const struct rte_rib6_node *node, uint64_t *nh)
> int
> rte_rib6_set_nh(struct rte_rib6_node *node, uint64_t nh)
> {
> - if (node == NULL) {
> + if (unlikely(node == NULL)) {
> rte_errno = EINVAL;
> return -1;
> }
> @@ -471,7 +470,7 @@ rte_rib6_create(const char *name, int socket_id,
> struct rte_mempool *node_pool;
>
> /* Check user arguments. */
> - if (name == NULL || conf == NULL || conf->max_nodes <= 0) {
> + if (unlikely(name == NULL || conf == NULL || conf->max_nodes <= 0)) {
> rte_errno = EINVAL;
> return NULL;
> }
> @@ -506,7 +505,7 @@ rte_rib6_create(const char *name, int socket_id,
>
> /* allocate tailq entry */
> te = rte_zmalloc("RIB6_TAILQ_ENTRY", sizeof(*te), 0);
> - if (te == NULL) {
> + if (unlikely(te == NULL)) {
> RTE_LOG(ERR, LPM,
> "Can not allocate tailq entry for RIB6 %s\n", name);
> rte_errno = ENOMEM;
> @@ -516,7 +515,7 @@ rte_rib6_create(const char *name, int socket_id,
> /* Allocate memory to store the RIB6 data structures. */
> rib = rte_zmalloc_socket(mem_name,
> sizeof(struct rte_rib6), RTE_CACHE_LINE_SIZE, socket_id);
> - if (rib == NULL) {
> + if (unlikely(rib == NULL)) {
> RTE_LOG(ERR, LPM, "RIB6 %s memory allocation failed\n", name);
> rte_errno = ENOMEM;
> goto free_te;
Acked-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
--
Regards,
Vladimir
next prev parent reply other threads:[~2022-04-26 14:27 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-13 2:09 [PATCH 0/2] small RIB optimizations Stephen Hemminger
2022-04-13 2:09 ` [PATCH 1/2] rib: mark error checks with unlikely Stephen Hemminger
2022-04-26 14:27 ` Medvedkin, Vladimir
2022-04-13 2:09 ` [PATCH 2/2] rib6: mark error tests " Stephen Hemminger
2022-04-26 14:27 ` Medvedkin, Vladimir [this message]
2022-04-13 6:45 ` [PATCH 0/2] small RIB optimizations Morten Brørup
2022-06-01 8:58 ` Thomas Monjalon
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=651e769b-eab5-13a4-d338-13ef8684ba44@intel.com \
--to=vladimir.medvedkin@intel.com \
--cc=dev@dpdk.org \
--cc=stephen@networkplumber.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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.