home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: vmsnet.internals
- Path: sparky!uunet!zaphod.mps.ohio-state.edu!caen!nic.umass.edu!amherst!amherst.edu!sysproj
- From: sysproj@amherst.edu
- Subject: VMS Memory Management/PGFLQUOTA question
- Message-ID: <1992Jul21.223333.1@amherst.edu>
- Lines: 56
- Sender: usenet@amhux2.amherst.edu (USENET News System)
- Nntp-Posting-Host: amh.amherst.edu
- Organization: Amherst College, Amherst Mass.
- Date: Wed, 22 Jul 1992 02:33:33 GMT
-
- OK, I have a question for all you VMS memory management types out there:
-
- What I would like to do is reserve a large (VERY large) segment of virtual
- address space for my exclusive use in an image. We're talking a quarter of a
- gigabyte or so here.
-
- If possible, I would like to simply reserve this address range without actually
- creating pages in it, since then I won't need to have a humongous page file
- quota. I will have to jack VIRTUALPAGECNT way up since my page tables will
- have to be large enough so that I can create pages within the range as I wish,
- but I can live with that.
-
- Now, as far as I can tell, when I issue an $EXPREG to create some virtual
- memory in P0, the system service looks at PCB$L_FREP0VA to see where it can
- create the virtual memory. This suggests that a way to reserve space is to
- look at FREP0VA, add the amount of memory I want to allocate to that address,
- and then create ONE PAGE just beyond that. This will cause my page table to be
- expanded, and will force FREP0VA past that one page, thus reserving the desired
- address range. I can then create/delete memory within that address space at
- will (using $CRETVA with specific addresses), without worrying that any other
- well-behaved facility (such as LIB$GET_VM or anything else that calls $EXPREG)
- will go and create pages in there.
-
- In theory this looks good to me. In practice, however, I am clearly assuming
- that the rest of the system is well-behaved in that it won't create memory
- based anywhere other than beyond where FREP0VA points. Also, I am assuming
- that $EXPREG's ONLY look at FREP0VA and won't do some kind of best fit on holes
- in the page table space on subsequent calls.
-
- My question for y'all then, is how does this strike you? Is this an accident
- waiting to happen? Do any of you know of any facility which is not
- well-behaved in this respect? Is VMS/ALPHA likely to completely screw me in the
- future, or what? Thoughts? Comments?
-
- If this doesn't seem like a good idea, the obvious other approach is to simply
- create all the memory I need. This will require a huge page file quota (though
- not real page file space, since I don't expect to be touching many of these
- pages), so I'm wondering what the real costs of increasing page file quota are?
- Do any process/system data structures have sizes based on PGFLQUOTA, for
- example?
-
- And here's a gross idea. Suppose instead of requiring any process doing this
- to have a huge page file quota, I wrote a user system service or something to
- temporarily bump up the page file quota, do the create, then drop the quota
- back down.
-
- Is remaining page file quota synched to any data structures that the system
- might later notice are inconsistent? Will this bite me later when some system
- component notices that I seem to have more pages than page file quota, or is
- PGFLQUOTA just a value like BYTELM, that simply gets added and subtracted from?
- (i.e., whose ONLY purpose is to control how much of a resource you can snag?)
-
- Any thoughts on any or all of this would be most welcome. Thanks!
-
- - John W. Manly <JWMANLY@AMHERST.EDU> (System Manager -- Amherst College)
-
-