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: [PATCH] Improves __ieee754_exp() performance by 2x-5x on sparc/x86.


On Wed, 3 Jan 2018, Patrick McGehearty wrote:

> I have not been updating any of the earlier comments when I responded
> to the later comments. I just added the newest comment to the top of
> the earlier patch comments to allow easy access to this PATCH history.
> If we need another patch, I'll rework the comments as you suggest.

The entirety of any proposed commit is subject to review.  This includes 
the commit message as well as the patch itself.  That means it must be 
unambiguous exactly what the proposed commit message is - and that message 
must all be in one place, not needing composing from pieces in multiple 
messages, and must correspond to the patch sent with that message.  Again, 
I recommend the same format used by the Linux kernel, of having the commit 
message first, with anything about changes between different patch 
versions afterwards, following a "---" line.  That's also what "git am" 
expects (though we can't quite use git am for glibc because of the need to 
update the ChangeLog file at commit time).

> I'm not clear about how "make regen-ulps" is part of the patch process.
> I've not seen any discussion of that before.
> Do I need to include the changes to the ulp test data as part
> of the patch? I had assumed that was handled as a separate
> patch after the code changes were merged.

Any patch submission should have non-regressing test results, on at least 
one platform that is explicitly named in the commit message as a platform 
on which the patch was tested.

This means that if a patch needs ulps updates to avoid FAILs of math/ 
tests, those ulps updates (on at least one named platform used for 
testing) must be included in the patch, and the patch as posted, complete 
with the ulps updates, must have been tested without resulting 
regressions.  It should be obvious from the problems with the previous 
patch version that it's *not* sufficient simply to eyeball the logs for 
failing tests - you need actually to update ulps and to confirm that FAILs 
don't appear given the ulps updates, because there are other ways those 
tests can fail that are not fixed by such updates.

If you test on more than one platform, including the ulps updates for all 
those platforms in the patch is a good idea.

> Also, when I run "make check" on the base code for Sparc, I'm getting
> some additional ulp failures for cpow, ctan, ctanh and a few others.
> These did not occur with my 8th patch submission but did with my
> 9th patch. They do not occur on the x86 tests.
> These ulp failures are unchanged by my exp() code, so I've
> concluded they are not related to my work.

If there are preexisting ulps failures, that means you need to send two 
patches.  The first one would be the results of "make regen-ulps" for 
current glibc, to fix the preexisting failures (and such a patch could be 
committed as obvious without prior review).  The second one would be 
relative to a tree with the first one applied, and would include whatever 
further ulps updates the exp patch requires.

Architecture maintainers should update ulps files as needed during the 
release freeze, and they or others may also do updates at other times as 
and when convenient.

-- 
Joseph S. Myers
joseph@codesourcery.com


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