Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753449AbZAKILc (ORCPT ); Sun, 11 Jan 2009 03:11:32 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1750938AbZAKILU (ORCPT ); Sun, 11 Jan 2009 03:11:20 -0500 Received: from 8bytes.org ([88.198.83.132]:52244 "EHLO 8bytes.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750779AbZAKILS (ORCPT ); Sun, 11 Jan 2009 03:11:18 -0500 Date: Sun, 11 Jan 2009 09:11:17 +0100 From: Joerg Roedel To: Ingo Molnar Cc: Joerg Roedel , Thomas Gleixner , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org, mingo@redhat.com Subject: Re: [PATCH 0/16] DMA-API debugging facility v2 Message-ID: <20090111081117.GM9466@8bytes.org> References: <1231517970-20288-1-git-send-email-joerg.roedel@amd.com> <20090110235435.GD20843@elte.hu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20090110235435.GD20843@elte.hu> User-Agent: Mutt/1.5.13 (2006-08-11) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4268 Lines: 91 On Sun, Jan 11, 2009 at 12:54:35AM +0100, Ingo Molnar wrote: > > * Joerg Roedel wrote: > > > Hi, > > > > this is version 2 of the patchset which introduces code to debug drivers > > usage of the DMA-API. Many thanks to all the reviewers and the useful > > comments on the fist version of this patchset. Tests with hardware > > IOMMUs have shown several bugs in drivers regarding the usage of that > > API. Problems were found especially in network card drivers. > > > > These bugs often don't show up or have any negative impact if there is > > no hardware IOMMU in use in the system. But with an hardware IOMMU these > > bugs turn the hardware unusable or, in the worst case, cause data > > corruption on devices which are managed by other (good) drivers. > > > > With the code these patches introduce driver developers can find several > > bugs of misusing the DMA-API in their drivers. But be aware, it can not > > find all possible bugs. If it finds a problem it prints out messages > > like > > > > ------------[ cut here ]------------ > > WARNING: at /data2/repos/linux.trees.git/lib/dma-debug.c:231 check_unmap+0xab/0x3d9() > > Hardware name: Toonie > > bnx2 0000:01:00.0: DMA-API: device driver tries to free DMA memory it has not allocated [device address=0x00000000011] > > Modules linked in: > > Pid: 0, comm: swapper Not tainted 2.6.28 #174 > > Call Trace: > > [] warn_slowpath+0xd3/0xf2 > > [] ? find_usage_backwards+0xe2/0x116 > > [] ? find_usage_backwards+0xe2/0x116 > > [] ? usb_hcd_link_urb_to_ep+0x94/0xa0 > > [] ? mark_lock+0x1c/0x364 > > [] ? __lock_acquire+0xaec/0xb55 > > [] ? mark_lock+0x1c/0x364 > > [] ? get_hash_bucket+0x28/0x33 > > [] ? _spin_lock_irqsave+0x69/0x75 > > [] ? get_hash_bucket+0x28/0x33 > > [] check_unmap+0xab/0x3d9 > > [] ? trace_hardirqs_on_caller+0x108/0x14a > > [] ? trace_hardirqs_on+0xd/0xf > > [] debug_unmap_single+0x3e/0x40 > > [] dma_unmap_single+0x3d/0x60 > > [] pci_unmap_page+0x1c/0x1e > > [] bnx2_poll_work+0x626/0x8cb > > [] ? __lock_acquire+0xaec/0xb55 > > [] ? run_posix_cpu_timers+0x49c/0x603 > > [] ? run_posix_cpu_timers+0x39c/0x603 > > [] ? mark_lock+0x1c/0x364 > > [] ? __lock_acquire+0xaec/0xb55 > > [] bnx2_poll_msix+0x33/0x81 > > [] net_rx_action+0x8a/0x139 > > [] __do_softirq+0x8b/0x147 > > [] call_softirq+0x1c/0x34 > > [] do_softirq+0x39/0x90 > > [] irq_exit+0x4e/0x98 > > [] do_IRQ+0x11f/0x135 > > [] ret_from_intr+0x0/0xf > > <4>---[ end trace 4339d58302097423 ]--- > > > > This way driver developers get an idea where the problem is in their > > code. > > > > I hope I addressed most of the review comments and objections from the > > first version. Please give this version also a good review and send me > > your comments. > > Looks pretty good in general - modulo the few observations i just made in > reply to the patches. (Note, the comments apply to all the patches - > there's similar small issues in other places as well.) > > Did you have a chance to look at debugobjects and see whether it could be > reused as the dma-debug-entry object management code? Yes, I looked at it. But the code looks like it is used to debug object state and not to provide objects for debugging code. > One request: could you please git-base it on the changes in tip/core/iommu > (i only have looked at the patches in email - i presume the current ones > are based on -git)? Yes, I will rebase it for the next post. Joerg -- 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/