lkml.org 
[lkml]   [1997]   [Oct]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: serial input overrun(s) using ide-cd
Date
In article <344a47db.99400244@smtp-gw01.ny.us.ibm.net>,
John Kelly <mouth@ibm.net> wrote:
>
>No matter whether on a 386, 486, or a Pentium, bad disk drives and
>controller chips are not proper justification for running IDE disk I/O
>with interrupts disabled. Some such problems can be circumvented by
>defensive programming of the chipset (CMD640) while in other cases the
>hardware must be replaced.

Umm.. Enabling interrupts may corrupt data, disabling interrupts
doesn't. The default is pretty clear, at least to me.

>But in no case should Linux BY DEFAULT disable interrupts during IDE
>disk I/O. If FreeBSD does not, why should Linux?

Maybe because FreeBSD probably has less than 1% of the Linux user base,
and that 1% tends to be more technical and (usually) have high-end
hardware that doesn't show the problems?

Maybe because when people have problems with FreeBSD they decide it's
unstable and move over to real operating systems that have sane
defaults?

Face it, there may not be very many of the controller/disk combinations
that have problems with interrupts being enabled during sector transfer,
but they DO exist! In the face of that fact the _only_ reasonable action
is to have the interrupts disabled by default, together with a
user-level program that can easily be used to enable them AT THE USERS
DISCRETION!

The alternative is to take the high-handed approach of saying that you
don't support users with arguably bad hardware. If so, what the hell
are you doing with a PC-only operating system in the first place?

(Although Alan is correct in that we could be more aggressive in
enabling interrupts automatically when we can reliably determine that we
have hardware that isn't impacted by the bug - something that PCI does
allow. Even then it would be arguably be better done in a user-level
startup script than in the kernel - leaving policy to the user where it
belongs).

Linus

\
 
 \ /
  Last update: 2005-03-22 13:40    [from the cache]
©2003-2011 Jasper Spaans