All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Rybchenko <arybchenko@solarflare.com>
To: David Marchand <david.marchand@6wind.com>, <dev@dpdk.org>
Cc: <olivier.matz@6wind.com>, <wenzhuo.lu@intel.com>,
	<jingjing.wu@intel.com>, <bernard.iremonger@intel.com>
Subject: Re: [PATCH 2/3] mbuf: add a non fatal sanity check helper
Date: Mon, 10 Sep 2018 11:12:09 +0300	[thread overview]
Message-ID: <86b2ae63-f193-03ce-457d-387b785fb884@solarflare.com> (raw)
In-Reply-To: <20180910054547.18494-3-david.marchand@6wind.com>

On 09/10/2018 08:45 AM, David Marchand wrote:
> Let's add a little helper that does the same as rte_mbuf_sanity_check but
> without the panic.
>
> Signed-off-by: David Marchand <david.marchand@6wind.com>
> ---

<...>

> diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h
> index a50b05c64..e12a4c765 100644
> --- a/lib/librte_mbuf/rte_mbuf.h
> +++ b/lib/librte_mbuf/rte_mbuf.h
> @@ -977,6 +977,29 @@ rte_mbuf_ext_refcnt_update(struct rte_mbuf_ext_shared_info *shinfo,
>   void
>   rte_mbuf_sanity_check(const struct rte_mbuf *m, int is_header);
>   
> +/**
> + * Sanity checks on a mbuf.
> + *
> + * Almost like rte_mbuf_sanity_check(), but this function gives the reason
> + * if corruption is detected rather than panic.
> + *
> + * @param m
> + *   The mbuf to be checked.
> + * @param is_header
> + *   True if the mbuf is a packet header, false if it is a sub-segment
> + *   of a packet (in this case, some fields like nb_segs are not checked)
> + * @param reason
> + *   A reference to a string pointer where to store the reason why a mbuf is
> + *   considered invalid.
> + * @return
> + *   - 0 if no issue has been found, reason is left untouched.
> + *   - -1 if a problem is detected, reason then points to a string describing
> + *     the reason why the mbuf is deemed invalid.
> + */
> +__rte_experimental
> +int rte_mbuf_check(const struct rte_mbuf *m, int is_header,
> +		   const char **reason);
> +

May be it would be better to return reason as return value and if it is 
NULL everything is OK?

<...>

  parent reply	other threads:[~2018-09-10  8:12 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-10  5:45 [PATCH 0/3] segment sanity checks David Marchand
2018-09-10  5:45 ` [PATCH 1/3] mbuf: add sanity checks on segment metadata David Marchand
2018-09-11 18:16   ` Yongseok Koh
2018-09-13  6:55     ` David Marchand
2018-10-09  9:11       ` Olivier Matz
2018-09-10  5:45 ` [PATCH 2/3] mbuf: add a non fatal sanity check helper David Marchand
2018-09-10  5:56   ` David Marchand
2018-09-10  8:12   ` Andrew Rybchenko [this message]
2018-09-10  8:24     ` David Marchand
2018-09-10  8:33       ` Andrew Rybchenko
2018-10-09  9:10         ` Olivier Matz
2018-09-10  5:45 ` [PATCH 3/3] app/testpmd: add sanity checks on received/sent packets David Marchand
2018-09-25 13:17   ` Iremonger, Bernard
2018-09-25 15:11     ` David Marchand

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=86b2ae63-f193-03ce-457d-387b785fb884@solarflare.com \
    --to=arybchenko@solarflare.com \
    --cc=bernard.iremonger@intel.com \
    --cc=david.marchand@6wind.com \
    --cc=dev@dpdk.org \
    --cc=jingjing.wu@intel.com \
    --cc=olivier.matz@6wind.com \
    --cc=wenzhuo.lu@intel.com \
    /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.