On Wed, Mar 17, 2021 at 4:10 AM Alexander Kanavin <[email protected]> wrote: > > Please Khem, send these patches upstream first. >
its widely discussed problem in webkit and musl circuits, the patch here is carried by almost all musl distros in some form. see https://bugs.webkit.org/show_bug.cgi?id=187485 unfortunately, there is no final solution yet which is acceptable upstream as such. > Alex > > On Wed, 17 Mar 2021 at 01:32, Khem Raj <[email protected]> wrote: >> >> Fixes >> >> [YOCTO #14281] >> >> Signed-off-by: Khem Raj <[email protected]> >> Cc: Andrei Gherzan <[email protected]> >> --- >> .../webkitgtk/musl-lower-stack-usage.patch | 51 +++++++++++++++++++ >> meta/recipes-sato/webkit/webkitgtk_2.30.5.bb | 1 + >> 2 files changed, 52 insertions(+) >> create mode 100644 >> meta/recipes-sato/webkit/webkitgtk/musl-lower-stack-usage.patch >> >> diff --git a/meta/recipes-sato/webkit/webkitgtk/musl-lower-stack-usage.patch >> b/meta/recipes-sato/webkit/webkitgtk/musl-lower-stack-usage.patch >> new file mode 100644 >> index 0000000000..3d66766d9a >> --- /dev/null >> +++ b/meta/recipes-sato/webkit/webkitgtk/musl-lower-stack-usage.patch >> @@ -0,0 +1,51 @@ >> +reduce thread stack and heap usage for javascriptcore on musl >> + >> +default sizes for musl are smaller compared to glibc, this matches >> +to musl defaults, avoid stack overflow crashes in jscore >> + >> +Upstream-Status: Pending >> +Signed-off-by: Khem Raj <[email protected]> >> + >> +--- a/Source/JavaScriptCore/runtime/OptionsList.h >> ++++ b/Source/JavaScriptCore/runtime/OptionsList.h >> +@@ -75,6 +75,18 @@ constexpr bool enableWebAssemblyStreamin >> + // On instantiation of the first VM instance, the Options will be write >> protected >> + // and cannot be modified thereafter. >> + >> ++#if OS(LINUX) && !defined(__GLIBC__) >> ++// non-glibc options on linux ( musl ) >> ++constexpr unsigned jscMaxPerThreadStack = 80 * KB; >> ++constexpr unsigned jscSoftReservedZoneSize = 32 * KB; >> ++constexpr unsigned jscReservedZoneSize = 16 * KB; >> ++#else >> ++//default >> ++constexpr unsigned jscMaxPerThreadStack = 4 * MB; >> ++constexpr unsigned jscSoftReservedZoneSize = 128 * KB; >> ++constexpr unsigned jscReservedZoneSize = 64 * KB; >> ++#endif >> ++ >> + #define FOR_EACH_JSC_OPTION(v) \ >> + v(Bool, useKernTCSM, defaultTCSMValue(), Normal, "Note: this needs to >> go before other options since they depend on this value.") \ >> + v(Bool, validateOptions, false, Normal, "crashes if mis-typed JSC >> options were passed to the VM") \ >> +@@ -90,9 +102,9 @@ constexpr bool enableWebAssemblyStreamin >> + \ >> + v(Bool, reportMustSucceedExecutableAllocations, false, Normal, >> nullptr) \ >> + \ >> +- v(Unsigned, maxPerThreadStackUsage, 5 * MB, Normal, "Max allowed stack >> usage by the VM") \ >> +- v(Unsigned, softReservedZoneSize, 128 * KB, Normal, "A buffer greater >> than reservedZoneSize that reserves space for stringifying exceptions.") \ >> +- v(Unsigned, reservedZoneSize, 64 * KB, Normal, "The amount of stack >> space we guarantee to our clients (and to interal VM code that does not call >> out to clients).") \ >> ++ v(Unsigned, maxPerThreadStackUsage, jscMaxPerThreadStack, Normal, "Max >> allowed stack usage by the VM") \ >> ++ v(Unsigned, softReservedZoneSize, jscSoftReservedZoneSize, Normal, "A >> buffer greater than reservedZoneSize that reserves space for stringifying >> exceptions.") \ >> ++ v(Unsigned, reservedZoneSize, jscReservedZoneSize, Normal, "The amount >> of stack space we guarantee to our clients (and to interal VM code that does >> not call out to clients).") \ >> + \ >> + v(Bool, crashOnDisallowedVMEntry, ASSERT_ENABLED, Normal, "Forces a >> crash if we attempt to enter the VM when disallowed") \ >> + v(Bool, crashIfCantAllocateJITMemory, false, Normal, nullptr) \ >> +@@ -601,7 +613,7 @@ public: >> + bool init(const char*); >> + bool isInRange(unsigned); >> + const char* rangeString() const { return (m_state > InitError) ? >> m_rangeString : s_nullRangeStr; } >> +- >> ++ >> + void dump(PrintStream& out) const; >> + >> + private: >> diff --git a/meta/recipes-sato/webkit/webkitgtk_2.30.5.bb >> b/meta/recipes-sato/webkit/webkitgtk_2.30.5.bb >> index d0a41f48c7..36d33f550d 100644 >> --- a/meta/recipes-sato/webkit/webkitgtk_2.30.5.bb >> +++ b/meta/recipes-sato/webkit/webkitgtk_2.30.5.bb >> @@ -20,6 +20,7 @@ SRC_URI = >> "https://www.webkitgtk.org/releases/${BPN}-${PV}.tar.xz \ >> file://include_xutil.patch \ >> file://reduce-memory-overheads.patch \ >> >> file://0001-Extend-atomics-check-to-include-1-byte-CAS-test.patch \ >> + file://musl-lower-stack-usage.patch \ >> " >> >> SRC_URI[sha256sum] = >> "7d0dab08e3c5ae07bec80b2822ef42e952765d5724cac86eb23999bfed5a7f1f" >> -- >> 2.31.0 >> >> >> >>
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#149607): https://lists.openembedded.org/g/openembedded-core/message/149607 Mute This Topic: https://lists.openembedded.org/mt/81392614/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
