From: Ingo Molnar <mingo@elte.hu>
To: Joerg Roedel <joerg.roedel@amd.com>,
Thomas Gleixner <tglx@linutronix.de>
Cc: linux-kernel@vger.kernel.org, mingo@redhat.com,
dwmw2@infradead.org, fujita.tomonori@lab.ntt.co.jp,
netdev@vger.kernel.org, iommu@lists.linux-foundation.org
Subject: Re: [PATCH 0/16] DMA-API debugging facility v2
Date: Sun, 11 Jan 2009 00:54:35 +0100 [thread overview]
Message-ID: <20090110235435.GD20843@elte.hu> (raw)
In-Reply-To: <1231517970-20288-1-git-send-email-joerg.roedel@amd.com>
* Joerg Roedel <joerg.roedel@amd.com> 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:
> <IRQ> [<ffffffff8105af3a>] warn_slowpath+0xd3/0xf2
> [<ffffffff8107c36f>] ? find_usage_backwards+0xe2/0x116
> [<ffffffff8107c36f>] ? find_usage_backwards+0xe2/0x116
> [<ffffffff812efd16>] ? usb_hcd_link_urb_to_ep+0x94/0xa0
> [<ffffffff8107c52b>] ? mark_lock+0x1c/0x364
> [<ffffffff8107d8f7>] ? __lock_acquire+0xaec/0xb55
> [<ffffffff8107c52b>] ? mark_lock+0x1c/0x364
> [<ffffffff811e2b4b>] ? get_hash_bucket+0x28/0x33
> [<ffffffff814b25a5>] ? _spin_lock_irqsave+0x69/0x75
> [<ffffffff811e2b4b>] ? get_hash_bucket+0x28/0x33
> [<ffffffff811e2ff2>] check_unmap+0xab/0x3d9
> [<ffffffff8107c9ed>] ? trace_hardirqs_on_caller+0x108/0x14a
> [<ffffffff8107ca3c>] ? trace_hardirqs_on+0xd/0xf
> [<ffffffff811e3433>] debug_unmap_single+0x3e/0x40
> [<ffffffff8128d2d8>] dma_unmap_single+0x3d/0x60
> [<ffffffff8128d335>] pci_unmap_page+0x1c/0x1e
> [<ffffffff81290759>] bnx2_poll_work+0x626/0x8cb
> [<ffffffff8107d8f7>] ? __lock_acquire+0xaec/0xb55
> [<ffffffff81070100>] ? run_posix_cpu_timers+0x49c/0x603
> [<ffffffff81070000>] ? run_posix_cpu_timers+0x39c/0x603
> [<ffffffff8107c52b>] ? mark_lock+0x1c/0x364
> [<ffffffff8107d8f7>] ? __lock_acquire+0xaec/0xb55
> [<ffffffff81292804>] bnx2_poll_msix+0x33/0x81
> [<ffffffff813b6478>] net_rx_action+0x8a/0x139
> [<ffffffff8105ff39>] __do_softirq+0x8b/0x147
> [<ffffffff8102933c>] call_softirq+0x1c/0x34
> [<ffffffff8102a611>] do_softirq+0x39/0x90
> [<ffffffff8105fde8>] irq_exit+0x4e/0x98
> [<ffffffff8102a5c2>] do_IRQ+0x11f/0x135
> [<ffffffff81028b93>] ret_from_intr+0x0/0xf
> <EOI> <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?
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)?
That way we'll have it on top of Fujita's very nice DMA-mapping
consolidation code.
Ingo
next prev parent reply other threads:[~2009-01-10 23:55 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-09 16:19 [PATCH 0/16] DMA-API debugging facility v2 Joerg Roedel
2009-01-09 16:19 ` [PATCH 01/16] dma-debug: add Kconfig entry Joerg Roedel
2009-01-09 20:12 ` Randy Dunlap
2009-01-09 16:19 ` [PATCH 02/16] dma-debug: add header file and core data structures Joerg Roedel
2009-01-11 6:25 ` FUJITA Tomonori
2009-01-09 16:19 ` [PATCH 03/16] dma-debug: add hash functions for dma_debug_entries Joerg Roedel
2009-01-09 17:55 ` Evgeniy Polyakov
2009-01-09 18:14 ` Joerg Roedel
2009-01-09 18:23 ` Evgeniy Polyakov
2009-01-09 18:40 ` Joerg Roedel
2009-01-13 8:51 ` Andrew Morton
2009-01-13 8:59 ` David Woodhouse
2009-01-14 11:43 ` Ingo Molnar
2009-01-14 17:39 ` Andrew Morton
2009-01-14 17:43 ` Ingo Molnar
2009-01-14 17:48 ` Ingo Molnar
2009-01-15 3:44 ` FUJITA Tomonori
2009-01-14 17:48 ` David Woodhouse
2009-01-14 17:51 ` Joerg Roedel
2009-01-09 16:19 ` [PATCH 04/16] dma-debug: add allocator code Joerg Roedel
2009-01-10 23:43 ` Ingo Molnar
2009-01-09 16:19 ` [PATCH 05/16] dma-debug: add initialization code Joerg Roedel
2009-01-09 17:58 ` Evgeniy Polyakov
2009-01-09 18:17 ` Joerg Roedel
2009-01-09 16:19 ` [PATCH 06/16] dma-debug: add kernel command line parameters Joerg Roedel
2009-01-09 16:19 ` [PATCH 07/16] dma-debug: add debugfs interface Joerg Roedel
2009-01-10 23:08 ` Ingo Molnar
2009-01-11 7:52 ` Joerg Roedel
2009-01-14 15:22 ` Joerg Roedel
2009-01-10 23:15 ` Ingo Molnar
2009-01-09 16:19 ` [PATCH 08/16] dma-debug: add core checking functions Joerg Roedel
2009-01-10 23:11 ` Ingo Molnar
2009-01-11 7:57 ` Joerg Roedel
2009-01-11 8:34 ` Joerg Roedel
2009-01-14 11:44 ` Joerg Roedel
2009-01-14 11:48 ` Ingo Molnar
2009-01-10 23:12 ` Ingo Molnar
2009-01-11 7:54 ` Joerg Roedel
2009-01-10 23:13 ` Ingo Molnar
2009-01-09 16:19 ` [PATCH 09/16] dma-debug: add checking for map/unmap_single Joerg Roedel
2009-01-09 16:19 ` [PATCH 10/16] dma-debug: add add checking for map/unmap_sg Joerg Roedel
2009-01-09 18:08 ` Evgeniy Polyakov
2009-01-09 18:11 ` Joerg Roedel
2009-01-09 16:19 ` [PATCH 11/16] dma-debug: add checking for [alloc|free]_coherent Joerg Roedel
2009-01-11 6:25 ` FUJITA Tomonori
2009-01-11 6:30 ` FUJITA Tomonori
2009-01-11 7:59 ` Joerg Roedel
2009-01-09 16:19 ` [PATCH 12/16] dma-debug: add checks for sync_single_* Joerg Roedel
2009-01-09 16:19 ` [PATCH 13/16] dma-debug: add checks for sync_single_range_* Joerg Roedel
2009-01-09 16:19 ` [PATCH 14/16] dma-debug: add checks for sync_single_sg_* Joerg Roedel
2009-01-10 23:46 ` Ingo Molnar
2009-01-11 8:00 ` Joerg Roedel
2009-01-09 16:19 ` [PATCH 15/16] dma-debug: x86 architecture bindings Joerg Roedel
2009-01-10 23:04 ` Ingo Molnar
2009-01-10 23:48 ` Ingo Molnar
2009-01-11 6:25 ` FUJITA Tomonori
2009-01-11 8:08 ` Joerg Roedel
2009-01-09 16:19 ` [PATCH 16/16] dma-debug: Documentation update Joerg Roedel
2009-01-09 21:24 ` [PATCH 0/16] DMA-API debugging facility v2 Michael Chan
2009-01-09 22:33 ` Joerg Roedel
2009-01-09 22:37 ` Joerg Roedel
2009-01-11 6:25 ` FUJITA Tomonori
2009-01-10 23:54 ` Ingo Molnar [this message]
2009-01-11 8:11 ` Joerg Roedel
2009-02-05 22:52 ` David Woodhouse
2009-02-06 2:05 ` Chris Wright
2009-02-06 7:56 ` David Woodhouse
2009-02-06 16:08 ` Chris Wright
2009-02-06 18:20 ` Chris Wright
2009-02-12 14:48 ` Joerg Roedel
2009-02-06 2:27 ` Chris Wright
2009-02-12 15:20 ` Joerg Roedel
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=20090110235435.GD20843@elte.hu \
--to=mingo@elte.hu \
--cc=dwmw2@infradead.org \
--cc=fujita.tomonori@lab.ntt.co.jp \
--cc=iommu@lists.linux-foundation.org \
--cc=joerg.roedel@amd.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=tglx@linutronix.de \
/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.