
Performance measurements:

   context switch time
   interrupt/exception overhead
   system call overhead
   interrupt/exception latency
   signal overhead
   signal latency
   effect of load speculation
   tlb miss overhead, tlb miss rate




misc: save plv/plc registers in exception context

/---------------------------------------------------------------------/

- The mstat restores in etiRestoreExceptionContext still do not seem
  to restore reliably. Spaced them all with noops, and did a redundant (?)
  copy at the end of the fault handler. This is wrong in combination with
  signal handling, but let's test stability now. Needs to be analyzed further.

- Not working with GLIBC:  sigaltstack 
  PRIORITY : high

- Implementation of clock() and time()
  PRIORITY : high
  COMMENT  : needed for application ports
           - clock() and time() and all the functions built on top of
             them (like localtime(), asctime()) are working. -- khilman
           - in the kernel, do_gettimeofday() needs some fine tuning
	     to update u_sec.  -- khilman 
  
/---------------------------------------------------------------------/

- Provide 'exception table' functionality
  PRIORITY : desired
  COMMENT  : needed by fault handlers to identify 
             places in kernel where bad pointers can be used.
             Solve by raising a flag in the copy_from/to_user
             

- Move to board support packages
  PRIORITY : desired
  COMMENT  : left: let Linux use pci library in libdev, and use some BIOS
             package (in libdev) to define the PCI interrupt wiring.
 
- User space load speculation
  PRIORITY : TBD
  COMMENT  : IMO, the kernel (and device drivers) should be compiled with
             -nospec always; this allows us to turn on load speculation
	     in user space. The [LU]BOUND range is always the same
	     [0x0 - 0x80000000), so doesn't have to be switched. This
	     needs some extension in the TLB handlers to not cause a
	     process kill when a bad page is accessed. This should be
	     minor problem.
	     Of course, performance with load speculation and TLB
	     handling is a big question mark.

/---------------------------------------------------------------------/




- TLB replacement policy
  PRIORITY : low
  COMMENT  : random replacement is currently used; some software scheme using
             the reference bit should be implemented
             
- shared libraries
  PRIORITY : low

- kernel module loader
  PRIORITY : low

/---------------------------------------------------------------------/


Known Bugs/Problems

o I added tlb_lover.c and sdram.c to arch/map/tests.
  When run separately, they usually pass, but run them together (start
  tlb_lover first, then run sdram, but the latter takes all available
  memory) they show an enormous amount of memory problems.
o 'sdram' test causes: TLB MISS PENDING IN IO/TIMER HANDLER
o doing 'Ctrl-s' with lots of stdout and then 'Ctrl-q' 
  - to reproduce, run two burstio's in the background, ctrl-s, 
    then ctrl-q and it will lock up tight.
03/25/02: Doing '/tmp/temacs' followed by Ctrl-Z gives:
	  "MAP PANIC: Unhandled case in signal.c (result= -512)"
03/27/02: busybox: printf "0x%x\n" 65544 prints '0x1000.'

Fixed Bugs/Problems (please comment)
???:	  `chown' and `id' crash the kernel instantly. [???]
03/25/02: ERESTARTSYS does not seem to do what it is supposed to, i.e.
	  restarting the system call. [juul]
03/27/02: busybox: echo `hostname` does not work anymore [wilco, ld putback + busybox recompile]
