home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #20 / NN_1992_20.iso / spool / comp / os / linux / 10593 < prev    next >
Encoding:
Internet Message Format  |  1992-09-12  |  2.3 KB

  1. Path: sparky!uunet!mcsun!news.funet.fi!hydra!klaava!torvalds
  2. From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
  3. Newsgroups: comp.os.linux
  4. Subject: Re: 0.97 patchlevel 5 available
  5. Message-ID: <1992Sep13.085901.16695@klaava.Helsinki.FI>
  6. Date: 13 Sep 92 08:59:01 GMT
  7. References: <1992Sep12.182131.2168@klaava.Helsinki.FI> <1992Sep12.214957.620@cambria.columbus.oh.us>
  8. Organization: University of Helsinki
  9. Lines: 52
  10.  
  11. In article <1992Sep12.214957.620@cambria.columbus.oh.us> bjones@cambria.columbus.oh.us (Bill Jones) writes:
  12. >
  13. >Well I rushed out and got 0.97.5, compiled it and installed it.  All of a
  14. >sudden I began to get HD timeout errors (something I haven't seen since
  15. >0.12).  Switched back to 0.97.4 and they all went away!?
  16.  
  17. Argghh.  It's probably the outb_p() changes - that is the only thing in
  18. the HD driver that changed.  Look into linux/kernel/blk_drv/hd.c - if
  19. you get pl5 by getting the full source, it doesn't define REALLY_SLOW_IO
  20. any more, as I hoped it would be unnecessary.  It looks like
  21.  
  22.   #undef REALLY_SLOW_IO
  23.   #include <asm/system.h>
  24.   #include <asm/io.h>
  25.   #include <asm/segment.h>
  26.  
  27. and you should probably change the "undef" to "define".  I'll change it
  28. back for the next version - it seems the REALLY_SLOW_IO define is still
  29. needed on some machines. 
  30.  
  31. If the above doesn't help (it should), you might also take a look at the
  32. actual delay instruction used to slow down IO. This can be found in
  33. linux/include/asm/io.h, and looks something like this:
  34.  
  35.   #ifdef SLOW_IO_BY_JUMPING
  36.   #define __SLOW_DOWN_IO __asm__ __volatile__("jmp 1f\n1:\tjmp 1f\n1:")
  37.   #else
  38.   #define __SLOW_DOWN_IO __asm__ __volatile__("inb $0x80,%%al":::"ax")
  39.   #endif
  40.  
  41.   #ifdef REALLY_SLOW_IO
  42.   #define SLOW_DOWN_IO { __SLOW_DOWN_IO; __SLOW_DOWN_IO; __SLOW_DOWN_IO; __SLOW_DOWN_IO; }
  43.   #else
  44.   #define SLOW_DOWN_IO __SLOW_DOWN_IO
  45.   #endif
  46.  
  47. You might change the default slow-down instruction from
  48.  
  49.     __asm__ __volatile__("inb $0x80,%%al":::"ax")
  50.  
  51. to
  52.  
  53.     __asm__ __volatile__("outb %al,$0x80")
  54.  
  55. Whatever you do, I'd be very interested to hear what you did, and if it
  56. worked, so that I can get it fixed for the next version.
  57.  
  58. Also, there seems to be some problem with the extended fs patches:
  59. either Remy's patches or the changes I made to the inode setup.  So pl5
  60. still seems to have some irritating bugs.  I'll try to find it. 
  61.  
  62.         Linus
  63.