gkn@M5.SDSC.EDU (Gerard K. Newman) (12/25/87)
From: Richard Steinberger <STEINBERGER@KL.SRI.COM> Date: Wed 23 Dec 87 09:49:46-PST There is a dump file on my system disk that is 32767 blocks large (the same size as physical memory). My understanding is that this area will be used by VMS in case the system crashes. The contents of memory will be stored here. This is fine; but I was wondering if there are any ways to have this file/disk area serve two functions since it seems to be unused during "normal" VMS operations. For example, is there a way that it can also be a page or swap file until/unless the system crashes? Are there other uses or should I just keep my hands off? Thanks in advance to all who respond. -Ric Steinberger You can get by without a dump file if your system doesn't crash often, or you don't care about dumps, or you don't have a lot of disk space. Your dump file has to be <size-of-physical-memory-in-pages> + 4 blocks in V4.x of VMS (the formula is different for V5.0, but not much different). The 4 blocks are for processor context (registers, etc), two error log buffers, and a reserved block. If you set the SYSGEN parameter SAVEDUMP to 1, and make your primary page file <dump-file-size> plus enough to get your system to boot and have SDA run (~ 5K blocks), the system can dump in the pagefile. Running SDA from an account with CMKRNL privilege and using the SDA> COPY command to move the dump out of the page file (even to NLA0:) will release the blocks occupied by the dump back to normal paging use. Changing your system to do this on the fly is a little difficult if you already have a dump file. VMS remembers where the dump file is in the boot control block. If you delete the dump file and then shut your system down you're still going to get a dump on the blocks that used to comprise your dump file. There are two workarounds: one is not for the faint of heart, and the other is a more acceptable approach. The acceptable approach involves setting up your page file to be the right size, renaming your dump file to something besides SYSDUMP.DMP, setting SAVEDUMP to 1, and rebooting your system. The neat-hack approach involves locating the boot control block (whose address is handily in EXE$GL_BOOTCB), and either invalidating the checksum (at offset BOO$L_CHECKSUM) or blasting the dump VBN, size, or retrieval pointer map (at BOO$L_DMP_VBN, BOO$L_DMP_SIZE, and BOO$L_DMP_MAP). Blasting the latter will invalidate the checksum, so it's easier to park a 0 on top of BOO$L_CHECKSUM. Enjoy, gkn ---------------------------------------- Internet: GKN@SDS.SDSC.EDU Bitnet: GKN@SDSC Span: SDSC::GKN (27.1) USPS: Gerard K. Newman San Diego Supercomputer Center P.O. Box 85608 San Diego, CA 92138-5608 AT&T: 619.534.5076