dean@A.PSY.CMU.EDU (randall w. dean) (01/27/86)
Has anyone had any experience with the system routines EXE$ALONONPAGED and EXE$DEANONPAGED. I have a DRV11J parallel interface connected to a Vaxstation II. I am using the connect to interrupt facility. The interrupt service routines (ISR's) (there are three different interrupt lines being used) check the status of assorted things and sometimes allocate a chunk of memory (EXE$ALONONPAGED) to save information for a kernel mode ast. The ISR then allocates another piece of memory for the AST block and then declares an AST (EXE$DCLAST). The Kernel mode AST then does whatever and deallocates (EXE$DEANONPAGED) the buffer with the information passed to it and exits. This works without problem most of the time. At certain times (not consistantly reproduceable) the system will crash with a fatal bugcheck DOUBLDEALO Double deallocation of Memory block. The documentation says to submit an SPR. No good because we don't have sufficeint maint. and the cause can be pinpointed in someway to my code. The problem I suspect is a synch probelm with allocation and dealloction of memory. ie. I am in the middle of a dealloction, the system interrupts at high IPL and is able to allocate the peice I just deaalocated. I then finish deallocating. When the kernel mode ast later dealloctes a previously deallocted piece, POW. The Fiche doesn't mention any need to raise IPL when allocating or deallocting though. Anyone have any thoughts/experience/comments ? Randall W. Dean Dean@A.PSY.CMU.EDU