Very Large Framestores on Sun: addr

Root Boy Jim rbj at icst-cmr.arpa
Wed Mar 11 01:17:08 AEST 1987


   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 



More information about the Comp.unix.wizards mailing list