All of lore.kernel.org
 help / color / mirror / Atom feed
From: Malcolm Crossley <malcolm.crossley@citrix.com>
To: xen-devel@lists.xen.org
Subject: Re: bnx2x DMA mapping errors cause iscsi problems
Date: Wed, 23 Apr 2014 13:10:06 +0100	[thread overview]
Message-ID: <5357AD9E.3030202@citrix.com> (raw)
In-Reply-To: <535774A5.3050603@uclouvain.be>

Hi Patrick,

Sorry this email won't help resolve your issue but I'm highlighting that
a design I have will help resolve this problem in the long run.

On 23/04/14 09:07, Patrick Vranckx wrote:
> Hi,
> 
> We are running open source Xen 4.1.4 on Debian 7.4 amd64
> HW is HP BL460c Gen8. Nic is Broadcom Corporation NetXtreme II BCM57810
> 10 Gigabit Ethernet (rev 10)
> 
> We are experiencing sporadic network blackouts after a few days on eth4
> which is used for iscsi block storage for the VMs. VMs file sytems are
> switching to read-only and so we loose all the VMs. Then we have to
> reboot the hypervisor to regain network connectivity.
> 
> MTU = 9000 on eth4.
> 
> We were using Broadcom kernel driver from Debian 7.4 official kernel
> (3.2.54-2). Now we've updated with the latest driver published on
> Broadcom website, we have some more login :
> 
> [1200406.207855] [bnx2x_alloc_rx_data:1009(eth4)]Can't map rx data
> [1200406.207978] [bnx2x_alloc_rx_data:1009(eth4)]Can't map rx data
> .....
>

This is exactly the issue that the linked design is trying to address:

http://lists.xen.org/archives/html/xen-devel/2014-04/msg01632.html

> Here are bnx2x module versions we tried :
> Debian 7.4 stock kernel : 1.70.30
> Broadcom website (latest) : 1.78.58
> Broadcom Firmware : Latest from HP BROADCOM 2.9.26 CP021537 package
> 
> Looking at bnx2x source code (bnx2x_cmn.c), it appears this error is
> caused by a DMA mapping error for rx buffers (memory leak ?)
> 
> static int bnx2x_alloc_rx_data(struct bnx2x *bp, struct bnx2x_fastpath *fp,
> u16 index, gfp_t gfp_mask)
> {
> ....
> mapping = dma_map_single(&bp->pdev->dev, data + NET_SKB_PAD,
> fp->rx_buf_size,
> DMA_FROM_DEVICE);
> 
> if (unlikely(dma_mapping_error(&bp->pdev->dev, mapping))) {
> 
> #ifdef BCM_HAS_BUILD_SKB /* BNX2X_UPSTREAM */
> bnx2x_frag_free(fp, data);
> #else
> dev_kfree_skb_any(data);
> #endif
> BNX2X_ERR("Can't map rx data\n");
> return -ENOMEM;
> }
> ...
> 
> We found several other references of people suffering from the same
> problem.
> Here are two threads concerning Citrix XenServer 6 showing the exact
> same problem on BL460C G6 and Gen8
> http://discussions.citrix.com/topic/324343-xenserver-61-bnx2x-sw-iommu/
> http://discussions.citrix.com/topic/333281-xenserver-62-crash-bug/page-3
> 
> It seems from other references that most of the time, similar problems
> occuring with this driver are related to virtualized environments.
> 
> We found a rather old workaround from VMWare. The solution is to reduce
> the number of queues used by the driver (num_queues parameter).
> Unfortunately, the problem still occurs but after a longer period.

Reducing the queues, increasing the swiotlb size (as Jan suggested) and
you can try adding  "disable_tpa=1" to bnx2x module parameters to work
around this issue. There will be a potential reduction in network
performance from these parameters.
> 
> There are threads in this mailing list related to DMA allocation in Xen
> ( http://markmail.org/message/uududlw5w6xlqcp2 ) but I'm not able to
> understand if those threads are related to our problem.
> 
> Thanks for your help,
> 
> Patrick
> 

Malcolm

  parent reply	other threads:[~2014-04-23 12:10 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-23  8:07 bnx2x DMA mapping errors cause iscsi problems Patrick Vranckx
2014-04-23 11:59 ` Jan Beulich
2014-04-23 12:10 ` Malcolm Crossley [this message]
2014-04-24 13:55 ` Patrick Vranckx

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=5357AD9E.3030202@citrix.com \
    --to=malcolm.crossley@citrix.com \
    --cc=xen-devel@lists.xen.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.