DPDK patches and discussions
 help / color / mirror / Atom feed
From: Jeff Shaw <jeffrey.b.shaw@intel.com>
To: David Marchand <david.marchand@6wind.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH v5 08/17] fm10k: add RX/TX single queue start/stop function
Date: Fri, 13 Feb 2015 08:45:03 -0800	[thread overview]
Message-ID: <20150213164503.GA9768@plxv1142.pdx.intel.com> (raw)
In-Reply-To: <CALwxeUshpFKc--RpnqML4HVdp_q2j70OHPgnbVHwm6pMU-4+AQ@mail.gmail.com>

Hi David, thanks for the review.

On Fri, Feb 13, 2015 at 12:31:16PM +0100, David Marchand wrote:
> Hello,
> 
> On Fri, Feb 13, 2015 at 9:19 AM, Chen Jing D(Mark) <jing.d.chen@intel.com>
> wrote:
> 
> [snip]
> 
> +/*
> > + * Verify Rx packet buffer alignment is valid.
> > + *
> > + * Hardware requires specific alignment for Rx packet buffers. At
> > + * least one of the following two conditions must be satisfied.
> > + *  1. Address is 512B aligned
> > + *  2. Address is 8B aligned and buffer does not cross 4K boundary.
> > + *
> > + * Return 1 if buffer alignment satisfies at least one condition,
> > + * otherwise return 0.
> > + *
> > + * Note: Alignment is checked by the driver when the Rx queue is reset. It
> > + *       is assumed that if an entire descriptor ring can be filled with
> > + *       buffers containing valid alignment, then all buffers in that
> > mempool
> > + *       have valid address alignment. It is the responsibility of the
> > user
> > + *       to ensure all buffers have valid alignment, as it is the user who
> > + *       creates the mempool.
> > + * Note: It is assumed the buffer needs only to store a maximum size
> > Ethernet
> > + *       frame.
> > + */
> > +static inline int
> > +fm10k_addr_alignment_valid(struct rte_mbuf *mb)
> > +{
> > +       uint64_t addr = MBUF_DMA_ADDR_DEFAULT(mb);
> > +       uint64_t boundary1, boundary2;
> > +
> > +       /* 512B aligned? */
> > +       if (RTE_ALIGN(addr, 512) == addr)
> > +               return 1;
> > +
> > +       /* 8B aligned, and max Ethernet frame would not cross a 4KB
> > boundary? */
> > +       if (RTE_ALIGN(addr, 8) == addr) {
> > +               boundary1 = RTE_ALIGN_FLOOR(addr, 4096);
> > +               boundary2 = RTE_ALIGN_FLOOR(addr +
> > ETHER_MAX_VLAN_FRAME_LEN,
> > +                                               4096);
> > +               if (boundary1 == boundary2)
> > +                       return 1;
> > +       }
> > +
> > +       /* use RTE_LOG directly to make sure this error is seen */
> > +       RTE_LOG(ERR, PMD, "%s(): Error: Invalid buffer alignment\n",
> > __func__);
> > +
> > +       return 0;
> > +}
> >
> 
> Same comment as before, do not directly use RTE_LOG.
> This is init stuff, you have a PMD_INIT_LOG macro.
Agreed, the comment should be fixed.

> 
> By the way, I need to dig deeper into this, but I can see multiple patches
> ensuring buffer alignment.
> Do we really need to validate this alignment here, if we already validated
> this constraint at the mempool level ?
> 

This is really a sanity check. The buffer alignment needs to be
checked at runtime becuase a user could modify the alignment. We
provide a check here to be extra safe, and hopefully to fail at
init time rather than later.

There are two ways to satisfy the alignment requirements for the
hardware. Currently the driver implements the 512B alignment, but
it is possible somebody may want to the other 8B alignment w/o
crossing a 4K page boundary.  This sanity check would help catch
any possible issues in the future related to buffer alignment.

-Jeff

  reply	other threads:[~2015-02-13 16:45 UTC|newest]

