History log of /php-src/ext/opcache/ZendAccelerator.c (Results 1 – 25 of 746)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 1bae61a4 19-Mar-2024 Arnaud Le Blanc

Compress interned string table offsets and increase maximum supported buffer size (#13676)

Compress interned string table offsets and increase maximum supported buffer size

The inte

Compress interned string table offsets and increase maximum supported buffer size (#13676)

Compress interned string table offsets and increase maximum supported buffer size

The interned string buffer is organized as a header + a hash table + a
zend_string arena. Hash slots point to the arena, but are represented as 32bit
offsets from the buffer, which limits the maximum buffer size to about 4GiB.
However zend_strings are 8-byte aligned in the buffer, so we can compress the
3 lower bits. This allows to increase the maximum supported interned string
buffer size from 4095 MiB to 32767 MiB.

show more ...


# 566100d7 29-Nov-2023 yang yuhan

Enhance moving PHP code pages into huge pages (#12806)

The former implementation of huge pages for PHP code segments may
fail to map in certain scenarios. For instance, if the initial

Enhance moving PHP code pages into huge pages (#12806)

The former implementation of huge pages for PHP code segments may
fail to map in certain scenarios. For instance, if the initial
'r-x-' segment is not PHP, it will result in a failure to map into
huge pages. Consequently, the optimization for huge pages with PHP
code will no longer be effective.

This patch improves the implementation by accurately matching all
'r-x-' segments until it locates the PHP code segment. Subsequently,
it performs the necessary huge page mapping.


Reviewed-by: chen-hu-97 <hu1.chen@intel.com>

Signed-off-by: PeterYang12 <yuhan.yang@intel.com>

show more ...


# fde41bc7 16-Nov-2023 Daniil Gentili

Report fatal error if JIT cannot be enabled

Closes GH-12403


# 07d81592 17-Oct-2023 Ilija Tovilo

Avoid JIT warning with opcache.jit_buffer_size=0

Closes GH-12460


# 71774611 10-Oct-2023 Daniil Gentili

Report warning if JIT cannot be enabled

Closes GH-12404


# f4ab4949 29-Sep-2023 Mikhail Galanin

Invalidate path even if the file was deleted

Closes GH-12323


# bdc87b0f 27-Sep-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Fix #80092: ZTS + preload = segfault on shutdown

After preloading has executed, the executor globals for class_table and
function_table are still referring to the values during preloadin

Fix #80092: ZTS + preload = segfault on shutdown

After preloading has executed, the executor globals for class_table and
function_table are still referring to the values during preloading.
If no request happens after that then these values will remain dangling
pointers. If then the -v option on CLI or -h option (and possibly
others) on CGI is provided, there is a double free.
Fix it by nulling the pointers explicitly after preloading has finished
to fix it for all SAPIs.

Closes GH-12311.

show more ...


# 5e8c992c 23-Sep-2023 Jakub Zelenka

Reduce impact of stream file path check in filestat

Fix for #76857 introduced slight perf regression so this is an attempt
to fix it. The idea is to re-use stream path check from ZendAcc

Reduce impact of stream file path check in filestat

Fix for #76857 introduced slight perf regression so this is an attempt
to fix it. The idea is to re-use stream path check from ZendAccelerator
that should be quicker than strstr.

Signed-off-by: Jakub Zelenka <bukka@php.net>

show more ...


# b2dbf0a2 31-Jul-2023 Ilija Tovilo

Remove opcache.consistency_checks

This feature has been broken at least since the tracing JIT and inheritance
cache have been introduced. The attempted fix (GH-10798) was too complex. We

Remove opcache.consistency_checks

This feature has been broken at least since the tracing JIT and inheritance
cache have been introduced. The attempted fix (GH-10798) was too complex. We
have thus decided to remove this feature for now.

Closes GH-11832

show more ...


# ee3f9323 17-Jul-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Fix GH-11715: opcache.interned_strings_buffer either has no effect or opcache_get_status() / phpinfo() is wrong

There are a couple of oddities.

1) The interned strings buffer compri

Fix GH-11715: opcache.interned_strings_buffer either has no effect or opcache_get_status() / phpinfo() is wrong

There are a couple of oddities.

1) The interned strings buffer comprises the whole hashtable
datastructure.
Therefore, it seems that the interned strings buffer size is the size of
only said table. However, in the current code it also includes the size
of the zend_accel_shared_globals.

2) ZCSG(interned_strings).end is computed starting from the accelerator
globals struct itself. I would expect it to start from the part where
the interned strings table starts.

3) When computing the used size, it is done using
ZCSG(interned_strings).end - ZCSG(interned_strings).start. However,
this does not include the uin32_t slots array because
ZCSG(interned_strings).start pointers after that array.

This patch corrrects these 3 points.

