[v2] Skip mcount overflow and tunables tests on "--disable-tunables"

Message ID 20230321183350.2499793-1-bmahi496@linux.ibm.com
State Not applicable
Headers
Series [v2] Skip mcount overflow and tunables tests on "--disable-tunables" |

Checks

Context Check Description
dj/TryBot-apply_patch success Patch applied to master at the time it was sent
dj/TryBot-32bit success Build for i686

Commit Message

MAHESH BODAPATI March 21, 2023, 6:33 p.m. UTC
  From: Mahesh Bodapati <mahesh.bodapati@ibm.com>

Add a have_tunables check on the new tests added in recent commit
- "gmon: improve mcount overflow handling [BZ# 27576]"
commit ID  31be941e4367c001b2009308839db5c67bf9dcbc
---
 config.make.in |  1 +
 gmon/Makefile  | 10 +++++++++-
 2 files changed, 10 insertions(+), 1 deletion(-)
  

Comments

DJ Delorie March 21, 2023, 9:48 p.m. UTC | #1
MAHESH BODAPATI <bmahi496@linux.ibm.com> writes:
> +have-tunables = @have_tunables@

config.make.in already has one of these.

The rest looks OK, but did you test it with tunables disabled vs enabled?

> diff --git a/gmon/Makefile b/gmon/Makefile
> index 213622a7ad..934a2b230d 100644
> --- a/gmon/Makefile
> +++ b/gmon/Makefile
> @@ -26,7 +26,11 @@ include ../Makeconfig
>  headers	:= sys/gmon.h sys/gmon_out.h sys/profil.h
>  routines := gmon mcount profil sprofil prof-freq
>  
> -tests	= tst-sprofil tst-gmon tst-mcount-overflow tst-mcleanup
> +tests	= tst-sprofil tst-gmon tst-mcleanup
> +ifeq ($(have-tunables),yes)
> +tests   += tst-mcount-overflow
> +endif
> +
>  ifeq ($(build-profile),yes)
>  tests	+= tst-profile-static
>  tests-static	+= tst-profile-static
> @@ -57,6 +61,7 @@ ifeq ($(run-built-tests),yes)
>  tests-special += $(objpfx)tst-gmon-gprof.out
>  endif
>  
> +ifeq ($(have-tunables),yes)
>  CFLAGS-tst-mcount-overflow.c := -fno-omit-frame-pointer -pg
>  tst-mcount-overflow-no-pie = yes
>  CRT-tst-mcount-overflow := $(csu-objpfx)g$(start-installed-name)
> @@ -68,6 +73,7 @@ tst-mcount-overflow-ARGS := 2>&1 1>/dev/null | cat
>  ifeq ($(run-built-tests),yes)
>  tests-special += $(objpfx)tst-mcount-overflow-check.out
>  endif
> +endif
>  
>  CFLAGS-tst-mcleanup.c := -fno-omit-frame-pointer -pg
>  tst-mcleanup-no-pie = yes
> @@ -124,6 +130,7 @@ $(objpfx)tst-gmon.out: clean-tst-gmon-data
>  clean-tst-gmon-data:
>  	rm -f $(objpfx)tst-gmon.data.*
>  
> +ifeq ($(have-tunables),yes)
>  $(objpfx)tst-mcount-overflow.o: clean-tst-mcount-overflow-data
>  clean-tst-mcount-overflow-data:
>  	rm -f $(objpfx)tst-mcount-overflow.data.*
> @@ -131,6 +138,7 @@ clean-tst-mcount-overflow-data:
>  $(objpfx)tst-mcount-overflow-check.out: tst-mcount-overflow-check.sh $(objpfx)tst-mcount-overflow.out
>  	$(SHELL) $< $(objpfx)tst-mcount-overflow > $@; \
>  	$(evaluate-test)
> +endif
>  
>  $(objpfx)tst-mcleanup.out: clean-tst-mcleanup-data
>  clean-tst-mcleanup-data:
  
Siddhesh Poyarekar March 22, 2023, 11:29 a.m. UTC | #2
On 2023-03-21 14:33, MAHESH BODAPATI via Libc-alpha wrote:
> From: Mahesh Bodapati <mahesh.bodapati@ibm.com>
> 
> Add a have_tunables check on the new tests added in recent commit
> - "gmon: improve mcount overflow handling [BZ# 27576]"
> commit ID  31be941e4367c001b2009308839db5c67bf9dcbc

Orthogonal question since you posted this patch to fix a 
--disable-tunables build: are you actually using this configuration or 
is it just part of your testing matrix?  We are considering removing the 
ability to disable tunables[1] so if the option is important to you, you 
should chime in there.

Thanks,
Sid

[1] https://sourceware.org/pipermail/libc-alpha/2023-March/146320.html
  
