Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756887Ab0DNVML (ORCPT ); Wed, 14 Apr 2010 17:12:11 -0400 Received: from mail-ew0-f220.google.com ([209.85.219.220]:53128 "EHLO mail-ew0-f220.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755749Ab0DNVMJ (ORCPT ); Wed, 14 Apr 2010 17:12:09 -0400 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=NOItO7ZgLPLFjbICwxJ7y635T/tYlolxASJxAgA+lX6TGgoVxC0ZqI6eWFvDhYg/OS MM66NByzdvG/3PjvVHXXYtniOfX7UEW8JXviIYhEz3BOC0LlNagMFBTbg3xVgpwLOlIh xWLwhma2Kw1hVY/m/gaeikhEXhAnoiq3/M2bg= MIME-Version: 1.0 In-Reply-To: <1271270197.31006.2133.camel@macbook.infradead.org> References: <1271270197.31006.2133.camel@macbook.infradead.org> Date: Wed, 14 Apr 2010 22:12:03 +0100 Message-ID: Subject: Re: USB transfer_buffer allocations on 64bit systems From: Pedro Ribeiro To: David Woodhouse Cc: Alan Stern , Daniel Mack , USB list , Andi Kleen , Kernel development list , Andrew Morton , Greg KH , iommu@lists.linux-foundation.org, Chris Wright Content-Type: multipart/mixed; boundary=00c09fc2bd8a772307048438d4b7 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 32801 Lines: 457 --00c09fc2bd8a772307048438d4b7 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On 14 April 2010 19:36, David Woodhouse wrote: > On Wed, 2010-04-14 at 14:15 -0400, Alan Stern wrote: >> >> Since using mem=3D4096M or GFP_DMA stopped the symptoms, it seems very >> likely that a buffer is getting allocated above the 4 GB line and not >> bounced or IOMMU-mapped correctly. >> >> David, do you have anything to suggest? =A0Any ways to check for IOMMU >> or related errors? >> >> The problem, in short, is that USB audio doesn't work properly when >> Pedro boots a 64-bit kernel on his 4-GB machine. =A0With a 32-bit kernel >> it works okay, and it also works if we use dma_alloc_coherent(). =A0The >> host controller is limited to 32-bit DMA, and the DMA addresses >> generated by dma_map_single() appear to be normal. >> >> At the moment we don't even know if this is caused by a bug in the >> kernel or a bug in Pedro's hardware. =A0But he has observed the same >> problem on two different machines, both using the ICH9 chipset. > > Pedro's dmesg suggests that his machine has an IOMMU, but his kernel > isn't built to support it. So he'll be using swiotlb. > > Would be interesting to enable CONFIG_DMAR and check whether the problem > goes away. If so, we can start looking harder at the swiotlb code. > > -- > David Woodhouse =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Op= en Source Technology Centre > David.Woodhouse@intel.com =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0 =A0 =A0Intel Corporation > > Turns out CONFIG_DMAR was disabled because of PREEMPT_RT. I disabled the later and enabled _DMAR. It took a long time to boot, something wrong with the usb ports. You can see it in the appended dmesg from time 11s to 100s. Then after it booted, I could barely move my USB mouse and lots of errors appeared on dmesg. I tried to connect the DVB card but it wouldn't even initialize. Enabling it with iommu=3Dpt seemed to make no difference. Thanks, Pedro --00c09fc2bd8a772307048438d4b7 Content-Type: application/x-bzip2; name="dmesg.dmar.tar.bz2" Content-Disposition: attachment; filename="dmesg.dmar.tar.bz2" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g80mxql60 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 --00c09fc2bd8a772307048438d4b7-- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/