Closes GH-11717.

show more ...


# 1a0ef2c1 06-Jul-2023 Ilija Tovilo

Revert "Remove name field from the zend_constant struct (#10954)"

This reverts commit f42992f580343931434dff2e4b2042ff945b48a1.

Closes GH-11604


# b0bc057e 17-Jul-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Prevent potential deadlock if accelerated globals cannot be allocated

Not sure if this is possible to hit in practice, zend_accel_error_noreturn
doesn't return so the unlock isn't called

Prevent potential deadlock if accelerated globals cannot be allocated

Not sure if this is possible to hit in practice, zend_accel_error_noreturn
doesn't return so the unlock isn't called. Other callsites that use both
zend_accel_error_noreturn and zend_shared_alloc_unlock first perform the
unlocking.

Closes GH-11718.

show more ...


# ad1b70d6 04-Jul-2023 Ilija Tovilo

Revert "Revert "Remove name field from the zend_constant struct (#10954)""

This reverts commit 9f4bd3040d2809f209d73f696b21302f311665b7.


# 9f4bd304 03-Jul-2023 Máté Kocsis

Revert "Remove name field from the zend_constant struct (#10954)"

This reverts commit f42992f580343931434dff2e4b2042ff945b48a1.

Fix GH-11423


# 9c59d22a 29-May-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Fix GH-11336: php still tries to unlock the shared memory ZendSem with opcache.file_cache_only=1 but it was never locked

I chose to check for the value of lock_file instead of checking the

Fix GH-11336: php still tries to unlock the shared memory ZendSem with opcache.file_cache_only=1 but it was never locked

I chose to check for the value of lock_file instead of checking the
file_cache_only, because it is probably a little bit faster and we're
going to access the lock_file variable anyway. It's also more generic.

Closes GH-11341.

show more ...


# 414f71a9 16-Apr-2023 Máté Kocsis

Typed class constants (#10444)

RFC: https://wiki.php.net/rfc/typed_class_constants

Co-Authored-By: Ben <7127204+moliata@users.noreply.github.com>
Co-Authored-By: Bob Weinand <31

Typed class constants (#10444)

RFC: https://wiki.php.net/rfc/typed_class_constants

Co-Authored-By: Ben <7127204+moliata@users.noreply.github.com>
Co-Authored-By: Bob Weinand <3154871+bwoebi@users.noreply.github.com>
Co-Authored-By: Ilija Tovilo <ilija.tovilo@me.com>

show more ...


# 9e861423 04-Apr-2023 Joan Miquel

Add ngx-php to opcache supported sapis (#11013)

This SAPI embed PHP in Nginx server.
https://github.com/rryqszq4/ngx-php

And in the Techempower benchmarks, it's the fastest PHP

Add ngx-php to opcache supported sapis (#11013)

This SAPI embed PHP in Nginx server.
https://github.com/rryqszq4/ngx-php

And in the Techempower benchmarks, it's the fastest PHP SAPI.
https://www.techempower.com/benchmarks/#section=data-r20

show more ...


# f42992f5 03-Apr-2023 Máté Kocsis

Remove name field from the zend_constant struct (#10954)

As global constant names are case-sensitive now, we don't have to store them separately above the constant table.


# 9d5f2f13 20-Mar-2023 Ilija Tovilo

Use new ZSTR_INIT_LITERAL macro (#10879)


# 18b43d29 28-Feb-2023 Dmitry Stogov

Fix Zend/tests/type_declarations/variance/class_order_autoload1.phpt
test failre introduced by 44e5c04e5546e60cdbc31360adf3876b7c706152

This ASSERT-ion path was never reached becuase of

Fix Zend/tests/type_declarations/variance/class_order_autoload1.phpt
test failre introduced by 44e5c04e5546e60cdbc31360adf3876b7c706152

This ASSERT-ion path was never reached becuase of the bug fixed by
44e5c04e5546e60cdbc31360adf3876b7c706152. It's possible in case of
circular class dependencies that may resolved by __autoload().
Unfortunately these circular dependencies can't be stored in the
inheritace cahce.

show more ...


# 44e5c04e 27-Feb-2023 Dmitry Stogov

Fix incorrect inheritance cache update (#10719)


# 2e3fc8c0 27-Feb-2023 Dmitry Stogov

Fix incorrect inheritance cache update (#10719)


# 375e7402 26-Feb-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Change implicit enum return value checks to explicit checks (#10703)


# eb7bb343 25-Feb-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Fix format string mistake in accel_move_code_to_huge_pages()

inode is unsigned, so use %lu instead of %ld


# 263b22f3 21-Feb-2023 Max Kellermann

Make lots of string pointers `const` (#10646)

This allows using string literals without implicitly casting away the
`const`.


12345678910>>...30