Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 23 Feb 2015 09:52:43 -0500
From:      John Baldwin <jhb@freebsd.org>
To:        Nathan Whitehorn <nwhitehorn@freebsd.org>
Cc:        Konstantin Belousov <kostikbel@gmail.com>, svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r279189 - in head/sys/powerpc: aim fpu include powerpc
Message-ID:  <1832257.41OqWDsdB6@ralph.baldwin.cx>
In-Reply-To: <54EA9EC6.3070304@freebsd.org>
References:  <201502222140.t1MLeSFg075690@svn.freebsd.org> <20150223012148.GN74514@kib.kiev.ua> <54EA9EC6.3070304@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sunday, February 22, 2015 07:30:14 PM Nathan Whitehorn wrote:
> On 02/22/15 17:21, Konstantin Belousov wrote:
> > On Sun, Feb 22, 2015 at 09:40:28PM +0000, Nathan Whitehorn wrote:
> >> Author: nwhitehorn
> >> Date: Sun Feb 22 21:40:27 2015
> >> New Revision: 279189
> >> URL: https://svnweb.freebsd.org/changeset/base/279189
> >> 
> >> Log:
> >>    Kernel support for the Vector-Scalar eXtension (VSX) found on the
> >>    POWER7
> >>    and POWER8. This instruction set unifies the 32 64-bit scalar floating
> >>    point registers with the 32 128-bit vector registers into a single
> >>    bank
> >>    of 64 128-bit registers. Kernel support mostly amounts to saving and
> >>    restoring the wider version of the floating point registers and making
> >>    sure that both scalar FP and vector registers are enabled once a VSX
> >>    instruction is executed. get_mcontext() and friends currently cannot
> >>    see the high bits, which will require a little more work.
> >>    
> >>    As the system compiler (GCC 4.2) does not support VSX, making use of
> >>    this
> >>    from userland requires either newer GCC or clang.
> > 
> > Handling the similar issue (exploding of the machine state size) for x86
> > resulted in the creation of the getcontextx(3) API.  It is both get/set
> > context(2) syscalls  and signal handling which require modifications.
> > 
> > For signal handlers and sigreturn(2), it is possible to make it
> > transparent
> > for the consumers, but not for *context(2), since mcontext_t is explicit
> > type allocated by callers.
> 
> Thanks! I had forgotten about the signal handling issue. Will look into
> this tomorrow.

Don't forget to include the info in cores as well so debuggers can see them 
(as well as ptrace access if that needs changes).

-- 
John Baldwin



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