[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20120302175719.GA1468@wavehammer.waldi.eu.org>
Date: Fri, 2 Mar 2012 18:57:19 +0100
From: Bastian Blank <waldi@...ian.org>
To: Dan Williams <dan.j.williams@...el.com>
Cc: Jonathan Nieder <jrnieder@...il.com>,
xen-devel@...ts.xensource.com,
pkg-xen-devel@...ts.alioth.debian.org,
Maciej Sosnowski <maciej.sosnowski@...el.com>,
linux-kernel@...r.kernel.org, William Dauchy <wdauchy@...il.com>,
Konrad Rzeszutek Wilk <konrad@...nok.org>,
Dave Jiang <dave.jiang@...el.com>
Subject: Re: [Pkg-xen-devel] ioatdma: Boot process hangs then reboots when
using Xen + Linux 3.2
On Fri, Mar 02, 2012 at 08:44:00AM -0800, Dan Williams wrote:
> On Fri, Mar 2, 2012 at 8:21 AM, Bastian Blank <waldi@...ian.org> wrote:
> > On Thu, Mar 01, 2012 at 10:42:44PM -0800, Dan Williams wrote:
> >> WARN_ON may work, but then kernel may be subject random hangs from missed
> >> i/o completions.
> ...actually descriptors completing too early.
The interrupt happens while the module is still loading, so most likely
directly after enabling them. There should be no request in flight yet.
What puzzles me is the mix of different data types in the ioatdma
driver:
| u64 completion = *chan->completion;
| unsigned long phys_complete = completion & ~0x3f;
The state is 64bit long, but is down converted to a 32bit value without
anything.
phys_complete (a 32 bit value) gets compared to struct
dma_async_tx_descriptor.phys, which is defined as dma_addr_t, a _64_ bit
value.
Bastian
--
... The prejudices people feel about each other disappear when they get
to know each other.
-- Kirk, "Elaan of Troyius", stardate 4372.5
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists