HomeFreeBSD

[PowerPC] Fix VSX context handling

Description

[PowerPC] Fix VSX context handling

In r356767, memcpy/memmove/bcopy optimizations were added to libc to
improve performance.

This exposed an existing kernel issue in VSX handling. The PSL_VSX flag was
not being excluded from the psl_userstatic set, which meant that any thread
that used these and then called swapcontext(3) would get an EINVAL error.

Fixing this exposed a second issue - in r344123, the FPU was being forced
off in set_mcontext(). However, this was neglecting to ensure VSX was turned
off at the same time.

While here, add some code comments to explain what's going on.

Reviewed by: jhibbits, luporl (earlier rev), pkubaj (earlier rev)
Sponsored by: Tag1 Consulting, Inc.
Differential Revision: https://reviews.freebsd.org/D23497

Details

Provenance
bdragonAuthored on
Reviewer
jhibbits
Differential Revision
D23497: [PowerPC] Fix VSX context handling
Parents
rS357528: Add an explicit busy state for free pages. This improves behavior with
Branches
Unknown
Tags
Unknown