Messages in this thread | | | Date | Thu, 15 Jan 2009 12:44:35 +0900 | Subject | Re: [PATCH 03/16] dma-debug: add hash functions for dma_debug_entries | From | FUJITA Tomonori <> |
| |
On Wed, 14 Jan 2009 18:48:04 +0100 Ingo Molnar <mingo@elte.hu> wrote:
> > * Andrew Morton <akpm@linux-foundation.org> wrote: > > > On Wed, 14 Jan 2009 12:43:47 +0100 Ingo Molnar <mingo@elte.hu> wrote: > > > > > > > > * Andrew Morton <akpm@linux-foundation.org> wrote: > > > > > > > On Fri, 9 Jan 2009 17:19:17 +0100 Joerg Roedel <joerg.roedel@amd.com> wrote: > > > > > > > > > +struct hash_bucket { > > > > > + struct list_head list; > > > > > + spinlock_t lock; > > > > > +} ____cacheline_aligned; > > > > > > > > __cacheline_aligned_in_smp. > > > > > > > > This all looks like an exotically large amount of code for a debug > > > > thingy? > > > > > > this code checks the DMA usage of ~1 million lines of kernel code - all > > > the DMA using drivers. I think Joerg's feature is hugely relevant as DMA > > > scribbles are one of the hardest to debug kernel bugs: they can end up in > > > permanent data corruption or other hard to find bugs. In fact i think his > > > patchset is rather simple and even having 10 times as much debug code > > > would pay for its existence in the long run. > > > > > > > Have we previously found bugs by other means which this facility would > > have detected? I don't recall any... > > btw., during the past decade we have had countless very ugly driver DMA > bugs in the past that took vendors months and specialized equipment to > track down. > > I cannot give you a number breakdown, only an impression: storage drivers > tended to be the hardest hit (due to the severity of the bugs and due to > their inherent complexity) - but DMA bugs in networking drivers can be > hard to track down too.
We have had ugly DMA bugs in scsi drivers but I think that this new feature can find very few of them. I can't think of any SCSI driver bugs that this could find. This feature can't find any popular DMA bugs in scsi drivers, such as messing up driver's dma descriptor from a scatter gather list.
But this can find some kinds of DMA bugs and it's is just about 1,000 lines. I don't see any problem about merging this. 1,000 lines it too large? Maybe cutting just 1,000 lines up into too many pieces is deceptive.
| |