Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 21 Nov 2020 23:49:49 -0600
From:      Kyle Evans <kevans@freebsd.org>
Cc:        src-committers <src-committers@freebsd.org>, svn-src-all <svn-src-all@freebsd.org>,  svn-src-head <svn-src-head@freebsd.org>
Subject:   Re: svn commit: r367930 - in head/sys: kern sys
Message-ID:  <CACNAnaFT2PHWhSLv1it3ykCQL78kZ_gEOHyvnAS7gqoBzHKYRw@mail.gmail.com>
In-Reply-To: <202011220547.0AM5lkOG078011@repo.freebsd.org>
References:  <202011220547.0AM5lkOG078011@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Nov 21, 2020 at 11:47 PM Kyle Evans <kevans@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



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