Re: Not-so-symmetrical SMP?

Alan Cox (
Wed, 7 May 1997 21:34:17 +0100 (BST)

> tells you about the supervisor state much be trappable, but in order
> to create a _usable_ VM, you need much more than that.
> Any instruction that may cause I/O to be performed _must_ be
> trappable. Any timing requirements must be able to be emulated
> precisely. Using memory mapped I/O, like most computers use, makes

Umm.. not in general. Yes a tiny number of dodgy mac copyprotection
floppies might not work. The trapping of memory I/O itself is easy
the MMU does it nicely

> Virtual memory must also be emulated. This means that any time the
> virtual machine modifies a page table, the hypervisor must be able to
> check that it is correct and be able to modify the real page tables
> correctly. On every time slice, you must update the real page tables

The 680x0 caches its MMU tables quite aggressively so you really only
have to watch people cycling MMU registers to tune the tables. The dirty
bit on their 'notional' page tables tells you which ones they fiddled with.

> In short, I can't see anyway that a 68030 can "exactly emulate a 68030
> at almost normal speed". I don't think you can come close. I

Lets put this in perspective - you can do a 68040@25MHz in software on a

For worst cases you are right, for most real 68K boxes and especially stuff
like MacOS which doesnt bash the MMU very hard I think we can indeed get
very very close. Certainly I think I can do very well on the MacOS on MacLinux
problem in the end - I can even tell the MacOS it doesnt have an MMU and let
it run the 24bit wired mappings on a standard MacII..