Trigger JIT tracing&compilation more often

Closes GH-12250
This commit is contained in:
Daniil Gentili 2023-09-18 10:34:35 +02:00 committed by Ilija Tovilo
parent 24915924bf
commit 098d9ca720
No known key found for this signature in database
GPG Key ID: A4F5D403F118200A
7 changed files with 51 additions and 19 deletions

View File

@ -204,7 +204,7 @@ arm_task:
sapi/cli/php run-tests.php sapi/cli/php run-tests.php
-d zend_extension=opcache.so -d zend_extension=opcache.so
-d opcache.enable_cli=1 -d opcache.enable_cli=1
-d opcache.jit_buffer_size=16M -d opcache.jit_buffer_size=64M
-d opcache.jit=function -d opcache.jit=function
-P -q -x -j2 -P -q -x -j2
-g FAIL,BORK,LEAK,XLEAK -g FAIL,BORK,LEAK,XLEAK
@ -217,7 +217,14 @@ arm_task:
sapi/cli/php run-tests.php sapi/cli/php run-tests.php
-d zend_extension=opcache.so -d zend_extension=opcache.so
-d opcache.enable_cli=1 -d opcache.enable_cli=1
-d opcache.jit_buffer_size=16M -d opcache.jit_buffer_size=64M
-d opcache.jit_max_root_traces=1000000
-d opcache.jit_max_side_traces=1000000
-d opcache.jit_max_exit_counters=1000000
-d opcache.jit_hot_loop=1
-d opcache.jit_hot_func=1
-d opcache.jit_hot_return=1
-d opcache.jit_hot_side_exit=1
-d opcache.jit=tracing -d opcache.jit=tracing
-P -q -x -j2 -P -q -x -j2
-g FAIL,BORK,LEAK,XLEAK -g FAIL,BORK,LEAK,XLEAK

View File

@ -6,6 +6,9 @@ inputs:
runTestsParameters: runTestsParameters:
default: '' default: ''
required: false required: false
jitType:
default: 'disable'
required: false
runs: runs:
using: composite using: composite
steps: steps:
@ -38,6 +41,16 @@ runs:
export TEST_PHP_JUNIT=junit.out.xml export TEST_PHP_JUNIT=junit.out.xml
export STACK_LIMIT_DEFAULTS_CHECK=1 export STACK_LIMIT_DEFAULTS_CHECK=1
sapi/cli/php run-tests.php -P -q ${{ inputs.runTestsParameters }} \ sapi/cli/php run-tests.php -P -q ${{ inputs.runTestsParameters }} \
-d opcache.jit=${{ inputs.jitType }} \
-d opcache.protect_memory=1 \
-d opcache.jit_buffer_size=64M \
-d opcache.jit_max_root_traces=1000000 \
-d opcache.jit_max_side_traces=1000000 \
-d opcache.jit_max_exit_counters=1000000 \
-d opcache.jit_hot_loop=1 \
-d opcache.jit_hot_func=1 \
-d opcache.jit_hot_return=1 \
-d opcache.jit_hot_side_exit=1 \
-j$(/usr/bin/nproc) \ -j$(/usr/bin/nproc) \
-g FAIL,BORK,LEAK,XLEAK \ -g FAIL,BORK,LEAK,XLEAK \
--no-progress \ --no-progress \

View File

