All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Flávio Silveira" <fggs@terra.com.br>
To: netdev@vger.kernel.org, Chris Snook <chris.snook@gmail.com>,
	jcliburn@gmail.com
Subject: Attansic L1 driver issue
Date: Sat, 2 Jan 2016 03:58:43 -0200	[thread overview]
Message-ID: <56876713.9090100@terra.com.br> (raw)

Good morning,

   I'm investigating a possible issue with atl1 driver used by Attansic L1.

   During my tests with iperf3 I saw a performance drop when the 
computer is client.

   I can hit only about 580~600Mbit/s, if I disable 
generic-segmentation-offload (GSO) I can hit 660~670Mbit/s.

   When the computer is server, I can hit 940~950Mbit/s.

   My tests are done with 2 computers directly connected with a cat6 
cable, static addresses on both, no iptables rules and commands below:

   # for the server
   iperf3 -s

   # for the client
   iperf3 -c <server ip> -P 1 -i 1 -p 5201 -f m -t 10

   To rule out a few things, I've tested with Fedora 23 live usb (kernel 
4.2.7) and Debian 8 Jessie (kernels 3.16.7 and latest stable 4.3.3).

   The other computer on the test ran Fedora 23 live usb and Windows 7 
SP1 x64, same results.

   I've been talking to Chris Snook (in CC), one of the maintainers of 
this driver and he suspects of a PCI regression. Unfortunately I 
couldn't git bisect for him, I'm actually thinking about installing 
Debian 6 Squeeze which ships with kernel 2.6.32 and it is close to the 
kernel this driver was mainlined (2.6.21 IIRC) and do the git bisect there.

   What I could do so far is enable debug in the driver and when I run 
iperf I see "tx busy" message. This message comes from this part of the 
driver:

# This is inside atl1_xmit_frame function and count is initialized with 1

if (atl1_tpd_avail(&adapter->tpd_ring) < count) {
         /* not enough descriptors */
         netif_stop_queue(netdev);
         if (netif_msg_tx_queued(adapter))
             dev_printk(KERN_DEBUG, &adapter->pdev->dev,
                 "tx busy\n");
         return NETDEV_TX_BUSY;
     }

   So I thought it could be TX ring too small, but I've played with 
available values and no change. Default value is 256 for TX ring and up 
to 1024 as max value.

   As you could notice I'm not knowledgeable, but I hope to get some 
insight on this, so it can hopefully be fixed.

Regards,
   Flavio Silveira

             reply	other threads:[~2016-01-02  6:19 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-02  5:58 Flávio Silveira [this message]
2016-01-12 15:13 ` Attansic L1 driver issue Flávio Silveira

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=56876713.9090100@terra.com.br \
    --to=fggs@terra.com.br \
    --cc=chris.snook@gmail.com \
    --cc=jcliburn@gmail.com \
    --cc=netdev@vger.kernel.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.