This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFC: Test optimizations for multiple architectures


On Thu, Nov 11, 2010 at 12:33, Roland McGrath <roland@redhat.com> wrote:
> I'd be more inclined to provide some mechanism to mask the feature flags
> that are used to decide which function to chose, somewhat analogous to
> LD_HWCAP_MASK.

This doesn't work in general and no scheme which would select a
specific function from the outside will work.  Not unless we'd be
willing to accept a new flag for every new implementation.  Fact is
that the code in the ifunc selector functions does not have to use
just CPU features.  We are already using in some processor models and
not features.  This variety will undoubtedly increase over time.  This
all ignores that having an overwrite at runtime is a) adding more
overhead and b) adding yet another way for people to screw up their
environments.

The way to handle this is to explicitly run the tests by adding the
real function name as referenced in the ifunc selector functions to
the list of functions we iterate over to run the tests.  This is what
I think HJ's patch does.  Perhaps it needs to be cleaned up but it the
right way to do.  Every time a new variant is added we can extend the
list for the architecture.  The complexity from running a newer
variant on an older machine can also quite easily be abstracted out.
What has to be done can be hidden in some arch-specific headers and
the tests will then use the included definitions if they exist or fall
back to the simple testing we do today.  All that'll be needed in
future is to remember to add thename of the new variant to the
appropriate list.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]