@ -17,6 +17,15 @@ runs:
export TEST_PHP_JUNIT=junit.out.xml export TEST_PHP_JUNIT=junit.out.xml
export STACK_LIMIT_DEFAULTS_CHECK=1 export STACK_LIMIT_DEFAULTS_CHECK=1
sapi/cli/php run-tests.php -P -q ${{ inputs.runTestsParameters }} \ sapi/cli/php run-tests.php -P -q ${{ inputs.runTestsParameters }} \
-d opcache.protect_memory=1 \
-d opcache.jit_buffer_size=64M \
-d opcache.jit_max_root_traces=1000000 \
-d opcache.jit_max_side_traces=1000000 \
-d opcache.jit_max_exit_counters=1000000 \
-d opcache.jit_hot_loop=1 \
-d opcache.jit_hot_func=1 \
-d opcache.jit_hot_return=1 \
-d opcache.jit_hot_side_exit=1 \
-j$(sysctl -n hw.ncpu) \ -j$(sysctl -n hw.ncpu) \
-g FAIL,BORK,LEAK,XLEAK \ -g FAIL,BORK,LEAK,XLEAK \
--no-progress \ --no-progress \

View File

@ -84,7 +84,7 @@ set OPENSSL_CONF=
rem set SSLEAY_CONF= rem set SSLEAY_CONF=
rem prepare for OPcache rem prepare for OPcache
if "%OPCACHE%" equ "1" set OPCACHE_OPTS=-d opcache.enable=1 -d opcache.enable_cli=1 -d opcache.protect_memory=1 -d opcache.jit_buffer_size=16M if "%OPCACHE%" equ "1" set OPCACHE_OPTS=-d opcache.enable=1 -d opcache.enable_cli=1 -d opcache.protect_memory=1 -d opcache.jit_buffer_size=64M -d opcache.jit_max_root_traces=1000000 -d opcache.jit_max_side_traces=1000000 -d opcache.jit_max_exit_counters=1000000 -d opcache.jit_hot_loop=1 -d opcache.jit_hot_func=1 -d opcache.jit_hot_return=1 -d opcache.jit_hot_side_exit=1 -d opcache.jit=tracing
rem work-around for failing to dl(mysqli) with OPcache (https://github.com/php/php-src/issues/8508) rem work-around for failing to dl(mysqli) with OPcache (https://github.com/php/php-src/issues/8508)
if "%OPCACHE%" equ "1" set OPCACHE_OPTS=%OPCACHE_OPTS% -d extension=mysqli if "%OPCACHE%" equ "1" set OPCACHE_OPTS=%OPCACHE_OPTS% -d extension=mysqli

View File

@ -103,11 +103,11 @@ jobs:
uses: ./.github/actions/test-linux uses: ./.github/actions/test-linux
with: with:
testArtifacts: ${{ matrix.branch.name }}_${{ matrix.name }}_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }} Tracing JIT testArtifacts: ${{ matrix.branch.name }}_${{ matrix.name }}_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }} Tracing JIT
jitType: tracing
runTestsParameters: >- runTestsParameters: >-
${{ matrix.run_tests_parameters }} ${{ matrix.run_tests_parameters }}
-d zend_extension=opcache.so -d zend_extension=opcache.so
-d opcache.enable_cli=1 -d opcache.enable_cli=1
-d opcache.jit_buffer_size=16M
- name: Test OpCache - name: Test OpCache
uses: ./.github/actions/test-linux uses: ./.github/actions/test-linux
with: with:
@ -123,12 +123,11 @@ jobs:
uses: ./.github/actions/test-linux uses: ./.github/actions/test-linux
with: with:
testArtifacts: ${{ matrix.branch.name }}_${{ matrix.name }}_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }} Function JIT testArtifacts: ${{ matrix.branch.name }}_${{ matrix.name }}_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }} Function JIT
jitType: function
runTestsParameters: >- runTestsParameters: >-
${{ matrix.run_tests_parameters }} ${{ matrix.run_tests_parameters }}
-d zend_extension=opcache.so -d zend_extension=opcache.so
-d opcache.enable_cli=1 -d opcache.enable_cli=1
-d opcache.jit_buffer_size=16M
-d opcache.jit=1205
- name: Verify generated files are up to date - name: Verify generated files are up to date
uses: ./.github/actions/verify-generated-files uses: ./.github/actions/verify-generated-files
- name: Notify Slack - name: Notify Slack
@ -194,11 +193,11 @@ jobs:
- name: Test Tracing JIT - name: Test Tracing JIT
uses: ./.github/actions/test-linux uses: ./.github/actions/test-linux
with: with:
jitType: tracing
runTestsParameters: >- runTestsParameters: >-
${{ matrix.run_tests_parameters }} ${{ matrix.run_tests_parameters }}
-d zend_extension=opcache.so -d zend_extension=opcache.so
-d opcache.enable_cli=1 -d opcache.enable_cli=1
-d opcache.jit_buffer_size=16M
- name: Test OpCache - name: Test OpCache
uses: ./.github/actions/test-linux uses: ./.github/actions/test-linux
with: with:
@ -209,12 +208,11 @@ jobs:
- name: Test Function JIT - name: Test Function JIT
uses: ./.github/actions/test-linux uses: ./.github/actions/test-linux
with: with:
jitType: function
runTestsParameters: >- runTestsParameters: >-
${{ matrix.run_tests_parameters }} ${{ matrix.run_tests_parameters }}
-d zend_extension=opcache.so -d zend_extension=opcache.so
-d opcache.enable_cli=1 -d opcache.enable_cli=1
-d opcache.jit_buffer_size=16M
-d opcache.jit=1205
- name: Notify Slack - name: Notify Slack
if: failure() if: failure()
uses: ./.github/actions/notify-slack uses: ./.github/actions/notify-slack
@ -258,11 +256,10 @@ jobs:
uses: ./.github/actions/test-macos uses: ./.github/actions/test-macos
with: with:
testArtifacts: ${{ matrix.branch.name }}_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }} Tracing JIT testArtifacts: ${{ matrix.branch.name }}_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }} Tracing JIT
jitType: tracing
runTestsParameters: >- runTestsParameters: >-
-d zend_extension=opcache.so -d zend_extension=opcache.so
-d opcache.enable_cli=1 -d opcache.enable_cli=1
-d opcache.protect_memory=1
-d opcache.jit_buffer_size=16M
- name: Test OpCache - name: Test OpCache
uses: ./.github/actions/test-macos uses: ./.github/actions/test-macos
with: with:
@ -270,17 +267,14 @@ jobs:
runTestsParameters: >- runTestsParameters: >-
-d zend_extension=opcache.so -d zend_extension=opcache.so
-d opcache.enable_cli=1 -d opcache.enable_cli=1
-d opcache.protect_memory=1
- name: Test Function JIT - name: Test Function JIT
uses: ./.github/actions/test-macos uses: ./.github/actions/test-macos
with: with:
testArtifacts: ${{ matrix.branch.name }}_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }} Function JIT testArtifacts: ${{ matrix.branch.name }}_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }} Function JIT
jitType: function
runTestsParameters: >- runTestsParameters: >-
-d zend_extension=opcache.so -d zend_extension=opcache.so
-d opcache.enable_cli=1 -d opcache.enable_cli=1
-d opcache.protect_memory=1
-d opcache.jit_buffer_size=16M
-d opcache.jit=1205
- name: Verify generated files are up to date - name: Verify generated files are up to date
uses: ./.github/actions/verify-generated-files uses: ./.github/actions/verify-generated-files
- name: Notify Slack - name: Notify Slack
@ -321,6 +315,7 @@ jobs:
- name: Test OpCache - name: Test OpCache
uses: ./.github/actions/test-linux uses: ./.github/actions/test-linux
with: with:
jitType: tracing
runTestsParameters: >- runTestsParameters: >-
-d zend_extension=opcache.so -d zend_extension=opcache.so
-d opcache.enable_cli=1 -d opcache.enable_cli=1
@ -375,6 +370,15 @@ jobs:
echo opcache.enable_cli=1 >> /etc/php.d/opcache.ini echo opcache.enable_cli=1 >> /etc/php.d/opcache.ini
echo opcache.protect_memory=1 >> /etc/php.d/opcache.ini echo opcache.protect_memory=1 >> /etc/php.d/opcache.ini
echo opcache.jit_buffer_size=1G >> /etc/php.d/opcache.ini echo opcache.jit_buffer_size=1G >> /etc/php.d/opcache.ini
echo opcache.jit_max_root_traces=1000000 >> /etc/php.d/opcache.ini
echo opcache.jit_max_side_traces=1000000 >> /etc/php.d/opcache.ini
echo opcache.jit_max_exit_counters=1000000 >> /etc/php.d/opcache.ini
echo opcache.jit_hot_loop=1 >> /etc/php.d/opcache.ini
echo opcache.jit_hot_func=1 >> /etc/php.d/opcache.ini
echo opcache.jit_hot_return=1 >> /etc/php.d/opcache.ini
echo opcache.jit_hot_side_exit=1 >> /etc/php.d/opcache.ini
echo memory_limit=-1 >> /etc/php.d/opcache.ini
php -v
- name: Test AMPHP - name: Test AMPHP
if: matrix.branch.ref != 'PHP-8.0' if: matrix.branch.ref != 'PHP-8.0'
run: | run: |

