svn commit: r367930 - in head/sys: kern sys
Kyle Evans
kevans at freebsd.org
Sun Nov 22 05:50:00 UTC 2020
On Sat, Nov 21, 2020 at 11:47 PM Kyle Evans <kevans at freebsd.org> wrote:
>
> Author: kevans
> Date: Sun Nov 22 05:47:45 2020
> New Revision: 367930
> URL: https://svnweb.freebsd.org/changeset/base/367930
>
> Log:
> [2/2] _umtx_op: introduce 32-bit/i386 flags for operations
>
> This patch takes advantage of the consolidation that happened to provide two
> flags that can be used with the native _umtx_op(2): UMTX_OP___32BIT and
> UMTX_OP__I386.
>
> UMTX_OP__32BIT iindicates that we are being provided with 32-bit structures.
> Note that this flag alone indicates a 64bit time_t, since this is the
> majority case.
>
> UMTX_OP__I386 has been provided so that we can emulate i386 as well,
> regardless of whether the host is amd64 or not.
>
> Both imply a different set of copyops in sysumtx_op. freebsd32__umtx_op
> simply ignores the flags, since it's already doing a 32-bit operation and
> it's unlikely we'll be running an emulator under compat32. Future work
> could consider it, but the author sees little benefit.
>
> This will be used by qemu-bsd-user to pass on all _umtx_op calls to the
> native interface as long as the host/target endianness matches, effectively
> eliminating most if not all of the remaining unresolved deadlocks for most.
>
> This version changed a fair amount from what was under review, mostly in
> response to refactoring of the prereq reorganization and battle-testing
> it with qemu-bsd-user. The main changes are as follows:
>
> 1.) The i386 flag got renamed to omit '32BIT' since this is redundant.
> 2.) The flags are now properly handled on 32-bit platforms to emulate other
> 32-bit platforms.
> 3.) Robust list handling was fixed, and the 32-bit functionality that was
> previously gated by COMPAT_FREEBSD32 is now unconditional.
> 4.) Robust list handling was also improved, including the error reported
> when a process has already registered 32-bit ABI lists and also
> detecting if native robust lists have already been registered. Both
> scenarios now return EBUSY rather than EINVAL, because the input is
> technically valid but we're too busy with another ABI's lists.
>
> libsysdecode/kdump/truss support will go into review soon-ish, along with
> the associated manpage update.
>
> Reviewed by: kib (earlier version)
> MFC after: 3 weeks
>
Differential Revision: https://reviews.freebsd.org/D27223
More information about the svn-src-all
mailing list