Thread overview: 147+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-30  5:07 [dpdk-dev] [PATCH 00/18] lib/librte_pmd_fm10k : fm10k pmd driver Chen Jing D(Mark)
2015-01-30  5:07 ` [dpdk-dev] [PATCH 01/18] fm10k: add base driver Chen Jing D(Mark)
2015-02-04 10:40   ` [dpdk-dev] [PATCH v2 00/15] lib/librte_pmd_fm10k : fm10k pmd driver Chen Jing D(Mark)
2015-02-04 10:40     ` [dpdk-dev] [PATCH v2 01/15] fm10k: add base driver Chen Jing D(Mark)
2015-02-10  7:02       ` [dpdk-dev] [PATCH v3 00/15] lib/librte_pmd_fm10k : fm10k pmd driver Chen Jing D(Mark)
2015-02-10  7:02         ` [dpdk-dev] [PATCH v3 01/15] fm10k: add base driver Chen Jing D(Mark)
2015-02-11  1:31           ` [dpdk-dev] [PATCH v4 00/15] lib/librte_pmd_fm10k : fm10k pmd driver Chen Jing D(Mark)
2015-02-11  1:31             ` [dpdk-dev] [PATCH v4 01/15] fm10k: add base driver Chen Jing D(Mark)
2015-02-13  8:19               ` [dpdk-dev] [PATCH v5 00/17] lib/librte_pmd_fm10k : fm10k pmd driver Chen Jing D(Mark)
2015-02-13  8:19                 ` [dpdk-dev] [PATCH v5 01/17] fm10k: add base driver Chen Jing D(Mark)
2015-02-17 14:18                   ` [dpdk-dev] [PATCH v6 00/16] lib/librte_pmd_fm10k : fm10k pmd driver Chen Jing D(Mark)
2015-02-17 14:18                     ` [dpdk-dev] [PATCH v6 01/16] fm10k: add base driver Chen Jing D(Mark)
2015-02-17 14:18                     ` [dpdk-dev] [PATCH v6 02/16] eal: add fm10k device id Chen Jing D(Mark)
2015-02-17 14:18                     ` [dpdk-dev] [PATCH v6 03/16] fm10k: register fm10k pmd PF driver Chen Jing D(Mark)
2015-02-17 14:18                     ` [dpdk-dev] [PATCH v6 04/16] config: change config files to add fm10k into compile Chen Jing D(Mark)
2015-02-17 14:18                     ` [dpdk-dev] [PATCH v6 05/16] fm10k: add reta update/requery functions Chen Jing D(Mark)
2015-02-17 14:18                     ` [dpdk-dev] [PATCH v6 06/16] fm10k: add Rx queue setup/release function Chen Jing D(Mark)
2015-02-17 14:18                     ` [dpdk-dev] [PATCH v6 07/16] fm10k: add Tx " Chen Jing D(Mark)
2015-02-17 14:18                     ` [dpdk-dev] [PATCH v6 08/16] fm10k: add Rx/Tx single queue start/stop function Chen Jing D(Mark)
2015-02-17 14:18                     ` [dpdk-dev] [PATCH v6 09/16] fm10k: add dev start/stop functions Chen Jing D(Mark)
2015-02-17 14:18                     ` [dpdk-dev] [PATCH v6 10/16] fm10k: add receive and tranmit function Chen Jing D(Mark)
2015-02-17 14:18                     ` [dpdk-dev] [PATCH v6 11/16] fm10k: add PF RSS support Chen Jing D(Mark)
2015-02-17 14:18                     ` [dpdk-dev] [PATCH v6 12/16] fm10k: add scatter receive function Chen Jing D(Mark)
2015-02-17 14:18                     ` [dpdk-dev] [PATCH v6 13/16] fm10k: add function to set vlan Chen Jing D(Mark)
2015-02-17 14:18                     ` [dpdk-dev] [PATCH v6 14/16] fm10k: add SRIOV-VF support Chen Jing D(Mark)
2015-02-17 14:18                     ` [dpdk-dev] [PATCH v6 15/16] fm10k: add PF and VF interrupt handling function Chen Jing D(Mark)
2015-02-17 14:18                     ` [dpdk-dev] [PATCH v6 16/16] maintainers: claim for fm10k review Chen Jing D(Mark)
2015-02-18  0:13                     ` [dpdk-dev] [PATCH v6 00/16] lib/librte_pmd_fm10k : fm10k pmd driver Thomas Monjalon
2015-02-13  8:19                 ` [dpdk-dev] [PATCH v5 02/17] eal: add fm10k device id Chen Jing D(Mark)
2015-02-13  8:19                 ` [dpdk-dev] [PATCH v5 03/17] fm10k: register fm10k pmd PF driver Chen Jing D(Mark)
2015-02-13  8:19                 ` [dpdk-dev] [PATCH v5 04/17] Change config files to add fm10k into compile Chen Jing D(Mark)
2015-02-13  8:19                 ` [dpdk-dev] [PATCH v5 05/17] fm10k: add reta update/requery functions Chen Jing D(Mark)
2015-02-13  8:19                 ` [dpdk-dev] [PATCH v5 06/17] fm10k: add rx_queue_setup/release function Chen Jing D(Mark)
2015-02-13 11:08                   ` David Marchand
2015-02-17 13:01                     ` Chen, Jing D
2015-02-13  8:19                 ` [dpdk-dev] [PATCH v5 07/17] fm10k: add tx_queue_setup/release function Chen Jing D(Mark)
2015-02-13  8:19                 ` [dpdk-dev] [PATCH v5 08/17] fm10k: add RX/TX single queue start/stop function Chen Jing D(Mark)
2015-02-13 11:31                   ` David Marchand
2015-02-13 16:45                     ` Jeff Shaw [this message]
2015-02-13  8:19                 ` [dpdk-dev] [PATCH v5 09/17] fm10k: add dev start/stop functions Chen Jing D(Mark)
2015-02-13  8:19                 ` [dpdk-dev] [PATCH v5 10/17] fm10k: add receive and tranmit function Chen Jing D(Mark)
2015-02-13 11:42                   ` David Marchand
2015-02-17 13:07                     ` Chen, Jing D
2015-02-13 11:53                   ` David Marchand
2015-02-17 13:10                     ` Chen, Jing D
2015-02-13  8:19                 ` [dpdk-dev] [PATCH v5 11/17] fm10k: add PF RSS support Chen Jing D(Mark)
2015-02-13  8:19                 ` [dpdk-dev] [PATCH v5 12/17] fm10k: Add scatter receive function Chen Jing D(Mark)
2015-02-13 11:55                   ` David Marchand
2015-02-17 13:11                     ` Chen, Jing D
2015-02-13  8:19                 ` [dpdk-dev] [PATCH v5 13/17] fm10k: add function to set vlan Chen Jing D(Mark)
2015-02-13  8:19                 ` [dpdk-dev] [PATCH v5 14/17] fm10k: Add SRIOV-VF support Chen Jing D(Mark)
2015-02-13  8:19                 ` [dpdk-dev] [PATCH v5 15/17] fm10k: add PF and VF interrupt handling function Chen Jing D(Mark)
2015-02-13 11:42                   ` David Marchand
2015-02-17 13:12                     ` Chen, Jing D
2015-02-13  8:19                 ` [dpdk-dev] [PATCH v5 16/17] maintainers: claim for fm10k review Chen Jing D(Mark)
2015-02-13  8:19                 ` [dpdk-dev] [PATCH v5 17/17] fm10k: Add ABI version of librte_pmd_fm10k Chen Jing D(Mark)
2015-02-13  8:37                 ` [dpdk-dev] [PATCH v5 00/17] lib/librte_pmd_fm10k : fm10k pmd driver Zhang, Helin
2015-02-15  5:07                 ` Qiu, Michael
2015-02-11  1:31             ` [dpdk-dev] [PATCH v4 02/15] eal: add fm10k device id Chen Jing D(Mark)
2015-02-11  1:31             ` [dpdk-dev] [PATCH v4 03/15] fm10k: register fm10k pmd PF driver Chen Jing D(Mark)
2015-02-11  1:31             ` [dpdk-dev] [PATCH v4 04/15] Change config files to add fm10k into compile Chen Jing D(Mark)
2015-02-11  1:31             ` [dpdk-dev] [PATCH v4 05/15] fm10k: add reta update/requery functions Chen Jing D(Mark)
2015-02-11  1:31             ` [dpdk-dev] [PATCH v4 06/15] fm10k: add rx_queue_setup/release function Chen Jing D(Mark)
2015-02-11  1:31             ` [dpdk-dev] [PATCH v4 07/15] fm10k: add tx_queue_setup/release function Chen Jing D(Mark)
2015-02-11  1:31             ` [dpdk-dev] [PATCH v4 08/15] fm10k: add RX/TX single queue start/stop function Chen Jing D(Mark)
2015-02-11  1:31             ` [dpdk-dev] [PATCH v4 09/15] fm10k: add dev start/stop functions Chen Jing D(Mark)
2015-02-11  1:31             ` [dpdk-dev] [PATCH v4 10/15] fm10k: add receive and tranmit function Chen Jing D(Mark)
2015-02-11 17:28               ` Jeff Shaw
2015-02-12  4:04                 ` Chen, Jing D
2015-02-11  1:31             ` [dpdk-dev] [PATCH v4 11/15] fm10k: add PF RSS support Chen Jing D(Mark)
2015-02-11  1:31             ` [dpdk-dev] [PATCH v4 12/15] fm10k: Add scatter receive function Chen Jing D(Mark)
2015-02-11 17:32               ` Jeff Shaw
2015-02-12  4:04                 ` Chen, Jing D
2015-02-11  1:31             ` [dpdk-dev] [PATCH v4 13/15] fm10k: add function to set vlan Chen Jing D(Mark)
2015-02-11  1:31             ` [dpdk-dev] [PATCH v4 14/15] fm10k: Add SRIOV-VF support Chen Jing D(Mark)
2015-02-11  1:31             ` [dpdk-dev] [PATCH v4 15/15] fm10k: add PF and VF interrupt handling function Chen Jing D(Mark)
2015-02-11  1:50             ` [dpdk-dev] [PATCH v4 00/15] lib/librte_pmd_fm10k : fm10k pmd driver Qiu, Michael
2015-02-10  7:02         ` [dpdk-dev] [PATCH v3 02/15] eal: add fm10k device id Chen Jing D(Mark)
2015-02-10  7:02         ` [dpdk-dev] [PATCH v3 03/15] fm10k: register fm10k pmd PF driver Chen Jing D(Mark)
2015-02-10  7:02         ` [dpdk-dev] [PATCH v3 04/15] Change config files to add fm10k into compile Chen Jing D(Mark)
2015-02-10  7:02         ` [dpdk-dev] [PATCH v3 05/15] fm10k: add reta update/requery functions Chen Jing D(Mark)
2015-02-10  7:02         ` [dpdk-dev] [PATCH v3 06/15] fm10k: add rx_queue_setup/release function Chen Jing D(Mark)
2015-02-10  7:02         ` [dpdk-dev] [PATCH v3 07/15] fm10k: add tx_queue_setup/release function Chen Jing D(Mark)
2015-02-10  7:02         ` [dpdk-dev] [PATCH v3 08/15] fm10k: add RX/TX single queue start/stop function Chen Jing D(Mark)
2015-02-10  7:02         ` [dpdk-dev] [PATCH v3 09/15] fm10k: add dev start/stop functions Chen Jing D(Mark)
2015-02-10  7:02         ` [dpdk-dev] [PATCH v3 10/15] fm10k: add receive and tranmit function Chen Jing D(Mark)
2015-02-10  7:02         ` [dpdk-dev] [PATCH v3 11/15] fm10k: add PF RSS support Chen Jing D(Mark)
2015-02-10  7:02         ` [dpdk-dev] [PATCH v3 12/15] fm10k: Add scatter receive function Chen Jing D(Mark)
2015-02-10  7:02         ` [dpdk-dev] [PATCH v3 13/15] fm10k: add function to set vlan Chen Jing D(Mark)
2015-02-10  7:02         ` [dpdk-dev] [PATCH v3 14/15] fm10k: Add SRIOV-VF support Chen Jing D(Mark)
2015-02-10  7:02         ` [dpdk-dev] [PATCH v3 15/15] fm10k: add PF and VF interrupt handling function Chen Jing D(Mark)
2015-02-04 10:40     ` [dpdk-dev] [PATCH v2 02/15] fm10k: add fm10k device id Chen Jing D(Mark)
2015-02-04 10:40     ` [dpdk-dev] [PATCH v2 03/15] fm10k: register fm10k pmd PF driver Chen Jing D(Mark)
2015-02-04 10:40     ` [dpdk-dev] [PATCH v2 04/15] Change config files to add fm10k into compile Chen Jing D(Mark)
2015-02-04 10:40     ` [dpdk-dev] [PATCH v2 05/15] fm10k: add reta update/requery functions Chen Jing D(Mark)
2015-02-04 10:40     ` [dpdk-dev] [PATCH v2 06/15] fm10k: add rx_queue_setup/release function Chen Jing D(Mark)
2015-02-04 10:40     ` [dpdk-dev] [PATCH v2 07/15] fm10k: add tx_queue_setup/release function Chen Jing D(Mark)
2015-02-04 10:40     ` [dpdk-dev] [PATCH v2 08/15] fm10k: add RX/TX single queue start/stop function Chen Jing D(Mark)
2015-02-04 10:40     ` [dpdk-dev] [PATCH v2 09/15] fm10k: add dev start/stop functions Chen Jing D(Mark)
2015-02-04 10:40     ` [dpdk-dev] [PATCH v2 10/15] fm10k: add receive and tranmit function Chen Jing D(Mark)
2015-02-04 10:40     ` [dpdk-dev] [PATCH v2 11/15] fm10k: add PF RSS support Chen Jing D(Mark)
2015-02-04 10:40     ` [dpdk-dev] [PATCH v2 12/15] fm10k: Add scatter receive function Chen Jing D(Mark)
2015-02-04 10:40     ` [dpdk-dev] [PATCH v2 13/15] fm10k: add function to set vlan Chen Jing D(Mark)
2015-02-04 10:40     ` [dpdk-dev] [PATCH v2 14/15] fm10k: Add SRIOV-VF support Chen Jing D(Mark)
2015-02-04 10:41     ` [dpdk-dev] [PATCH v2 15/15] fm10k: add PF and VF interrupt handling function Chen Jing D(Mark)
2015-01-30  5:07 ` [dpdk-dev] [PATCH 02/18] Change config/ files to add macros for fm10k Chen Jing D(Mark)
2015-01-30  5:07 ` [dpdk-dev] [PATCH 03/18] fm10k: Add empty fm10k files Chen Jing D(Mark)
2015-01-31 14:02   ` Neil Horman
2015-02-02  5:34     ` Chen, Jing D
     [not found]       ` <20150202133848.GA21700@hmsreliant.think-freely.org>
2015-02-03  6:47         ` Chen, Jing D
2015-02-01 13:01   ` David Marchand
2015-01-30  5:07 ` [dpdk-dev] [PATCH 04/18] fm10k: add fm10k device id Chen Jing D(Mark)
2015-01-31 14:19   ` Neil Horman
2015-01-31 16:07     ` David Marchand
2015-01-31 16:32       ` Neil Horman
2015-01-31 16:55         ` David Marchand
2015-01-31 18:35           ` Neil Horman
2015-05-07 11:06             ` David Marchand
2015-05-07 13:36               ` Neil Horman
2015-05-07 13:39                 ` David Marchand
2015-02-02  7:54     ` Chen, Jing D
2015-01-30  5:07 ` [dpdk-dev] [PATCH 05/18] fm10k: Add code to register fm10k pmd PF driver Chen Jing D(Mark)
2015-01-30  5:07 ` [dpdk-dev] [PATCH 06/18] fm10k: add reta update/requery functions Chen Jing D(Mark)
2015-01-30  5:07 ` [dpdk-dev] [PATCH 07/18] fm10k: add rx_queue_setup/release function Chen Jing D(Mark)
2015-01-30  5:07 ` [dpdk-dev] [PATCH 08/18] fm10k: add tx_queue_setup/release function Chen Jing D(Mark)
2015-01-30  5:07 ` [dpdk-dev] [PATCH 09/18] fm10k: add RX/TX single queue start/stop function Chen Jing D(Mark)
2015-01-30  5:07 ` [dpdk-dev] [PATCH 10/18] fm10k: add dev start/stop functions Chen Jing D(Mark)
2015-02-04  2:36   ` Qiu, Michael
2015-02-04  9:55     ` Chen, Jing D
2015-01-30  5:07 ` [dpdk-dev] [PATCH 11/18] fm10k: add receive and tranmit function Chen Jing D(Mark)
2015-01-30  5:07 ` [dpdk-dev] [PATCH 12/18] fm10k: add PF RSS support Chen Jing D(Mark)
2015-02-01  0:38   ` Neil Horman
2015-01-30  5:07 ` [dpdk-dev] [PATCH 13/18] fm10k: Add scatter receive function Chen Jing D(Mark)
2015-01-30  5:07 ` [dpdk-dev] [PATCH 14/18] fm10k: add function to set vlan Chen Jing D(Mark)
2015-01-30  5:07 ` [dpdk-dev] [PATCH 15/18] fm10k: Add SRIOV-VF support Chen Jing D(Mark)
2015-01-30  5:07 ` [dpdk-dev] [PATCH 16/18] fm10k: add PF and VF interrupt handling function Chen Jing D(Mark)
2015-02-01  0:42   ` Neil Horman
2015-02-02  7:59     ` Chen, Jing D
2015-01-30  5:07 ` [dpdk-dev] [PATCH 17/18] Change lib/Makefile to add fm10k driver into compile list Chen Jing D(Mark)
2015-01-30  5:07 ` [dpdk-dev] [PATCH 18/18] Change mk/rte.app.mk to add fm10k lib into link Chen Jing D(Mark)
2015-02-01  0:50   ` Neil Horman
2015-02-02  8:10     ` Chen, Jing D
2015-01-30 21:26 ` [dpdk-dev] [PATCH 00/18] lib/librte_pmd_fm10k : fm10k pmd driver Neil Horman
2015-01-30 21:46   ` Jeff Shaw
2015-01-30 22:19     ` Thomas Monjalon
2015-02-02  2:59       ` Chen, Jing D
2015-02-02  8:19         ` 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=20150213164503.GA9768@plxv1142.pdx.intel.com \
    --to=jeffrey.b.shaw@intel.com \
    --cc=david.marchand@6wind.com \
    --cc=dev@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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).