All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alain Knaff <alain@knaff.lu>
To: markh@compro.net
Cc: fdutils@fdutils.linux.lu, torvalds@linux-foundation.org,
	linux-kernel@vger.kernel.org
Subject: DMA cache consistency bug introduced in 2.6.28 (Was: Re: [Fdutils] Cannot format floppies under kernel 2.6.*?)
Date: Thu, 17 Dec 2009 18:00:04 +0100	[thread overview]
Message-ID: <4B2A6394.3080705@knaff.lu> (raw)
In-Reply-To: <4B2A530D.3080606@knaff.lu>

On 17/12/09 16:49, Alain Knaff wrote:
> On 17/12/09 16:43, Mark Hounschell wrote:
>> On 12/17/2009 10:35 AM, Alain Knaff wrote:
>>
>>>> Should I do more work in between?
>>>
>>> No, but make sure to look at track 0... Other tracks will still have the
>>> error, as there was nothing forcing a memory flush between track 0 and 1...
>>
>> Ok track 0
> [...]
>> 0: 0
>> 1: 0
>> 2: 0
>> 3: 4f  <--
>> 4: 0 
>> 5: 1 
>> 6: 2 
>> no disk change
> 
> Yeah, that's what I meant... So the memory flusher program didn't manage to
> clear up the inconsistency...
> 
> So either my theory is wrong, or the memory flusher program was not
> efficient enough.... hmmm, maybe doing some surfing in between the formats,
> or doing another kernel compilation might be a better test.
> 
> Alain

Ok, so I had a look at the differences between 2.6.27.41 and 2.6.28, and
there have indeed been changes to the iommu and DMA handling code.

So I suspect that the problem may be lying here

Cc'ed Linus and kernel list on this. For Linux and the list, here's the
summary of what we are observing:

- A DMA transfer of a memory block transfers the wrong value for the first
byte of the block. All other bytes of the block are transferred correctly.
The value of the first byte turns out to be the value that this byte held
during the *previous* transfer. Just as if there was some kind of cache,
and the transfer started before that cache was refreshed with the new
values from main memory.

Example:

1. initial contents:  33 44 55 66
2. one DMA transfer is performed
3. program changes buffer to: 77 88 99 aa
4. new DMA transfer is performed => instead it transmits 33 88 99 aa
   (i.e. first byte is from previous contents)

This used to work in 2.6.27.41, but broke in 2.6.28 . It doesn't happen on
all hardware though.

It does indeed seem to be related to a DMA-side cache (rather than the
processor's cache not being flushed to main memory), as doing lots of
memory intensive work (kernel compilation) between 2 and 3 doesn't fix the
problem.

In the diff between 2.6.27.41 and 2.6.28, I noticed a lot of changes in
arch/x86/kernel/amd_iommu.c and related files, could any of these have
triggered this behavior?

Any ideas, anybody?

Alain

       reply	other threads:[~2009-12-17 17:00 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <4AFB3962.2020106@ntlworld.com>
     [not found] ` <4B2610F8.7050609@cfl.rr.com>
     [not found]   ` <4B2618EF.9020709@knaff.lu>
     [not found]     ` <4B264448.5040604@compro.net>
     [not found]       ` <4B26884C.8000306@knaff.lu>
     [not found]         ` <4B2697C4.2040204@compro.net>
     [not found]           ` <4B26A82E.5040902@knaff.lu>
     [not found]             ` <4B26B031.4060301@compro.net>
     [not found]               ` <4B26BAE3.2090408@knaff.lu>
     [not found]                 ` <4B275975.8040509@cfl.rr.com>
     [not found]                   ` <4B275B18.80704@knaff.lu>
     [not found]                     ` <4B275D37.4090807@cfl.rr.com>
     [not found]                       ` <4B2761E9.2030301@knaff.lu>
     [not found]                         ` <4B276513.6030509@cfl.rr.com>
     [not found]                           ` <4B276753.80807@knaff.lu>
     [not found]                             ` <4B27983F.5090600@compro.net>
     [not found]                               ` <4B27EF18.7050101@knaff.lu>
     [not found]                                 ` <4B28FDEB.3030800@compro.net>
     [not found]                                   ` <4B290029.90602@knaff.lu>
     [not found]                                     ` <4B2901DB.8040403@compro.net>
     [not found]                                       ` <4B29052B.9070406@knaff.lu>
     [not found]                                         ` <4B292D84.5040306@compro.net>
     [not found]                                           ` <4B29624F.2080109@knaff.lu>
     [not found]                                             ` <4B2A3805.8040707@compro.net>
     [not found]                                               ` <4B2A3E3E.8060405@knaff.lu>
     [not found]                                                 ` <4B2A4975.8020809@compro.net>
     [not found]                                                   ` <4B2A49F4.6070402@compro.net>
     [not found]                                                     ` <4B2A4B86.8060307@knaff.lu>
     [not found]                                                       ` <4B2A4C78.10107@compro.net>
     [not found]                                                         ` <4B2A4CF7.6040000@knaff.lu>
     [not found]                                                           ` <4B2A4EC9.2030902@compro.net>
     [not found]                                                             ` <4B2A4FA5.5000701@knaff.lu>
     [not found]                                                               ` <4B2A5192.6090602@compro.net>
     [not found]                                                                 ` <4B2A530D.3080606@knaff! .lu>
     [not found]                                                                   ` <4B2A530D.3080606@knaff.lu>
2009-12-17 17:00                                                                     ` Alain Knaff [this message]
2009-12-17 17:27                                                                       ` DMA cache consistency bug introduced in 2.6.28 (Was: Re: [Fdutils] Cannot format floppies under kernel 2.6.*?) Linus Torvalds
2009-12-17 18:21                                                                         ` DMA cache consistency bug introduced in 2.6.28 Krzysztof Halasa
2009-12-17 20:46                                                                         ` DMA cache consistency bug introduced in 2.6.28 (Was: Re: [Fdutils] Cannot format floppies under kernel 2.6.*?) Alain Knaff
2009-12-17 21:14                                                                           ` Linus Torvalds
2009-12-17 22:11                                                                             ` Alain Knaff
2009-12-17 22:43                                                                               ` Linus Torvalds
2009-12-17 23:24                                                                                 ` Alain Knaff
2009-12-18  8:59                                                                                   ` Mark Hounschell
2009-12-18 10:55                                                                                     ` [Fdutils] DMA cache consistency bug introduced in 2.6.28 (Was: " Mark Hounschell
2009-12-18 15:01                                                                                       ` [Fdutils] DMA cache consistency bug introduced in 2.6.28 Krzysztof Halasa
2009-12-18 15:22                                                                                       ` [Fdutils] DMA cache consistency bug introduced in 2.6.28 (Was: Re: Cannot format floppies under kernel 2.6.*?) Linus Torvalds
2009-12-18 15:28                                                                                         ` Mark Hounschell
2009-12-18 15:45                                                                                           ` Linus Torvalds
2009-12-18 20:04                                                                                             ` Mark Hounschell
2009-12-18 20:15                                                                                               ` Linus Torvalds
2009-12-22 15:11                                                                                                 ` Mark Hounschell
2009-12-22 17:38                                                                                                   ` Linus Torvalds
2009-12-22 17:57                                                                                                     ` Mark Hounschell
2009-12-22 23:37                                                                                                       ` Pallipadi, Venkatesh
2009-12-23  0:22                                                                                                         ` Mark Hounschell
2009-12-23 13:02                                                                                                           ` Mark Hounschell
2009-12-23 15:10                                                                                                             ` Pallipadi, Venkatesh
2009-12-23 15:34                                                                                                               ` Mark Hounschell
2009-12-23 15:57                                                                                                                 ` Mark Hounschell
2009-12-23 16:31                                                                                                                 ` Linus Torvalds
2009-12-23 16:38                                                                                                                   ` [Fdutils] DMA cache consistency bug introduced in 2.6.28 Andi Kleen
2009-12-23 16:49                                                                                                                     ` Linus Torvalds
2009-12-23 17:08                                                                                                                       ` Andi Kleen
2009-12-25 12:21                                                                                                                         ` Arjan van de Ven
2009-12-25 20:33                                                                                                                           ` Andi Kleen
2009-12-26  9:38                                                                                                                             ` Arjan van de Ven
2009-12-26 16:40                                                                                                                               ` Andi Kleen
2009-12-27 12:28                                                                                                                                 ` Alain Knaff
2009-12-28  1:54                                                                                                                                   ` Andi Kleen
2009-12-28 10:27                                                                                                                                     ` Alain Knaff
2009-12-28 14:54                                                                                                                                       ` Andi Kleen
2009-12-27 11:09                                                                                                                         ` Pavel Machek
2009-12-28 20:54                                                                                                                           ` Mark Hounschell
2009-12-23 17:19                                                                                                                       ` Pallipadi, Venkatesh
2009-12-23 17:16                                                                                                                         ` Andi Kleen
2009-12-23 20:11                                                                                                                       ` alain
2009-12-23 17:41                                                                                                                     ` Mark Hounschell
2009-12-23 18:01                                                                                                                       ` Linus Torvalds
2009-12-23 18:11                                                                                                                         ` Mark Hounschell
2009-12-23 19:18                                                                                                                       ` Pallipadi, Venkatesh
2009-12-23 19:35                                                                                                                         ` Mark Hounschell
2009-12-23 20:30                                                                                                                           ` Pallipadi, Venkatesh
2009-12-23 20:34                                                                                                                             ` alain
2009-12-23 21:34                                                                                                                               ` Pallipadi, Venkatesh
2010-01-08 17:42                                                                                                                             ` Mark Hounschell
2010-01-12  0:19                                                                                                                               ` Pallipadi, Venkatesh
2010-01-12  9:04                                                                                                                                 ` Mark Hounschell
2010-01-15  2:01                                                                                                                                   ` Pallipadi, Venkatesh
2010-01-15  9:39                                                                                                                                     ` Mark Hounschell
2010-01-15 18:02                                                                                                                                     ` Mark Hounschell
2010-01-21 19:09                                                                                                                                       ` [PATCH] x86: Disable HPET MSI on ATI SB700/SB800 Pallipadi, Venkatesh
2010-01-22 22:00                                                                                                                                         ` [tip:x86/urgent] " tip-bot for Pallipadi, Venkatesh
2010-01-23  6:51                                                                                                                                         ` tip-bot for Pallipadi, Venkatesh
2010-01-23  7:21                                                                                                                                         ` [PATCH] " Yuhong Bao
2010-01-25 17:10                                                                                                                                           ` Andreas Herrmann
2010-01-28  9:17                                                                                                                                             ` Mark Hounschell
2010-01-28 13:25                                                                                                                                               ` Mark Hounschell
2010-01-28 13:41                                                                                                                                                 ` Borislav Petkov
2010-01-28 14:45                                                                                                                                                   ` Mark Hounschell
2010-05-17 14:59                                                                                                                                             ` Andreas Herrmann
2010-05-17 15:10                                                                                                                                               ` Yuhong Bao
2010-05-17 15:12                                                                                                                                               ` Linus Torvalds
2010-05-17 16:46                                                                                                                                                 ` Andreas Herrmann
2010-05-18  0:56                                                                                                                                               ` Robert Hancock
2010-05-18  1:02                                                                                                                                                 ` Linus Torvalds
2010-05-18  1:06                                                                                                                                                   ` Robert Hancock
2010-05-18  8:45                                                                                                                                                 ` Andi Kleen
2010-05-18 23:22                                                                                                                                                   ` Robert Hancock

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=4B2A6394.3080705@knaff.lu \
    --to=alain@knaff.lu \
    --cc=fdutils@fdutils.linux.lu \
    --cc=linux-kernel@vger.kernel.org \
    --cc=markh@compro.net \
    --cc=torvalds@linux-foundation.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 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.