Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!caip!lll-crg!lll-lcc!unisoft!paul From: paul@unisoft.UUCP (Paul Campbell) Newsgroups: net.micro.att Subject: Re: Problems with tapes Message-ID: <85@unisoft.UUCP> Date: Mon, 7-Jul-86 11:33:53 EDT Article-I.D.: unisoft.85 Posted: Mon Jul 7 11:33:53 1986 Date-Received: Tue, 8-Jul-86 05:16:45 EDT References: <287@xios.UUCP> Reply-To: paul@unisoft.UUCP (Paul Campbell) Organization: UniSoft Systems; Berkeley, CA Lines: 26 It sounds like you need new drivers. The paging kernel allows drivers to do transfers to processes that are not contiguous (in most swapping kernels processes are loaded in contiguous blocks). When you do raw IO one of three things must happen 1) The buffer is contiguous in core (ie the process is contiguous, or special code to make bits of processes contiguous prior to the start of the IO) 2) Special hardware (like the Unibus map on a vax or 11), these are only just starting to turn up in 'super-micro' size machines. Most of the new DMA chips (including the AT&T DMA chip .... an very well thought out piece of work) support some form of scatter/gather operation .... but not the 3b2/300/400. 3) Chop the IO up into page size pieces, buffering any bits that cross page boundarys (what V.2.1 does on the 3b2). This last requires drivers to do some different (minorly different) things and may result in the sort of crashes you are seeing. Running a binary should NOT be able to cause a kernel to crash ..... unless the binary is working with a bad piece of kernel code. Paul Campbell ..!ucbvax!unisoft!paul