View File

@ -126,10 +126,10 @@ jobs:
uses: ./.github/actions/test-linux uses: ./.github/actions/test-linux
with: with:
testArtifacts: ${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}${{ matrix.asan && '_ASAN' || '' }}_${{ matrix.asan && 'OpCache' || 'Tracing JIT' }} testArtifacts: ${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}${{ matrix.asan && '_ASAN' || '' }}_${{ matrix.asan && 'OpCache' || 'Tracing JIT' }}
jitType: ${{ matrix.asan && 'disable' || 'tracing' }}
runTestsParameters: >- runTestsParameters: >-
-d zend_extension=opcache.so -d zend_extension=opcache.so
-d opcache.enable_cli=1 -d opcache.enable_cli=1
${{ !matrix.asan && '-d opcache.jit_buffer_size=16M' || '' }}
${{ matrix.asan && '--asan -x' || '' }} ${{ matrix.asan && '--asan -x' || '' }}
- name: Verify generated files are up to date - name: Verify generated files are up to date
if: ${{ !matrix.asan }} if: ${{ !matrix.asan }}
@ -160,11 +160,10 @@ jobs:
uses: ./.github/actions/test-macos uses: ./.github/actions/test-macos
with: with:
testArtifacts: ${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }} Tracing JIT testArtifacts: ${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }} Tracing JIT
jitType: tracing
runTestsParameters: >- runTestsParameters: >-
-d zend_extension=opcache.so -d zend_extension=opcache.so
-d opcache.enable_cli=1 -d opcache.enable_cli=1
-d opcache.protect_memory=1
-d opcache.jit_buffer_size=16M
- name: Verify generated files are up to date - name: Verify generated files are up to date
uses: ./.github/actions/verify-generated-files uses: ./.github/actions/verify-generated-files
WINDOWS: WINDOWS:

View File

@ -85,7 +85,7 @@ before_script:
# Run PHPs run-tests.php # Run PHPs run-tests.php
script: script:
- travis_wait ./travis/test.sh -d opcache.jit_buffer_size=16M -d opcache.jit=tracing - travis_wait 60 ./travis/test.sh -d opcache.jit=tracing -d opcache.jit_buffer_size=64M -d opcache.jit_max_root_traces=1000000 -d opcache.jit_max_side_traces=1000000 -d opcache.jit_max_exit_counters=1000000 -d opcache.jit_hot_loop=1 -d opcache.jit_hot_func=1 -d opcache.jit_hot_return=1 -d opcache.jit_hot_side_exit=1
- sapi/cli/php -d extension_dir=`pwd`/modules -r 'dl("zend_test");' - sapi/cli/php -d extension_dir=`pwd`/modules -r 'dl("zend_test");'
after_success: after_success: