Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!brl-adm!adm!rbj@icst-cmr.arpa From: rbj@icst-cmr.arpa (Root Boy Jim) Newsgroups: comp.unix.wizards Subject: Very Large Framestores on Sun: addr Message-ID: <4846@brl-adm.ARPA> Date: Tue, 10-Mar-87 10:17:08 EST Article-I.D.: brl-adm.4846 Posted: Tue Mar 10 10:17:08 1987 Date-Received: Tue, 10-Mar-87 23:30:38 EST Sender: news@brl-adm.ARPA Lines: 81 Sun tech support can't help me, maybe someone on the net can! Guy, what do you have to say about this and my answer? I want to map a very large chunk of physical memory (32 Meg of video frame-store) into my user process's virtual address space. We wanted to map about 12-16 Meg of dual ported memory. Sunix (what didn't you call it that instead of the boring SunOS?) doesn't know about it, but our data gathering program does. We have a Sun 3/75 connected to an external VME chassis with a bus repeater capable of repeating a full A32 / D32 bus to the external VME chassis. We have a 3/160 with the same. In this chassis we have a very large frame store that takes up 32 Meg of physical memory. We have been told that the only way to map the physical memory of the frame-store into a user program is to first do a valloc which I presume reserves pages in the MMU for a chunk of memory, and then an mmap which maps the physical memory into the reserved virtual memory chunk. This is how frame-store's are usually mapped in on the sun. This is what we did as well. The problem is that the valloc actually allocates the amount of memory you are requesting. If you don't have enough swap space free, the valloc fails. Thus not allowing you to get a chance to map the physical to virtual address. Hmmm. I see several problems here. First, after mmap'ing valloc'ed memory the Sunix must reclaim the memory it originally allocated. Second, if you *could* get past that stage, you might wind up arguing with the hardware. The machine either wouldn't boot or the console had numerous streaks when we attempted to use certain physical (vme32d32) addresses. See below for details. They say that this will be changed in version 4.0 of Sun OS.... Good. I see no reason to ?alloc memory in order to remap it. There must be a more sane way to tell the operating system / MMU hardware to do an explicit mapping today! What good is having A32 VME bus addressing if you can't talk to large chunks of physical memory? I consider this a major failing if its true that a Sun can not do this. You could try allocating it