DPDK patches and discussions
 help / color / mirror / Atom feed
From: Chas Williams <3chas3@gmail.com>
To: Harish Patil <harish.patil@qlogic.com>, "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] bnx2x driver and 57800 versus 57810
Date: Wed, 27 Jan 2016 10:58:36 -0500	[thread overview]
Message-ID: <1453910316.30152.1.camel@gmail.com> (raw)
In-Reply-To: <D2CDB1F1.129C53%harish.patil@qlogic.com>

On Wed, 2016-01-27 at 07:32 +0000, Harish Patil wrote:
> >
> >I have to practically identical systems, same hypervisor on each
> (Centos
> >7.x).  In one, I have a 57800 card which works fine with DPDK with
> >SRIOV.  In the other, I have a 57810 card which doesn't work with
> SRIOV.
> >
> >For the 57810 I have tracked this down to the status block in the VF
> >failing to be updated.  The linux driver works fine but it appears to
> >use a slightly different scheme -- writing some sort of fastpath
> status
> >block generation per interrupt.
> >
> >Does anyone have any suggestions or a programming guide for this
> device?
> >
> >
> 
> What is not working with 57810? Is it link related or traffic? Please
> provide the details.
> Attached is the SW programming guide for 577xx/578xx. I’m not sure if
> it has details pertaining to the specific issue that you have.

The DPDK PMD driver seems to be able to transmit packets on the 57810.
But since the status block isn't getting updated, you can't reclaim the
sent buffers.  I modified the driver to use the marker based receive
detection (similar to the method used in the Linux driver) and I can see
packets getting received (certainly broadcast is received -- possibly
not unicast packets though which seems to indicate that part of the
RX path is possibly still broken).

I have tried a couple things.  The status page in the DPDK PMD driver
isn't getting page aligned (as well as a bunch of other structures
that should probably be page aligned). The Linux driver happens to do
this as a side effect of the DMA allocator.  Fixing this didn't seem to
improve matters though.  The status block doesn't seem to get updated.
I verified that the correct DMA address is getting passed to the PF.
And since it works on the 57800, I thought perhaps something changed.

Also, the DPDK driver probably gets the RX/TX queue indices wrong during
initial setup.  The final values coming out of the allocation loop
are probably bigger than they should be.  Should they point to the end
of the queue or just past the end?  Also, the tail of the queue needs
to be corrected for the double entry at the end of the pages.  Again,
fixing this didn't seem to help either.

The VF-PF interaction seems to be ok as well.  Other than not supporting
SGE, the DPDK PMD driver seems to send reasonably correct messages to
the PF.

I don't see the DPDK PMD driver doing anything to 'reset' the PCI apsect
of the VF.  If there is any left over configuration for interrupts,
like leaving the IGU enabled that maybe not be cleared, I am not sure
what the interaction might be.  I do know the Linux driver does seem
to use MSI-X interrupts.

> Thanks,
> Harish

Thanks for looking at this and thanks for the programming guide.  It
will
take me a bit to digest it.

  reply	other threads:[~2016-01-27 15:58 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-27  0:13 Chas Williams
2016-01-27  7:32 ` Harish Patil
2016-01-27 15:58   ` Chas Williams [this message]
2016-06-13 14:11     ` Chas Williams

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=1453910316.30152.1.camel@gmail.com \
    --to=3chas3@gmail.com \
    --cc=dev@dpdk.org \
    --cc=harish.patil@qlogic.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 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).