All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jens Axboe <axboe@suse.de>
To: Marcelo Tosatti <marcelo@conectiva.com.br>
Cc: Karsten Weiss <knweiss@gmx.de>,
	lkml <linux-kernel@vger.kernel.org>,
	Andre Hedrick <andre@linux-ide.org>
Subject: Re: Linux 2.4.19-pre3
Date: Wed, 13 Mar 2002 09:09:46 +0100	[thread overview]
Message-ID: <20020313080946.GC15877@suse.de> (raw)
In-Reply-To: <20020312134631.GE1473@suse.de> <Pine.LNX.4.21.0203121558300.3462-100000@freak.distro.conectiva>
In-Reply-To: <Pine.LNX.4.21.0203121558300.3462-100000@freak.distro.conectiva>

On Tue, Mar 12 2002, Marcelo Tosatti wrote:
> So, Jens, could you please explain the problem in the interrupt handlers
> in detail ?

Ok... It affects all the pio handlers in ide-taskfile.c,
multi-write/read as well. The address for pio transfers is calculated
like so:

va = rq->buffer + (rq->nr_sectors - rq->current_nr_sectors) * SECTOR_SIZE;

which is wrong for two reasons. First of all, rq->buffer cannot be
indexed for the entire nr_sectors range -- it's per definition only the
first segment in the request, and can as such only be indexed within the
first current_nr_sectors number of sectors. The above can be grossly out
of range... Second, nr_sectors and current_nr_sectors are indexing two
different things -- the former indexes the entire request (all segments)
while the latter indexes only the first segments. So

	foo = rq->nr_sectors - rq->current_nr_sectors;

makes no sense _at all_ and can only be wrong.

So why does 2.4.19-pre3 work for pio at all? For the same reason that
Andre never found this problem in 2.5 either: the taskfile interrupt
handlers are _never_ used in pio mode. In 2.5 it was by accident, and
when the merge happened they did indeed get used. It ate disks, very
quickly. Take a look at drivers/ide/ide-disk.c, line 64:

#ifdef CONFIG_IDE_TASKFILE_IO
#  undef __TASKFILE__IO /* define __TASKFILE__IO */
#else /* CONFIG_IDE_TASKFILE_IO */
#  undef __TASKFILE__IO
#endif /* CONFIG_IDE_TASKFILE_IO */

It's a mess... This really should have been fixed prior to 2.4
inclusion. Oh well.

-- 
Jens Axboe


  reply	other threads:[~2002-03-13  8:10 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-03-11 21:08 Linux 2.4.19-pre3 Marcelo Tosatti
2002-03-11 22:40 ` Eyal Lebedinsky
2002-03-11 23:03   ` Alan Cox
2002-03-11 22:55 ` Stephan von Krawczynski
2002-03-12  1:50   ` Mike Fedyk
2002-03-12 11:06     ` Stephan von Krawczynski
2002-03-12 21:59   ` Paul Mackerras
2002-03-11 23:04 ` Eyal Lebedinsky
2002-03-11 23:14   ` Keith Owens
2002-03-12 15:49   ` DevilKin
2002-03-21 12:06   ` [patch] Don't offer CONFIG_INDYDOG on non-ip22 machines Adrian Bunk
2002-03-22 21:13     ` Marcelo Tosatti
2002-03-11 23:21 ` Linux 2.4.19-pre3 Eyal Lebedinsky
2002-03-12  1:40   ` Takeo Saito
2002-03-12  0:04 ` J.A. Magallon
2002-03-12  0:37 ` Ken Brownfield
2002-03-19  2:41   ` I/O APIC fixed in 2.4.19-pre3 & 2.5.6 (was Re: Linux 2.4.19-pre3) Ken Brownfield
2002-03-19 16:22     ` Bill Davidsen
2002-03-20  0:34       ` Ken Brownfield
2002-03-20  4:36         ` Bill Davidsen
2002-03-12 10:35 ` Linux 2.4.19-pre3 Gerd Knorr
2002-03-12 17:24   ` Trond Myklebust
2002-03-12 17:47   ` Gerd Knorr
2002-03-12 13:01 ` Karsten Weiss
2002-03-12 13:17   ` Jens Axboe
2002-03-12 13:37   ` Alan Cox
2002-03-12 13:46   ` Jens Axboe
2002-03-12 19:02     ` Marcelo Tosatti
2002-03-13  8:09       ` Jens Axboe [this message]
2002-03-13  9:00         ` Andre Hedrick
2002-03-13  9:27           ` Jens Axboe
2002-03-13  9:33             ` Andre Hedrick
2002-03-13 17:32               ` Andre Hedrick
2002-03-13 17:40                 ` Jens Axboe
2002-03-13 18:52                   ` Andre Hedrick
2002-03-14  4:41           ` Marcelo Tosatti
2002-03-14  6:28             ` Andre Hedrick
2002-03-14  3:32         ` Michal Jaegermann
2002-03-12 14:47   ` J.A. Magallon
2002-03-12 13:31 ` Jurgen Philippaerts
2002-03-12 15:43 ` Geert Uytterhoeven
  -- strict thread matches above, loose matches on Subject: below --
2002-03-12  0:51 Mikael Pettersson
2002-03-12  5:13 ` skidley
2002-03-12 21:00 ` Dave Jones
     [not found] <fa.npg7nmv.si46bq@ifi.uio.no>
2002-03-12  7:26 ` junkio

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=20020313080946.GC15877@suse.de \
    --to=axboe@suse.de \
    --cc=andre@linux-ide.org \
    --cc=knweiss@gmx.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marcelo@conectiva.com.br \
    /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.