Rajalakshmi Srinivasaraghavan March 22, 2023, 12:56 p.m. UTC | #3
On 3/22/23 6:29 AM, Siddhesh Poyarekar wrote:
> On 2023-03-21 14:33, MAHESH BODAPATI via Libc-alpha wrote:
>> From: Mahesh Bodapati <mahesh.bodapati@ibm.com>
>>
>> Add a have_tunables check on the new tests added in recent commit
>> - "gmon: improve mcount overflow handling [BZ# 27576]"
>> commit ID  31be941e4367c001b2009308839db5c67bf9dcbc
>
> Orthogonal question since you posted this patch to fix a 
> --disable-tunables build: are you actually using this configuration or 
> is it just part of your testing matrix?  We are considering removing 
> the ability to disable tunables[1] so if the option is important to 
> you, you should chime in there.

Mahesh submitted this patch a few days before Adhemerval submitted the 
patch removing the ability to disable tunables.  We have a power CI 
which tests disable-tunable option and that was the reason for fixing 
this. If we are going to remove that ability, I am fine with discarding 
this patch.

>
> Thanks,
> Sid
>
> [1] https://sourceware.org/pipermail/libc-alpha/2023-March/146320.html
  
Siddhesh Poyarekar March 22, 2023, 2:29 p.m. UTC | #4
On 2023-03-22 08:56, Rajalakshmi Srinivasaraghavan wrote:
> Mahesh submitted this patch a few days before Adhemerval submitted the 
> patch removing the ability to disable tunables.  We have a power CI 
> which tests disable-tunable option and that was the reason for fixing 
> this. If we are going to remove that ability, I am fine with discarding 
> this patch.
> 

OK that's great then, thanks for confirming.

Sid
  
MAHESH BODAPATI March 23, 2023, 6:04 a.m. UTC | #5
On 22/03/23 3:18 am, DJ Delorie wrote:
> MAHESH BODAPATI <bmahi496@linux.ibm.com> writes:
>> +have-tunables = @have_tunables@
> config.make.in already has one of these.
>
> The rest looks OK, but did you test it with tunables disabled vs enabled?

Yes,I tested the glibc with tunables enabled vs disabled.have_tunables 
can't be used in gmon/Makefile so have-tunables variable has been set in 
config.make.in

>
>> diff --git a/gmon/Makefile b/gmon/Makefile
>> index 213622a7ad..934a2b230d 100644
>> --- a/gmon/Makefile
>> +++ b/gmon/Makefile
>> @@ -26,7 +26,11 @@ include ../Makeconfig
>>   headers	:= sys/gmon.h sys/gmon_out.h sys/profil.h
>>   routines := gmon mcount profil sprofil prof-freq
>>   
>> -tests	= tst-sprofil tst-gmon tst-mcount-overflow tst-mcleanup
>> +tests	= tst-sprofil tst-gmon tst-mcleanup
>> +ifeq ($(have-tunables),yes)
>> +tests   += tst-mcount-overflow
>> +endif
>> +
>>   ifeq ($(build-profile),yes)
>>   tests	+= tst-profile-static
>>   tests-static	+= tst-profile-static
>> @@ -57,6 +61,7 @@ ifeq ($(run-built-tests),yes)
>>   tests-special += $(objpfx)tst-gmon-gprof.out
>>   endif
>>   
>> +ifeq ($(have-tunables),yes)
>>   CFLAGS-tst-mcount-overflow.c := -fno-omit-frame-pointer -pg
>>   tst-mcount-overflow-no-pie = yes
>>   CRT-tst-mcount-overflow := $(csu-objpfx)g$(start-installed-name)
>> @@ -68,6 +73,7 @@ tst-mcount-overflow-ARGS := 2>&1 1>/dev/null | cat
>>   ifeq ($(run-built-tests),yes)
>>   tests-special += $(objpfx)tst-mcount-overflow-check.out
>>   endif
>> +endif
>>   
>>   CFLAGS-tst-mcleanup.c := -fno-omit-frame-pointer -pg
>>   tst-mcleanup-no-pie = yes
>> @@ -124,6 +130,7 @@ $(objpfx)tst-gmon.out: clean-tst-gmon-data
>>   clean-tst-gmon-data:
>>   	rm -f $(objpfx)tst-gmon.data.*
>>   
>> +ifeq ($(have-tunables),yes)
>>   $(objpfx)tst-mcount-overflow.o: clean-tst-mcount-overflow-data
>>   clean-tst-mcount-overflow-data:
>>   	rm -f $(objpfx)tst-mcount-overflow.data.*
>> @@ -131,6 +138,7 @@ clean-tst-mcount-overflow-data:
>>   $(objpfx)tst-mcount-overflow-check.out: tst-mcount-overflow-check.sh $(objpfx)tst-mcount-overflow.out
>>   	$(SHELL) $< $(objpfx)tst-mcount-overflow > $@; \
>>   	$(evaluate-test)
>> +endif
>>   
>>   $(objpfx)tst-mcleanup.out: clean-tst-mcleanup-data
>>   clean-tst-mcleanup-data:
  
