On Wed, 2009-03-04 at 22:56 +0000, James Bottomley wrote: > On Wed, 2009-03-04 at 22:45 +0100, Thomas Gleixner wrote: > > On Wed, 4 Mar 2009, Thomas Gleixner wrote: > > > > Instrumented the code and the result of the failing request is > > below. Looks like the function which sets up the request gets > > nr_phys_segments wrong by one. > > > > If you need further trace data feel free to ask. > > OK, the mapping all checks out correctly ... there must be something > wrong with the way we count before mapping. > > If you're tracing everything, could you add these static prints to the > trace ... they'll trigger a lot, but capturing how they applied to the > failing request might tell us why the count is wrong. Debugging this on IRC, this is the point we reached: ftrace debugging patch: http://tglx.de/~tglx/dbg.patch We're tracing both blk_recalc_rq_segments() and blk_phys_contig_segment() The results are here: http://tglx.de/~tglx/t.txt.bz2 Although what they show is that we're missing the point where the counting goes wrong (blk_recalc_rq_segments only goes up to 5 max). James -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html