Title: Enable verbose of tests during PGO build on amd64 platforms
Type: enhancement Stage: patch review
Components: Build, Windows Versions: Python 3.8, Python 3.7
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: neyuru, paul.moore, steve.dower, tim.golden, zach.ware
Priority: normal Keywords: patch, patch, patch

Created on 2019-01-15 05:26 by neyuru, last changed 2019-01-19 07:03 by neyuru.

Pull Requests
URL Status Linked Edit
PR 11558 open neyuru, 2019-01-15 05:33
PR 11558 open neyuru, 2019-01-15 05:33
PR 11558 open neyuru, 2019-01-15 05:34
Messages (3)
msg333648 - (view) Author: Jorge Ramos (neyuru) * Date: 2019-01-15 05:26
It would be interesting to allow regrtests to output to command line during testing with PGO enabled. The default behavior is to not display output unless some fatal error occurs ("quiet" mode).

Making this issue to create a pull request.
msg333722 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2019-01-15 18:10
You can provide this new default as a command line option when invoking the script (--pgo-job, IIRC), which should satisfy the occasional need to do this.

I would rather keep the default quieter so that the build does not take as long (though I guess there is the possibility that enabling more output produces a better profile, but I doubt it's significant).
msg334042 - (view) Author: Jorge Ramos (neyuru) * Date: 2019-01-19 07:03
Mmm, I don't find that option documented in the readme of the MSI folder nor in the help for buildrelease.bat (and also is not intuitive, what does IIRC stand for?), nevertheless:

It should be no problem if this PR doesn't pass but it should help newcomers like me to debug builds (the option -q is also not documented in the buildrelease but I found that option tracking the build calls all the way to I leave this info here if anyone benefits from it.

In fact I edited the PGO option in the buildrelease file to:

PGO= -m test --pgo -uall -j8 -M 27Gb -x test_bigmem test_bz2 test_codecs test_httpservers test_nntplib test_platform test_regrtest test_sysconfig test_zlib

The test suite now reads: PASS (I know, it is not necessary for all the tests to pass, but it is a nice view IMO). The benefit of the -j option is  that it permits some tests to pass when they where failing before this option. The option -uall opens resources to the tests, so that some of them will no longer be denied to tests (and therefore leaving no tests run -or skipped- by lack of resources). The 27Gb memory "allocated" to the tests is overkill, but my system could handle it (it may be that some tests need more than that but I have no further memory). 

Sure, it takes a long time to build (close to 1 hr) but it is the best way I have found so far to minimize the number of failed tests: with this option, only those 9 tests fail out of the 407 in Python 3.6 This info was found by disabling the quiet option, so that is another plus.

If you have time, can I ask a question related to the *.pgc files?
Date User Action Args
2019-01-19 07:03:19neyurusetmessages: + msg334042
2019-01-15 18:10:06steve.dowersetkeywords: patch, patch, patch

messages: + msg333722
2019-01-15 05:34:18neyurusetkeywords: + patch
stage: patch review
pull_requests: + pull_request11195
2019-01-15 05:34:07neyurusetkeywords: + patch
stage: (no value)
pull_requests: + pull_request11194
2019-01-15 05:33:57neyurusetkeywords: + patch
stage: (no value)
pull_requests: + pull_request11193
2019-01-15 05:26:47neyurucreate