[comp.unix.questions] mmap calls in Sun UNIX 3.2

jvs@micas.UUCP (Jo stockley) (08/04/87)

I am trying to find out what the maximum size of space one  can map in
to users address space using the mmap call.

The  problem is this, we have  a device that   contains  4Mb of memory
which is mapped  onto the vme32d16  space in a  Sun 3/160M running 3.2
Sun unix. I have written a driver that supports various ioctls and the
mmap call.

      What I need to find out  is how many of these  devices can I put
on  my machine. I know the  physical  limitations like number of slots
etc.  The effect upon the  operation of UNIX  does  not matter at this
stage of the game.

      I  have written a simple test  program  that opens /dev/vme32d16
and then mmaps in 4Mb at an offset given by the  user.  It then simply
sleeps. I  have set up   several copies  of  this  all  running in the
background with offsets 4Mb apart (0x800000, 0xC00000 etc).

     The system seems quite happy to let me do this until I run out of
swap space  to  valloc  4Mb,  which   happens  after  about   the 10th
invocation of my program in the loop.  This  I can appreciate (we only
have a 16 Mb swap).

     A little  bird told me  that it was possible  to mmap up to 128Mb
(subject to swap availability for  valloc) in one  go but neglected to
say if this was true on all Sun 3's (he also  said that it was in fact
possible  to do DVMA by  some trickery using mmap  but gave no further
details).

     Can any of you Sun guru's out there give any  info on this  as it
is causing me some grief (we have someone who wants to  put at least 4
of these jobbies on a Sun 3/180).

You  can   either e-mail me   or post replies,  either   will be  much
appreciated.

-------------
Jo. Stockley. (jvs@micas.uucp or ...!mcvax!ukc!micas!jvs)

Nodecrest Computer Systems Ltd
Byfleet, UK.

Phone: +44 09323 40555