From a7d930d1e0dfd7cc312715cdb61ab18447daae27 Mon Sep 17 00:00:00 2001 From: jiangyingxin Date: Tue, 11 Jul 2023 16:04:31 +0800 Subject: [PATCH 1/4] Optimizing __random for single-threaded scenarios --- ...random-for-single-threaded-scenarios.patch | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 0001-Optimizing-__random-for-single-threaded-scenarios.patch diff --git a/0001-Optimizing-__random-for-single-threaded-scenarios.patch b/0001-Optimizing-__random-for-single-threaded-scenarios.patch new file mode 100644 index 0000000..cbc113e --- /dev/null +++ b/0001-Optimizing-__random-for-single-threaded-scenarios.patch @@ -0,0 +1,44 @@ +From f54e1ddea12343991b402abf28be2b94ffbac2c5 Mon Sep 17 00:00:00 2001 +From: Tian Tao +Date: Tue, 11 Jul 2023 08:42:56 +0800 +Subject: [PATCH] Optimizing __random for single-threaded scenarios + +The __random function does not need to be locked by __libc_lock_lock and +unlocked by __libc_lock_unlock in a single-threaded scenario, so we can +remove these locks in a single-threaded scenario to improve performance. + +Signed-off-by: Tian Tao +--- + stdlib/random.c | 14 +++++++++++--- + 1 file changed, 11 insertions(+), 3 deletions(-) + +diff --git a/stdlib/random.c b/stdlib/random.c +index 62f22fac8d..9035df8d18 100644 +--- a/stdlib/random.c ++++ b/stdlib/random.c +@@ -288,11 +288,19 @@ __random (void) + { + int32_t retval; + +- __libc_lock_lock (lock); ++ if (__libc_single_threaded) { + +- (void) __random_r (&unsafe_state, &retval); ++ (void) __random_r (&unsafe_state, &retval); + +- __libc_lock_unlock (lock); ++ } else { ++ ++ __libc_lock_lock (lock); ++ ++ (void) __random_r (&unsafe_state, &retval); ++ ++ __libc_lock_unlock (lock); ++ ++ } + + return retval; + } +-- +2.33.0 + -- Gitee From ac20f0cf8e6d6f318626d8032ab0710beac19933 Mon Sep 17 00:00:00 2001 From: jiangyingxin Date: Tue, 11 Jul 2023 17:31:05 +0800 Subject: [PATCH 2/4] update glibc.spec --- glibc.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/glibc.spec b/glibc.spec index e92967e..8a8a835 100644 --- a/glibc.spec +++ b/glibc.spec @@ -65,7 +65,7 @@ ############################################################################## Name: glibc Version: 2.36 -Release: 16 +Release: 17 Summary: The GNU libc libraries License: %{all_license} URL: http://www.gnu.org/software/glibc/ @@ -96,6 +96,7 @@ Patch9: gmon-Fix-allocated-buffer-overflow-bug-29444.patch Patch10: stdlib-strfrom-Add-copysign-to-fix-NAN-issue-on-risc.patch Patch11: Assume-only-FLAG_ELF_LIBC6-suport.patch Patch12: elf-Restore-ldconfig-libc6-implicit-soname-logic-BZ-.patch +Patch13: 0001-Optimizing-__random-for-single-threaded-scenarios.patch Patch9000: turn-default-value-of-x86_rep_stosb_threshold_form_2K_to_1M.patch Patch9001: locale-delete-no-hard-link-to-avoid-all_language-pac.patch @@ -1273,6 +1274,9 @@ fi %endif %changelog +* Tue Jul 11 2023 jiangyingxin - 2.36-17 +- Optimizing __random for single-threaded scenarios + * Mon Jun 5 2023 li-miaomiao_zhr - 2.36-16 - processing of annotated patch files in spec files -- Gitee From 03209068a61470ad46160b8a5510e7de45ea6cfc Mon Sep 17 00:00:00 2001 From: jiangyingxin Date: Fri, 14 Jul 2023 09:52:06 +0800 Subject: [PATCH 3/4] update glibc.spec --- glibc.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/glibc.spec b/glibc.spec index 57b9f42..f004c4c 100644 --- a/glibc.spec +++ b/glibc.spec @@ -65,7 +65,7 @@ ############################################################################## Name: glibc Version: 2.36 -Release: 17 +Release: 18 Summary: The GNU libc libraries License: %{all_license} URL: http://www.gnu.org/software/glibc/ @@ -1274,9 +1274,12 @@ fi %endif %changelog -* Tue Jul 11 2023 jiangyingxin - 2.36-17 +* Tue Jul 11 2023 jiangyingxin - 2.36-18 - Optimizing __random for single-threaded scenarios +* Tue Jul 11 2023 lijianglin - 2.36-17 +- add the test of the entire GB18030 charmap + * Mon Jun 5 2023 li-miaomiao_zhr - 2.36-16 - processing of annotated patch files in spec files -- Gitee From 275bb32ef502d85d9e05bc991200dda182962f06 Mon Sep 17 00:00:00 2001 From: jiangyingxin Date: Fri, 14 Jul 2023 11:34:38 +0800 Subject: [PATCH 4/4] update glibc.spec --- glibc.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/glibc.spec b/glibc.spec index f004c4c..f3aee52 100644 --- a/glibc.spec +++ b/glibc.spec @@ -96,7 +96,6 @@ Patch9: gmon-Fix-allocated-buffer-overflow-bug-29444.patch Patch10: stdlib-strfrom-Add-copysign-to-fix-NAN-issue-on-risc.patch Patch11: Assume-only-FLAG_ELF_LIBC6-suport.patch Patch12: elf-Restore-ldconfig-libc6-implicit-soname-logic-BZ-.patch -Patch13: 0001-Optimizing-__random-for-single-threaded-scenarios.patch Patch9000: turn-default-value-of-x86_rep_stosb_threshold_form_2K_to_1M.patch Patch9001: locale-delete-no-hard-link-to-avoid-all_language-pac.patch @@ -115,6 +114,7 @@ Patch9013: x86-use-total-l3cache-for-non_temporal_threshold.patch Patch9014: strcmp-delete-align-for-loop_aligned.patch Patch9015: add-pthread_cond_clockwait-GLIBC_2_28.patch Patch9016: add-GB18030-2022-charmap-BZ-30243.patch +Patch9017: 0001-Optimizing-__random-for-single-threaded-scenarios.patch Provides: ldconfig rtld(GNU_HASH) bundled(gnulib) -- Gitee