Messages in this thread | | | From | (Linus Torvalds) | Subject | Re: serial input overrun(s) using ide-cd | Date | 16 Oct 1997 04:01:55 GMT |
| |
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
| |