All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexander Duyck <alexander.h.duyck@intel.com>
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: Wei Gu <wei.gu@ericsson.com>, netdev <netdev@vger.kernel.org>,
	"Kirsher, Jeffrey T" <jeffrey.t.kirsher@intel.com>
Subject: Re: Low performance Intel 10GE NIC (3.2.10) on 2.6.38 Kernel
Date: Thu, 07 Apr 2011 09:20:53 -0700	[thread overview]
Message-ID: <4D9DE465.1080008@intel.com> (raw)
In-Reply-To: <1302192218.3357.47.camel@edumazet-laptop>

On 4/7/2011 9:03 AM, Eric Dumazet wrote:
> Le jeudi 07 avril 2011 à 08:58 -0700, Alexander Duyck a écrit :
>> On 4/7/2011 4:46 AM, Eric Dumazet wrote:
>>> Le jeudi 07 avril 2011 à 19:15 +0800, Wei Gu a écrit :
>>>> Hi,
>>>> I compile the ixgbe driver into the kernel and run the test again and also change the copy to clone in the fw hook
>>>> This is the perf report while I was forwarding 150Kpps with
>>>> The attached file include the basic info about my test system. Please let me know if I did some thing wrong.
>>>>
>>>> +     71.91%          swapper  [kernel.kallsyms]            [k] poll_idle
>>>> +     10.43%          swapper  [kernel.kallsyms]            [k] intel_idle
>>>> -      8.00%     ksoftirqd/24  [kernel.kallsyms]            [k] _raw_spin_unlock_irqrestore
>>>> \u2592   - _raw_spin_unlock_irqrestore
>>>> \u2592      - 42.25% alloc_iova
>>>> \u2592           intel_alloc_iova
>>>> \u2592           __intel_map_single
>>>> \u2592           intel_map_page
>>
>> I'm almost certain this is the issue here.  I am pretty sure the
>> intel_map_page call indicates that you are running with the Intel IOMMU
>> enabled.  As Eric suggested you can either rebuild your kernel with
>> "CONFIG_DMAR=N", or pass the kernel the parameter "intel_iommu=off" in
>> order to disable it so that it will instead just use SWIOTLB.
>
> What's the purpose of intel_iommu ?
>
> Could this be speedup if ixgbe uses a perqueue iommu context instead of
> a per device, so that we dont hit a single spinlock ?

The intel_iommu is meant to be a security feature.  Primarily it is used 
in virtualzation where it allows KVM or Xen to direct assign a device 
without having to worry about the guest getting access to the hosts 
physical memory by submitting invalid DMA requests.

If virtualzation isn't in use I would recommend turning it off as it can 
have a negative impact especially on small packet performance due to the 
extra locking overhead that is required for DMA map and unmap calls.

Thanks,

Alex


  reply	other threads:[~2011-04-07 16:20 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <D12839161ADD3A4B8DA63D1A134D084026E48B9BEB@ESGSCCMS0001.eapac.ericsson.se>
2011-04-07  4:58 ` Question on "net: allocate skbs on local node" Eric Dumazet
2011-04-07  5:16   ` Eric Dumazet
2011-04-07  6:16     ` Eric Dumazet
2011-04-07  7:22       ` Low performance Intel 10GE NIC (3.2.10) on 2.6.38 Kernel Wei Gu
2011-04-07  8:07         ` Eric Dumazet
2011-04-07  8:39           ` Wei Gu
2011-04-07  9:06             ` Eric Dumazet
2011-04-07 11:15               ` Wei Gu
2011-04-07 11:46                 ` Eric Dumazet
2011-04-07 13:41                   ` Eric Dumazet
2011-04-07 15:58                   ` Alexander Duyck
2011-04-07 16:03                     ` Eric Dumazet
2011-04-07 16:20                       ` Alexander Duyck [this message]
2011-04-07 16:37                         ` Eric Dumazet
2011-04-08  8:59                         ` Wei Gu
2011-04-08  9:07                           ` Eric Dumazet
2011-04-08  9:15                             ` Wei Gu
2011-04-08  9:49                               ` Eric Dumazet
2011-04-08  9:59                                 ` Wei Gu
2011-04-08  9:41                             ` Wei Gu
2011-04-08 12:19                             ` Wei Gu
2011-04-08 12:56                               ` Eric Dumazet
2011-04-08 14:10                                 ` Wei Gu
2011-04-08 14:49                                   ` Stephen Hemminger
2011-04-09  3:51                                     ` Wei Gu
2011-04-08 15:07                                   ` Eric Dumazet
2011-04-09  3:27                                     ` Wei Gu
2011-04-09  6:36                                       ` Eric Dumazet
2011-04-10  7:02                                         ` Wei Gu
2011-04-11 14:50                                           ` Alexander Duyck
2011-04-11 15:00                                             ` Wei Gu
2011-04-11 15:14                                             ` Wei Gu
2011-04-11 15:42                                               ` Eric Dumazet
2011-04-12  1:22                                                 ` Wei Gu
2011-04-12  4:40                                                 ` Wei Gu
2011-04-12  4:56                                                   ` Eric Dumazet
2011-04-12  5:18                                                     ` Wei Gu
2011-04-14  5:42                                                 ` Wei Gu
2011-04-14  6:07                                                   ` Eric Dumazet
2011-04-14  6:33                                                     ` Eric Dumazet
2011-04-14  6:58                                                       ` Wei Gu
2011-04-14 16:42                                                         ` Alexander Duyck
2011-04-14 16:45                                                           ` Eric Dumazet
2011-04-14 16:56                                                           ` Peter Zijlstra
2011-04-14 16:57                                                             ` Eric Dumazet
2011-04-14 17:49                                                               ` Eric Dumazet
2011-04-14 19:08                                                                 ` Alexander Duyck
2011-04-15  2:10                                                               ` Wei Gu
2011-04-15  8:57                                                               ` Peter Zijlstra
2011-04-15  9:14                                                                 ` Wei Gu
2011-04-18 21:12                                                                   ` Jesse Brandeburg
2011-04-19  4:09                                                                     ` Wei Gu
2011-04-21  2:57                                                                     ` Wei Gu
2011-04-21  3:25                                                                     ` Wei Gu
2011-04-08 16:22                               ` Alexander Duyck
2011-04-09  3:36                                 ` Wei Gu
2011-04-09  4:40                                   ` Alexander H Duyck
2011-04-09  6:12                                     ` Wei Gu
2011-04-28 11:23 Dana Rubin
2011-04-28 11:58 ` Eric Dumazet

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=4D9DE465.1080008@intel.com \
    --to=alexander.h.duyck@intel.com \
    --cc=eric.dumazet@gmail.com \
    --cc=jeffrey.t.kirsher@intel.com \
    --cc=netdev@vger.kernel.org \
    --cc=wei.gu@ericsson.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.