MAHESH BODAPATI March 23, 2023, 6:20 a.m. UTC | #6
On 22/03/23 4:59 pm, Siddhesh Poyarekar wrote:
> On 2023-03-21 14:33, MAHESH BODAPATI via Libc-alpha wrote:
>> From: Mahesh Bodapati <mahesh.bodapati@ibm.com>
>>
>> Add a have_tunables check on the new tests added in recent commit
>> - "gmon: improve mcount overflow handling [BZ# 27576]"
>> commit ID  31be941e4367c001b2009308839db5c67bf9dcbc
>
> Orthogonal question since you posted this patch to fix a 
> --disable-tunables build: are you actually using this configuration or 
> is it just part of your testing matrix?  We are considering removing 
> the ability to disable tunables[1] so if the option is important to 
> you, you should chime in there.

Thanks Sid.It is part of our testing matrix.enable tunables is the 
default configure option now but we can disable tunable with configure 
option '--disable-tunables' .I understand that It will be removed and 
won't we have any configure option for disabling tunables?

Thanks,

Mahesh B

>
> Thanks,
> Sid
>
> [1] https://sourceware.org/pipermail/libc-alpha/2023-March/146320.html
  
Siddhesh Poyarekar March 23, 2023, 12:19 p.m. UTC | #7
On 2023-03-23 02:20, MAHESH BODAPATI wrote:
> Thanks Sid.It is part of our testing matrix.enable tunables is the 
> default configure option now but we can disable tunable with configure 
> option '--disable-tunables' .I understand that It will be removed and 
> won't we have any configure option for disabling tunables?

Yes, I'm working with Adhemerval to get his patch to drop the 
--disable-tunables into mainline.

Thanks,
Sid
  

Patch

diff --git a/config.make.in b/config.make.in
index d7c416cbea..ab2b7649f1 100644
--- a/config.make.in
+++ b/config.make.in
@@ -65,6 +65,7 @@  have-ssp = @libc_cv_ssp@
 stack-protector = @stack_protector@
 no-stack-protector = @no_stack_protector@
 have-selinux = @have_selinux@
+have-tunables = @have_tunables@
 have-libaudit = @have_libaudit@
 have-libcap = @have_libcap@
 have-cc-with-libunwind = @libc_cv_cc_with_libunwind@
diff --git a/gmon/Makefile b/gmon/Makefile
index 213622a7ad..934a2b230d 100644
--- a/gmon/Makefile
+++ b/gmon/Makefile
@@ -26,7 +26,11 @@  include ../Makeconfig
 headers	:= sys/gmon.h sys/gmon_out.h sys/profil.h
 routines := gmon mcount profil sprofil prof-freq
 
-tests	= tst-sprofil tst-gmon tst-mcount-overflow tst-mcleanup
+tests	= tst-sprofil tst-gmon tst-mcleanup
+ifeq ($(have-tunables),yes)
+tests   += tst-mcount-overflow
+endif
+
 ifeq ($(build-profile),yes)
 tests	+= tst-profile-static
 tests-static	+= tst-profile-static
@@ -57,6 +61,7 @@  ifeq ($(run-built-tests),yes)
 tests-special += $(objpfx)tst-gmon-gprof.out
 endif
 
+ifeq ($(have-tunables),yes)
 CFLAGS-tst-mcount-overflow.c := -fno-omit-frame-pointer -pg
 tst-mcount-overflow-no-pie = yes
 CRT-tst-mcount-overflow := $(csu-objpfx)g$(start-installed-name)
@@ -68,6 +73,7 @@  tst-mcount-overflow-ARGS := 2>&1 1>/dev/null | cat
 ifeq ($(run-built-tests),yes)
 tests-special += $(objpfx)tst-mcount-overflow-check.out
 endif
+endif
 
 CFLAGS-tst-mcleanup.c := -fno-omit-frame-pointer -pg
 tst-mcleanup-no-pie = yes
@@ -124,6 +130,7 @@  $(objpfx)tst-gmon.out: clean-tst-gmon-data
 clean-tst-gmon-data:
 	rm -f $(objpfx)tst-gmon.data.*
 
+ifeq ($(have-tunables),yes)
 $(objpfx)tst-mcount-overflow.o: clean-tst-mcount-overflow-data
 clean-tst-mcount-overflow-data:
 	rm -f $(objpfx)tst-mcount-overflow.data.*
@@ -131,6 +138,7 @@  clean-tst-mcount-overflow-data:
 $(objpfx)tst-mcount-overflow-check.out: tst-mcount-overflow-check.sh $(objpfx)tst-mcount-overflow.out
 	$(SHELL) $< $(objpfx)tst-mcount-overflow > $@; \
 	$(evaluate-test)
+endif
 
 $(objpfx)tst-mcleanup.out: clean-tst-mcleanup-data
 clean-tst-mcleanup-data: