[Top] [All Lists]

Re: Memory corruption

To: (William J. Earl)
Subject: Re: Memory corruption
From: Toshi Morita <>
Date: Thu, 8 Jul 1999 11:49:15 -0700 (PDT)
In-reply-to: <> from "William J. Earl" at "Jul 8, 99 10:56:41 am"
>     If you have a buffer which is not cache-line-aligned (which is
> possible with the general case of raw or direct I/O, although not in
> unmodified Linux at the moment), then, for DMA into memory, you must
> use temporary buffers for any portion of the buffer which occupies
> just part of a cache line, and copy the data from the temporary buffer
> to the real buffer after the DMA completes, to account for the
> possibility of a separate thread modifying data outside the buffer in
> the shared cache line, leading to a victim writeback (or a
> writethrough on the R3000).  This could apply even to the R3000, depending
> on how the compiler generates code for a partial-word update, although
> it is unlikely.

I don't see why this is necessary?

You should only have to force a writeback of the first and last cache lines
before DMA prior to a non-cache-aligned DMA.


<Prev in Thread] Current Thread [Next in Thread>