svn commit: r291171 - in head/sys: amd64/amd64 compat/ia32 i386/i386 kern sys

Konstantin Belousov kostikbel at gmail.com
Fri Dec 11 13:24:44 UTC 2015


On Thu, Dec 10, 2015 at 10:48:11PM +0100, Oliver Pinter wrote:
> On Thursday, December 10, 2015, Konstantin Belousov <kostikbel at gmail.com>
> wrote:
> 
> > On Thu, Dec 10, 2015 at 10:18:19PM +0100, Oliver Pinter wrote:
> > > On Mon, Nov 23, 2015 at 8:09 AM, Konstantin Belousov <kib at freebsd.org
> > <javascript:;>> wrote:
> > > > Author: kib
> > > > Date: Mon Nov 23 07:09:35 2015
> > > > New Revision: 291171
> > > > URL: https://svnweb.freebsd.org/changeset/base/291171
> > > >
> > > > Log:
> > > >   Split kerne timekeep ABI structure vdso_sv_tk out of the struct
> > > >   sysentvec.  This allows the timekeep data to be shared between
> > similar
> > > >   ABIs which cannot share sysentvec.
> > > >
> > > >   Make the timekeep_push_vdso() tick callback to the timekeep
> > structures
> > > >   instead of sysentvecs.  If several sysentvec share the vdso_sv_tk
> > > >   structure, we would update the userspace data several times on each
> > > >   tick, without the change.
> > > >
> > > >   Only allocate vdso_sv_tk in the exec_sysvec_init() sysinit when
> > > >   sysentvec is marked with the new SV_TIMEKEEP flag.  This saves
> > > >   allocation and update of unneeded vdso_sv_tk for ABIs which do not
> > > >   provide userspace gettimeofday yet, which are PowerPCs arches right
> > > >   now.
> > > >
> > > >   Make vdso_sv_tk allocator public, namely split out and export
> > > >   alloc_sv_tk() and alloc_sv_tk_compat32().  ABIs which share timekeep
> > > >   data now can allocate it manually and share as appropriate.
> > > >
> > > >   Requested by: nwhitehorn
> > > >   Tested by:    nwhitehorn, pho
> > > >   Sponsored by: The FreeBSD Foundation
> > > >   MFC after:    2 weeks
> > >
> > > Hello Konstantin!
> > >
> > > Do you plan to MFC back this changes to 10-STABLE in these days?
> >
> > I decided to not merge the change.
> >
> 
> And if I'm not wrong, the rationale behind this decision is the type
> stability of struct sysvec / sysent.
You are wrong. The modules which use sysentvec are marked as
DECLARE_MODULE_TIED(), to designate them as requiring kernel of exactly
same version due to KBI issues. I.e. the merge would indeed break KBI,
but KBI breakage there is expected and considered acceptable on the
stable branch. Mainly, the affected modules are ABI emulators (linux.ko
and similar).

I got demotivated to merge a prerequisite changes which modified code
in kern_sharedpage.c, and do not want to obliterate the code and
history on stable/10 with 'fake' merge.  This makes the revision you
asked about non-mergeable.


More information about the svn-src-head mailing list