linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Chris Snook <csnook@redhat.com>
To: Luca Tettamanti <kronos.it@gmail.com>
Cc: Jeff Garzik <jgarzik@pobox.com>,
	Jay Cliburn <jacliburn@bellsouth.net>,
	"Jay L. T. Cornwall" <jay@esuna.co.uk>,
	linux-kernel@vger.kernel.org, netdev@vger.kernel.org
Subject: Re: [PATCH] atl1: disable 64bit DMA
Date: Mon, 25 Jun 2007 17:36:23 -0400	[thread overview]
Message-ID: <46803557.50805@redhat.com> (raw)
In-Reply-To: <20070625211855.GA19275@dreamland.darkstar.lan>

Luca Tettamanti wrote:
> Il Mon, Jun 25, 2007 at 07:42:44AM -0500, Jay Cliburn ha scritto: 
>> Jay L. T. Cornwall wrote:
>>> Jay Cliburn wrote:
>>>
>>>> For reasons not yet clear to me, it appears the L1 driver has a bug or
>>>> the device itself has trouble with DMA in high memory.  This patch,
>>>> drafted by Luca Tettamanti, is being explored as a workaround.  I'd be
>>>> interested to know if it fixes your problem.
>>> Yes, it certainly seems to. Now running with this patch and 4GB active,
>>> I've transferred about 15GB with no problem so far. It usually oopses
>>> after a GB or two.
>>>
>>> I guess it's not an ideal solution, architecturally speaking, but it's a
>>> good deal better than an unstable driver. If there's any other patches
>>> you'd like me to test or traces to capture, I'm happy to help out.
>>> Otherwise I'll run with this one for now since it does the job!
>> Okay Jay, thanks.
>>
>> Luca, would you please submit your patch to Jeff Garzik and netdev?
> 
> Hi Jeff,
> a couple of users reported hard lockups when using L1 NICs on machines
> with 4GB or more of RAM. We're still waiting official confirmation from
> the vendor, but it seems that L1 has problems doing DMA to/from high
> memory (physical address above the 4GB limit). Passing 32bit DMA mask
> cures the problem.
> 
> Signed-Off-By: Luca Tettamanti <kronos.it@gmail.com>
> 
> ---
> I think that the patch should be included in 2.6.22.
> 
>  drivers/net/atl1/atl1_main.c |   15 +++------------
>  1 file changed, 3 insertions(+), 12 deletions(-)
> 
> diff --git a/drivers/net/atl1/atl1_main.c b/drivers/net/atl1/atl1_main.c
> index 6862c11..a730f15 100644
> --- a/drivers/net/atl1/atl1_main.c
> +++ b/drivers/net/atl1/atl1_main.c
> @@ -2097,21 +2097,16 @@ static int __devinit atl1_probe(struct pci_dev *pdev,
>  	struct net_device *netdev;
>  	struct atl1_adapter *adapter;
>  	static int cards_found = 0;
> -	bool pci_using_64 = true;
>  	int err;
>  
>  	err = pci_enable_device(pdev);
>  	if (err)
>  		return err;
>  
> -	err = pci_set_dma_mask(pdev, DMA_64BIT_MASK);
> +	err = pci_set_dma_mask(pdev, DMA_32BIT_MASK);
>  	if (err) {
> -		err = pci_set_dma_mask(pdev, DMA_32BIT_MASK);
> -		if (err) {
> -			dev_err(&pdev->dev, "no usable DMA configuration\n");
> -			goto err_dma;
> -		}
> -		pci_using_64 = false;
> +		dev_err(&pdev->dev, "no usable DMA configuration\n");
> +		goto err_dma;
>  	}
>  	/* Mark all PCI regions associated with PCI device
>  	 * pdev as being reserved by owner atl1_driver_name
> @@ -2176,7 +2171,6 @@ static int __devinit atl1_probe(struct pci_dev *pdev,
>  
>  	netdev->ethtool_ops = &atl1_ethtool_ops;
>  	adapter->bd_number = cards_found;
> -	adapter->pci_using_64 = pci_using_64;
>  
>  	/* setup the private structure */
>  	err = atl1_sw_init(adapter);
> @@ -2193,9 +2187,6 @@ static int __devinit atl1_probe(struct pci_dev *pdev,
>  	 */
>  	/* netdev->features |= NETIF_F_TSO; */
>  
> -	if (pci_using_64)
> -		netdev->features |= NETIF_F_HIGHDMA;
> -
>  	netdev->features |= NETIF_F_LLTX;
>  
>  	/*
> 
> 
> Luca

What boards have we seen this on?  It's quite possible this is:

a) an iommu-related problem specific to AMD or specific to Intel
b) a BIOS problem that atl1 happens to be a victim of

I'd rather not disable this unconditionally if we can get more 
information about why it's breaking.  Doing so might just end up 
covering up the most obvious manifestation of a larger problem.

	-- Chris

  reply	other threads:[~2007-06-25 21:36 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-06-22  0:07 2.6.22-rc5: pdflush oops under heavy disk load Jay L. T. Cornwall
2007-06-22 14:47 ` Chuck Ebbert
2007-06-22 15:04   ` Jay L. T. Cornwall
2007-06-23 12:14     ` Jay L. T. Cornwall
2007-06-23 17:23       ` Andrew Morton
2007-06-24  9:57         ` (Last oops is Tainted: P) " Oleg Verych
2007-06-24 10:10           ` Jay L. T. Cornwall
2007-06-24 10:57             ` Oleg Verych
2007-06-24 17:59       ` Jay Cliburn
2007-06-24 20:31         ` Jay L. T. Cornwall
2007-06-24 21:45           ` Jay Cliburn
2007-06-25 12:16             ` Attansic L1 page corruption (was: 2.6.22-rc5: pdflush oops under heavy disk load) Jay L. T. Cornwall
2007-06-25 12:42               ` Attansic L1 page corruption Jay Cliburn
2007-06-25 21:18                 ` [PATCH] atl1: disable 64bit DMA Luca Tettamanti
2007-06-25 21:36                   ` Chris Snook [this message]
2007-06-25 21:51                     ` Jay L. T. Cornwall
2007-06-25 21:57                       ` Chris Snook
2007-06-25 23:00                         ` Jay Cliburn
2007-06-25 23:17                           ` Jeff Garzik
2007-06-25 23:40                             ` Chris Snook
2007-06-26 21:12                             ` Luca
2007-06-27  0:16                   ` Jay Cliburn
2007-06-25 12:58               ` Attansic L1 page corruption (was: 2.6.22-rc5: pdflush oops under heavy disk load) Luca
2007-06-24 22:51   ` 2.6.22-rc5: pdflush oops under heavy disk load Jesper Juhl

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=46803557.50805@redhat.com \
    --to=csnook@redhat.com \
    --cc=jacliburn@bellsouth.net \
    --cc=jay@esuna.co.uk \
    --cc=jgarzik@pobox.com \
    --cc=kronos.it@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --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 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).