Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!elroy.jpl.nasa.gov!ncar!hsdndev!husc6!encore!zelig!jdarcy From: jdarcy@encore.com (Jeff d'Arcy) Newsgroups: comp.sys.m88k Subject: Re: m88200 cache flushes on DG Aviion Keywords: m88200 Aviion Message-ID: Date: 10 Dec 90 19:59:44 GMT References: <2308@io.UUCP> <1990Dec10.183632.12559@Solbourne.COM> Sender: news@Encore.COM Lines: 25 stevec@bubbyb.Solbourne.COM (Steve Cox) writes: >>Why wasn't this state prevented by the "M-bus snooping" of the 88200's? >>Perhaps my understanding of their function is warped. > >yes, i believe your understanding is correct (that the caches are supposed >to be coherent). but, perhaps the code you are trying to modify AND THEN >EXECUTE is not marked as global by the DG operating system.(?) I came in late on this discussion, so if someone's already covered this ground please forgive me. In order for snooping to occur, the Global bit in the writer's page descriptor must be set, and the Snoop Enable bit must also be set in the reader's System Control Register. It is quite believable that this bit will *not* be set for the Instruction CMMU, therefore snooping will not occur, and therefore... You could approach this problem in several ways. Setting Snoop Enable in the I-CMMU might work, as would a flush prior to executing the modified code. My favored solution would be *not* to execute "dirty" code, but I recognize that others don't share my viewpoint there. -- Jeff d'Arcy, Generic Software Engineer - jdarcy@encore.com Non sunt multiplicanda entia praeter necessitatem!