[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Just a couple of things.



>  hmm, sure?  if we just want IO to halt only processes which are in a
> disk IO systemcall (as opposed to `halt _every_ process' like its now...)
> then we don't need real multithreaded filesystems yet, and i don't think
> the kernel needs much more reentrancy than now like when a process
> sleeps for tty IO.  and the SCSI interrupt handler could just reset
> its in-service bit and ipl and then addroottimeout()?

I tried similar things, and no, it won't work. The situation is as
follows:

- Process A calls GEMDOS to read a file.

- GEMDOS calls BIOS to read a block.

- HD driver initiates transfer, puts process A to sleep. Note that
  process A is now sleeping *inside* GEMDOS.

- Process B makes a GEMDOS call.

Similar scenarios are possible for VDI and AES calls which in turn
call GEMDOS (vst_loadfonts, rsrc_load...).

The most simple solution would be to block any GEMDOS call when
another process already is in GEMDOS. This would at least allow
other processes to use the CPU or call (X)BIOS. Better than
nothing.

--clausb@hpbeo79.bbn.hp.com-----------------------------------------------
Claus Brod, MDD, HP Boeblingen         Have you hugged your manager today?
--#include <std_disclaimer>-----------------------------------------------