Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 31 May 2003 13:42:35 -0700 (PDT)
From:      Marcel Moolenaar <marcel@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/ia64/ia64 machdep.c
Message-ID:  <200305312042.h4VKgZDm038423@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
marcel      2003/05/31 13:42:35 PDT

  FreeBSD src repository

  Modified files:
    sys/ia64/ia64        machdep.c 
  Log:
  Make sure we have all the dirty registers in user frames on the
  backing store before we discard them. It is possible that we
  enter the kernel (due to an execve in this case) with a lot of
  dirty user registers and that the RSE has only partially spilled
  them (to make room for new frames). We cannot move the backing
  store pointer down (to discard user registers) when not all of
  the user registers are on the backing store.
  So, we flush the register stack IFF this happens. Unconditionally
  doing the flush is too costly, because the condition in which we
  need to flush is very rare.
  
  This change appears to fix the SIGSEGV that sometimes happen for
  newly executed processes and so far also appears to fix the last
  of the corruption. It is possible, although not likely, that this
  change prevents some other bug from happening, even though it is
  itself not a fix. Hence the uncertainty. We'll know in a couple
  of months I guess :-)
  
  Revision  Changes    Path
  1.137     +12 -2     src/sys/ia64/ia64/machdep.c



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