Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 Sep 2001 16:10:46 -0700 (PDT)
From:      Jake Burkholder <jake@FreeBSD.org>
To:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/sparc64/include wstate.h frame.h pcb.h src/sys/sparc64/sparc64 rwindow.c exception.s
Message-ID:  <200109032310.f83NAkL09021@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
jake        2001/09/03 16:10:46 PDT

  Modified files:
    sys/sparc64/include  frame.h pcb.h 
    sys/sparc64/sparc64  exception.s 
  Added files:
    sys/sparc64/include  wstate.h 
    sys/sparc64/sparc64  rwindow.c 
  Log:
  Implement a slightly different window spill/fill algorithm for dealing
  with user windows in kernel mode.  We split the windows using %otherwin,
  but instead of spilling user window directly to the pcb, we attempt to
  spill to user space.  If this fails because a stack page is not resident
  (or the stack is smashed), the fault handler at tl 2 will detect the
  situation and resume at tl 1 again where recovery code can spill to the
  pcb.  Any windows that have been saved to the pcb will be copied out to
  the user stack on return from kernel mode.
  
  Add a first stab at 32 bit window handling.  This uses much of the same
  recovery code as above because the alignment of the stack pointer is used
  to detect 32 bit code.  Attempting to spill a 32 bit window to a 64 bit
  stack, or vice versa, will cause an alignment fault.  The recovery code
  then changes the window state to vector to a 32 bit spill/fill handler
  and retries the faulting instruction.
  
  Add ktr traces in useful places during trap processing.
  
  Adjust comments to reflect new code and add many more.
  
  Revision  Changes     Path
  1.6       +11 -7      src/sys/sparc64/include/frame.h
  1.6       +5 -5       src/sys/sparc64/include/pcb.h
  1.7       +1079 -756  src/sys/sparc64/sparc64/exception.s


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200109032310.f83NAkL09021>