Path: utzoo!mnetor!uunet!mcvax!ukc!warwick!csrng From: csrng@daisy.warwick.ac.uk (C S PCB Group) Newsgroups: comp.os.minix Subject: Re: Serial TTY driver Message-ID: <398@sol.warwick.ac.uk> Date: 14 Dec 87 15:25:02 GMT Reply-To: arthur@snow.UUCP (John Vaudin) Organization: Computer Science, Warwick University, UK Lines: 25 We use MINIX permanently through a serial tty driver, and we too had the problem of hanging due to missed interrupts. The problems are to do with the way MINIX deals with interrupts that cannot be handled immediately. Basically when an interrupt goes off , if it cannot be accepted by the relevant task then the message is remembered and sent when that task becomes free. The first problem is that there is only one pending message so further missed interupts overwrite previous ones, this is usually the problem with the tty. If you type fast enough you will overwrite an output interupt with an input one. Usually this will cause the serial driver to hang up. If you cure this by having one interupt slot for each task things improve, but if you wish for a task to handle more than one interrupt, such as the tty driver with input and output, perhaps to multiple lines, then you have to change the way messages are queued. We use one slot for each task * maximum number of interrups each task can accept, which is kind of wasteful, but I can't be bothered to rewrite it since it works. Even with this done we have GREAT difficulty handling any signifant load on the serial lines. We have found 2400 baud to the highest we can cope with. I guess a PC AT may do a bit better, but don't expect wonders John. --------------------------------- John Vaudin: arthur@uk.ac.warwick