home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!mcsun!sunic!chalmers.se!dtek.chalmers.se!dxper
- From: dxper@dtek.chalmers.se (Per Anders Olausson)
- Newsgroups: comp.unix.bsd
- Subject: 386bsd and I/O...sheduler bug?
- Message-ID: <13017@chalmers.se>
- Date: 29 Jul 92 11:53:55 GMT
- Sender: news@chalmers.se
- Organization: Chalmers University of Technology, Gothenburg Sweden
- Lines: 50
-
-
- I have been suspecting all the time since V0.0 that there is something very
- strange relating to disk i/o in 386bsd. This is either a bug or feature of the
- BSD 4.3 sheduling algorithm.
-
- Yesterday I therefore tried out the following simple program:
-
- #include <stdio.h>
-
- main()
- {
- char data[8192];
- FILE *f;
-
- f = fopen("Test2.file", "w+");
- while(1)
- {
- fread(data, 1, 8192, f);
- v rewind(f);
- fwrite(data, 1, 8192, f);
- }
- }
-
- ===
-
- If I run this at normal priority the system will turn on the disk led and
- just grind to a halt. That is, it will not let any other process run as long
- as it is running.
-
- If I run it with a nice value of 20 the system will let me use the shell
- until I decide to do something and then it will hang. If you use the elbow
- technique you'll sporadicly get hold of the cpu but after a while it will hang
- to.
-
- So it appears as if processes doing I/O is somehow not accredited their usage
- of the CPU. If you check out the load average while doing make depend or
- something like that it seems a bit low too.
-
- Can anyone confirm if this has been fixed or does anyone have any clues as
- to where the fault lies?
-
- pao
-
-
-
- --
- -------------------------------Andrew Olausson--------------------------------
- --------------------------Unemployed Unix Specialist--------------------------
- ------------------------------pao@cd.chalmers.se------------------------------
- -------------------------------pa-ola@proxxi.se-------------------------------
-