From: Martin Dalecki <dalecki@evision-ventures.com>
To: Jens Axboe <axboe@suse.de>
Cc: Linus Torvalds <torvalds@transmeta.com>,
Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] 2.5.21 IDE 91
Date: Fri, 14 Jun 2002 18:15:14 +0200 [thread overview]
Message-ID: <3D0A1692.6070304@evision-ventures.com> (raw)
In-Reply-To: <Pine.LNX.4.33.0206082235240.4635-100000@penguin.transmeta.com> <3D09F769.8090704@evision-ventures.com> <20020614151703.GB1120@suse.de>
Użytkownik Jens Axboe napisał:
> On Fri, Jun 14 2002, Martin Dalecki wrote:
>
>>Thu Jun 13 22:59:54 CEST 2002 ide-clean-91
>>
>>- Realize that the only place where ata_do_taskfile gets used is ide-disk.c
>> move it and its "friends' over there.
>
>
> Ehm, isn't that a bit odd? The typical "I'm not looking at the
> interface, if only one person is currently using it then heck lets move
> it" Martin approach (refer to prep_rq_fn cdb builder as well)
Yes this is the usual Marcin aproach. The fscking best road to bloat
is providing interfaces "on the heap" and "just in case", which
then nobody sane uses. Wen one discovers later that they are inadequate,
we try to support them until the end of days becouse
some silly python based incompetently written setup application
turns out to love to having you know what with.
And since application level programming expierence shows me that in 99%
of the cases where interfaces are designed in front of beeing used
they turn out to be inadequate I don't do it.
Won't to see some silly things like the situation described above?
Please just count the number of ioctl for the /dev/random.
90% of them qualify as "debuggin during developement" or are
working against the purpose of the thing. Just one example.
Once another even more striking is the whole /proc/ mess.
> The above is just a minor thing, the reason I'm mailing is really:
>
> - current 2.5 bk deadlocks reading partition info off disk. Again a
> locking problem I suppose, to be honest I just got very tired when
> seeing it happen and didn't want to spend tim looking into it.
2.5.21 + the patches I did doesn't. Likely it's the driverfs?
> I thought IDE locking couldn't get worse than 2.4, but I think you are
> well into doing just that. What exactly are you plans with the channel
> locks? Right now, to me, it seems you are extending the use of them to
> the point where they would be used to serialize the entire request
> operation start? Heck, ide-cd is even holding the channel lock when
> outputting the cdb now.
After extracting out 80% of the host controller register file
access one has to realize that in reality we where releasing the lock
just to regain it immediately. Or alternatively accessing them
without any lock protection at all. (Same goes for BIO ummer layer
memmbers.) This is why they are pushed up. It's just avoiding the
"windows" between unlock and immediate relock and making the real
behaviour more "obvious". You have just realized this.
2.4 prevents the locking problems basically by georgeously
disabling IRQs. Too fine grained locking is a futile exercise.
Unless I see the time spent in system state during concurrent disk
access going really up (it doesn't right now), I don't see any thing
bad in making the locking more coarse. Locks don't came for free and
having fine grained locking isn't justifying itself.
Another "usual Marcin approach" - don't optimze for the sake of it.
See futile unlikely() tagging and inlining in tcq.c for example.
I don't do somethig like that. I have just written too much
numerical code which was really time constrained to do something
like this before looking at benchmarks.
Really constrained means having a program running 7 or "just"
5 *days*. This can make a difference, a difference in hard real
money on the range of multiple kEUR!
Finally - unless there appears some aother way to block access to
busy devices on the generic block layer I do it the only way
we have right now - spinlocks. (... looking forward to working
queue pugging and the work done by Adam richter).
Unless there is a sane way to signal partial completion - we will
be doing it at once. Unless we have a sane async io infrastructure
most of the above will be likely not solved anyway.
> - ata_end_request(). why didn't you just remove the last argument to
> __ata_end_request() instead just changing the comment saying why we
> pass nr_secs == 0 in from some sites?
One step after another. Watch for hard_xxx members from struch request
to see why I hesitated please.
> - what's the reasoning behind moving the active request into the
> ata_device?! we are serializing requests for ata_device's on the
> ata_channel anyways, which is why it made sense to have the active
> request there.
Becouse it is going to go away altogether. We need it there
just only for the purpose of the default ide_timer_expiry function, which
is subject to go away since a long time. And finally becouse
it doesn't hurt.
Further on I refer you to the discussion we had (or was it Linus?)
once about the fact that attaching physical properties of the
device to the request queue and replicating those parameters in
every single request struct, is well ... "unpleasant" on behalf of the
upper layers. Loop devices expose the same problem.
Once again just grepping for hard_ memebers of the struct
request makes it obvious.
Somce people say that using the gratest common denominator in
the case of the loop devices is the solution,
but I think that it's rather a work around.
> And finally a small plea for more testing. Do you even test before
> blindly sending patches off to Linus?! Sometimes just watching how
> quickly these big patches appears makes it impossible that they have
> gotten any kind of testing other than the 'hey it compiles', which I
> think it just way too little for something that could possible screw
> peoples data up very badly. Frankly, _I'm_ too scared to run 2.5 IDE
> currently. The success ratio of posted over working patches is too big.
Fact is: many of the patches are just big becouse they contain
host chip handling cleanups done by others, and becouse
we have just too many different drivers for the same purpose:
ATAPI packet command devices. Which I'm more and more tempted
to scarp... in favour of just ide-scsi.c. But that's another
story. (Adam J. Richter is givng me constant preassure to do just that and I
start really tending to admitt that he is just right.)
As of testing. Well at least I can assure you that I'm eating my dogfood,
since I run constantly on the patches. (Heck even the time I write this.)
But I don't use kernels from the BK repository at all.
In fact I just don't use BK at all and I don't intend too.
next prev parent reply other threads:[~2002-06-14 16:15 UTC|newest]
Thread overview: 119+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-06-09 5:42 Linux 2.5.21 Linus Torvalds
2002-06-09 7:10 ` 2.5.21 -- suspend.h:58: parse error before "__nosavedata" Miles Lane
2002-06-09 8:40 ` Skip Ford
2002-06-09 13:37 ` [PATCH] 2.5.20 IDE 86 Martin Dalecki
2002-06-09 13:39 ` [PATCH] 2.5.20 locks.h Martin Dalecki
2002-06-10 11:19 ` [PATCH] 2.5.21 "I can't get no compilation" Martin Dalecki
2002-06-10 12:32 ` Anton Altaparmakov
2002-06-10 11:54 ` Martin Dalecki
2002-06-10 13:08 ` Anton Altaparmakov
2002-06-10 11:21 ` [PATCH] 2.5.21 kill warnings 1/19 Martin Dalecki
2002-06-10 11:23 ` [PATCH] 2.5.21 kill warnings 2/19 Martin Dalecki
2002-06-10 11:24 ` [PATCH] 2.5.21 kill warnings 3/19 Martin Dalecki
2002-06-10 11:26 ` [PATCH] 2.5.21 kill warnings 4/19 Martin Dalecki
2002-06-10 18:46 ` Maksim (Max) Krasnyanskiy
2002-06-10 18:57 ` Thomas 'Dent' Mirlacher
2002-06-10 19:08 ` Roland Dreier
2002-06-10 19:14 ` Thomas 'Dent' Mirlacher
2002-06-10 19:19 ` Tom Rini
2002-06-10 19:30 ` Andrew Morton
2002-06-10 19:44 ` Tom Rini
2002-06-10 19:51 ` Andrew Morton
2002-06-10 20:03 ` Thunder from the hill
2002-06-10 20:08 ` Tom Rini
2002-06-10 20:14 ` Andrew Morton
2002-06-10 21:01 ` Maksim (Max) Krasnyanskiy
2002-06-10 21:11 ` Tom Rini
2002-06-10 21:34 ` Thunder from the hill
2002-06-10 20:10 ` Thunder from the hill
2002-06-10 20:15 ` Tom Rini
2002-06-10 20:05 ` Tom Rini
2002-06-10 20:18 ` Thomas 'Dent' Mirlacher
2002-06-10 19:46 ` Thunder from the hill
2002-06-10 20:00 ` Andrew Morton
2002-06-11 6:12 ` Martin Dalecki
2002-06-10 21:51 ` Neil Booth
2002-06-10 22:42 ` Maksim (Max) Krasnyanskiy
2002-06-11 6:10 ` Martin Dalecki
2002-06-13 12:01 ` Martin Dalecki
2002-06-11 0:40 ` Greg KH
2002-06-11 6:33 ` Martin Dalecki
2002-06-11 6:38 ` Greg KH
2002-06-11 8:26 ` Russell King
2002-06-11 8:34 ` Martin Dalecki
2002-06-11 9:06 ` Russell King
2002-06-11 9:09 ` Martin Dalecki
2002-06-11 9:28 ` Russell King
2002-06-11 9:42 ` Martin Dalecki
2002-06-11 10:36 ` Russell King
2002-06-11 11:06 ` Pavel Machek
2002-06-10 11:28 ` [PATCH] 2.5.21 kill warnings 5/19 Martin Dalecki
2002-06-10 22:24 ` William Lee Irwin III
2002-06-10 22:35 ` Russell King
2002-06-11 0:38 ` Greg KH
2002-06-10 11:35 ` [PATCH] 2.5.21 kill warnings 6/19 Martin Dalecki
2002-06-16 11:05 ` Adrian Bunk
2002-06-10 11:37 ` [PATCH] 2.5.21 kill warnings 7/19 Martin Dalecki
2002-06-10 11:38 ` [PATCH] 2.5.21 kill warnings 8/19 Martin Dalecki
2002-06-10 11:39 ` [PATCH] 2.5.21 kill warnings 9/19 Martin Dalecki
2002-06-10 11:40 ` [PATCH] 2.5.21 kill warnings 10/19 Martin Dalecki
2002-06-10 11:42 ` [PATCH] 2.5.21 kill warnings 11/19 Martin Dalecki
2002-06-10 11:43 ` [PATCH] 2.5.21 kill warnings 12/19 Martin Dalecki
2002-06-10 11:44 ` [PATCH] 2.5.21 kill warnings 13/19 Martin Dalecki
2002-06-10 11:45 ` [PATCH] 2.5.21 kill warinigs 14/19 Martin Dalecki
2002-06-10 18:47 ` Ingo Oeser
2002-06-11 8:07 ` Martin Dalecki
2002-06-11 11:59 ` Dave Jones
2002-06-10 11:46 ` [PATCH] 2.5.21 kill warnings 15/19 Martin Dalecki
2002-06-10 11:48 ` [PATCH] 2.5.21 kill warnings 16/19 Martin Dalecki
2002-06-10 11:49 ` [PATCH] 2.5.21 kill warnings 17/19 Martin Dalecki
2002-06-10 11:49 ` [PATCH] 2.5.21 kill warnings 18/19 Martin Dalecki
2002-06-10 11:50 ` [PATCH] 2.5.21 kill warnings 19/19 Martin Dalecki
2002-06-10 11:59 ` [REVERT] 2.5.21 s390/block/xpram.c Martin Dalecki
2002-06-11 7:46 ` [PATCH] 2.5.21 IDE 87 Martin Dalecki
2002-06-11 19:02 ` John Weber
2002-06-12 7:00 ` Martin Dalecki
2002-06-13 1:25 ` John Weber
2002-06-12 17:39 ` Brad Heilbrun
2002-06-12 10:50 ` [PATCH] 2.5.21 inline abuse Martin Dalecki
2002-06-13 12:45 ` Richard Zidlicky
2002-06-13 9:51 ` [PATCH] 2.5.21 IDE 88 Martin Dalecki
2002-06-14 11:06 ` [PATCH] 2.5.21 IDE 89 Martin Dalecki
2002-06-14 11:08 ` [PATCH] 2.5.21 IDE 90 Martin Dalecki
2002-06-14 14:02 ` [PATCH] 2.5.21 IDE 91 Martin Dalecki
2002-06-14 15:17 ` Jens Axboe
2002-06-14 15:42 ` John Weber
2002-06-14 15:43 ` Dave Jones
2002-06-14 16:06 ` Bartlomiej Zolnierkiewicz
2002-06-14 16:33 ` Martin Dalecki
2002-06-14 17:56 ` Linus Torvalds
2002-06-14 15:56 ` Benjamin LaHaise
2002-06-14 16:04 ` Dave Jones
2002-06-14 17:23 ` Martin Dalecki
2002-06-14 16:09 ` Bartlomiej Zolnierkiewicz
2002-06-14 16:15 ` Martin Dalecki [this message]
2002-06-15 8:15 ` Jens Axboe
2002-06-14 16:43 ` Linus Torvalds
2002-06-14 16:47 ` Martin Dalecki
2002-06-15 8:19 ` Jens Axboe
2002-06-16 18:36 ` [PATCH] 2.5.21 ide 92 Martin Dalecki
-- strict thread matches above, loose matches on Subject: below --
2002-06-14 16:29 [PATCH] 2.5.21 IDE 91 Hron, Randall
2002-06-14 23:32 ` Andrew Morton
2002-06-14 17:09 Andries.Brouwer
2002-06-14 17:15 ` Martin Dalecki
2002-06-14 18:36 Andries.Brouwer
2002-06-15 10:42 rwhron
2002-06-15 17:17 ` Jens Axboe
2002-06-15 11:41 rwhron
2002-06-15 11:50 ` Dave Jones
2002-06-15 12:05 rwhron
2002-06-17 8:40 ` Andrew Morton
2002-06-15 21:00 rwhron
2002-06-15 21:00 ` William Lee Irwin III
2002-06-15 21:23 ` Andrew Morton
2002-06-16 10:52 rwhron
2002-06-16 11:05 rwhron
2002-06-16 13:03 rwhron
2002-06-16 16:36 rwhron
2002-06-17 13:16 rwhron
2002-06-18 13:24 rwhron
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=3D0A1692.6070304@evision-ventures.com \
--to=dalecki@evision-ventures.com \
--cc=axboe@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@transmeta.com \
/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