Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!elroy.jpl.nasa.gov!ames!haven!mimsy!nocusuhs!nmrdc1!minixug!waltje From: waltje@minixug.mugnet.org (Fred 'The Rebel' van Kempen) Newsgroups: comp.os.minix Subject: Re: Patches to PC MINIX and splitting this group Message-ID: <9103303799@minixug.mugnet.org> Date: 30 Mar 91 15:36:30 GMT References: <4177@rwthinf.UUCP> Organization: MINIX User Group Holland (NLMUG) - MUGNET - Lines: 75 Michael Haardt wrote: > can include a simple cdiff for login, which allows correct wtmp/utmp > records with terminal minor numbers greater than 9. If someone is Has already been done - to be posted next week. > interested, I will make these diffs and put them on a ftp server. My > current version (three serial lines, four virtual terminals) needs 165 > KBytes, but it allows nice working. Oh well. Advanced MINIX 1.5.10E-PC/286 is about 349Kbyte :-) > I am unable to reach Gary Oliver via mail. If modified his mu (memory > used) to work with psdatabase. Is someone out there who can reach him? No, but pse send me the mu... > Has anyone tried to increase the number of disk buffers in standard PC > MINIX? Does it give reasonable speed improvements? As said before, the FS cache resides in FS data space. So, we're limited to about 30 or 40 buffers... I have some ideas on how to change this, but I am unsure about what the drop in performance would be... :-( > I heard some rumours about bad performance of serial lines in PC MINIX. > It's not true at all. One of my terminals uses 19200 baud. I displayed > my german dictionary on it which results in more than 1700 characters > per second (7 data bits, one parity bit, one start and one stop bit) > equals more than 17000 baud *effective* transfer rate. Sounds like good > performance to me. These values are measured on a 386 machine with the > provided assembler drivers. On an "standard" 12MHz AT (286) clone, the effective rate drops significantly on speeds above and including 9600bps. On MUGNET, we just had a discussion about this, which resulted in the following tables: (taken from mugnet.talk art. 42, without persmission) 8MHz 8088 clone 12MHz 80286 clone -------------------------------- ------------------------- 16kB 128kB 256kB 512kB 16kB 128kB 256kB 512kB 1200 97.5 99.7 -- -- 98.9 99.8 99.8 99.6 2400 96.2 99.1 -- -- 98.9 99.8 99.8 99.6 4800 94.8 98.2 99.1 98.8 97.5 99.7 99.7 99.6 9600 85.3 95.5 96.8 97.3 94.8 98.9 99.3 99.3 19200 71.1 92.3 92.8 93.8 94.8 98.9 98.2 98.2 So, it is obvious that the XT gets hit by interrupt latency (read: system context switches) at higher speeds. At 19200bps, the poor thing gets hit by 1920 interrupts per second... The assembler driver runs well, but still does not work OK at very high speeds on not-so-fast machines. So, I thought of a way to improve this for our Advanced MINIX.. The answer is, obviously, different hardware. New UART chips are available for the PC, which have a 16-byte FIFO in them. This means, that, when properly programmed, the system receives only one interrupt per 14 or so characters, reslulting in much less system overhead. However, the (PC-MINIX) serial drivers were not designed for that. So, I restructered them to be able to use FIFO chips at full blast. This resulted in a true 100% (sometimes even 100.4%, maybe a rounding error? :-) line efficiency at speeds up to 115Kbps. The changes were relatively simple (in rs232.c, only some code to see if a FIFO UART was present, and some code to set flags in struct rs232). The assembly driver was completely rewritten, but mostly because I hated its structure.... Anyway. Advanced MINIX now is able to run at speeds up to 115Kbps, without going nuts or losing data. This is nice for local links (like the ones I have to the "uwalt*" machines here) or Telebit modems... If someone can tell me how to make a complete set of cdifss relative to 1.5.10, I will do that and post them here... Fred. "An Operating System is what the _USERS_ think of it- me"