Port-vax archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Signficant bugfix to my emulator
I think at least a few of you are doing things with my MicroVAX-II
emulator. Those of you who are might want to pull the latest version.
I had it hang when doing a certain compile. Investigating, I found it
was livelocking, repeatedly taking the same translation-not-valid fault
on the same instruction, calling pmap_simulref, returning to userland,
and taking the same fault.
Adding a TBIA to pmap_simulref fixed this. But, looking at what it
did, that shouldn't make any difference, because all it does is set
some valid bits. Digging more, it turned out I was entering invalid
PTEs in the TB! (The TB is defined to never cache info from invalid
PTEs.)
So I added two things: (1) I check that PTE_V is set before making TB
entries, and (2) there is a firewall test when making TB entries, to
ensure invalid PTEs don't slip in. (I also took the TBIA back out from
pmap_simulref, but that's not part of the emulator proper.)
There also may be assorted other changes, depending on when you last
pulled.
Curiously, fixing this also fixed a *substantial* performance problem
that's been bothering me for quite some time. (The perceived symptom
was that simple commands would take multiple seconds to start.)
/~\ The ASCII Mouse
\ / Ribbon Campaign
X Against HTML mouse%rodents-montreal.org@localhost
/ \ Email! 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B
Home |
Main Index |
Thread Index |
Old Index