From: Marcin Dalecki <dalecki@evision.ag>
To: Jens Axboe <axboe@suse.de>
Cc: martin@dalecki.de, Petr Vandrovec <VANDROVE@vc.cvut.cz>,
linux-kernel@vger.kernel.org
Subject: Re: IDE from current bk tree, UDMA and two channels...
Date: Thu, 01 Aug 2002 11:56:43 +0200 [thread overview]
Message-ID: <3D4905DB.70305@evision.ag> (raw)
In-Reply-To: 20020801095609.GE1096@suse.de
Jens Axboe wrote:
> On Wed, Jul 31 2002, Marcin Dalecki wrote:
>
>>>Unfortunately, problem is still here: when kernel was in idedisk_do_request
>>>performed on channel 0, IRQ for channel 1 arrived, and this irq found
>>>channel 1 DMA engine ready, but drive had DRQ set... oops. Shortly after
>>>that IRQ for channel 1 arrived again, but as it was unexpected, nothing
>>>happened.
>>>
>>>I hope that i845 is not simplex device, but first (unexpected) IRQ arrived
>>>just when channel 0 code wrote new value to its IDE_SELECT_REG register.
>>>Now I even disconnected DVD drive, so it is simple two masters, two
>>>channels configuration, but it still happens.
>>
>>One idea and one experiment I was already thinking about is
>>to change do_ide_request to actually *not* select delibreately which
>>device do handle. (The big for loop found there...)
>>One can instead search for a device on the channel which is matching
>>the queue for which do_ide_request() was called.
>>
>>for (unit = 0; unit < MAX_DEVICES; ++unit) {
>> ....
>> if (tmp->queue == q) {
>> drive = tmp;
>> break;
>> }
>>}
>>if (!drive)
>> BUG();
>
>
> hey that sucks :-)
Since IDE 111 not any more...
> seriously, the better way to do this would be to change the q->queuedata
> to be a pointer to drive instead of the channel.
... becouse this is already *done* there :-).
> that would work, but I think it would seriously starve the other device
> on the same channel.
We starve anyway, becouse the kernel isn't real time and we can't
guarantee "sleeping" for some maximum time and comming back.
We don't reschedule the kernel during this kind of "sleeping".
And we can't know that a command on the "mate" will not take
extraordinary amounts of time. It's only a problem if mixing travan
tapes with disks on a channel.
next prev parent reply other threads:[~2002-08-01 9:58 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-07-30 19:26 IDE from current bk tree, UDMA and two channels Petr Vandrovec
2002-07-31 20:01 ` Marcin Dalecki
2002-08-01 9:56 ` Jens Axboe
2002-08-01 9:56 ` Marcin Dalecki [this message]
2002-08-01 10:05 ` Jens Axboe
2002-08-01 10:33 ` Marcin Dalecki
2002-08-01 10:45 ` Jens Axboe
-- strict thread matches above, loose matches on Subject: below --
2002-08-01 23:13 Petr Vandrovec
2002-08-02 13:07 ` Alan Cox
2002-08-01 23:00 Petr Vandrovec
2002-08-01 23:05 ` Alexander Viro
2002-08-01 22:53 Petr Vandrovec
2002-08-01 23:02 ` Alexander Viro
2002-08-01 23:54 ` Linus Torvalds
[not found] <200208012219.g71MJV109133@penguin.transmeta.com>
2002-08-01 22:45 ` Alexander Viro
2002-08-02 9:10 ` Marcin Dalecki
2002-08-01 22:42 Petr Vandrovec
2002-08-01 22:52 ` Alexander Viro
2002-08-02 9:11 ` Marcin Dalecki
2002-08-01 22:34 Petr Vandrovec
2002-08-01 17:07 Petr Vandrovec
2002-08-01 22:00 ` Petr Vandrovec
2002-08-01 22:13 ` Marcin Dalecki
2002-08-01 22:39 ` Alexander Viro
2002-07-30 18:19 Petr Vandrovec
2002-07-31 19:48 ` Marcin Dalecki
2002-07-30 16:15 Petr Vandrovec
2002-07-30 14:03 Petr Vandrovec
2002-07-30 14:25 ` Marcin Dalecki
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=3D4905DB.70305@evision.ag \
--to=dalecki@evision.ag \
--cc=VANDROVE@vc.cvut.cz \
--cc=axboe@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=martin@dalecki.de \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox