[v2] NEWS: Add entry for x86-64 ISA level build

Message ID 20220727121023.2146666-1-goldstein.w.n@gmail.com
State Dropped
Headers
Series [v2] NEWS: Add entry for x86-64 ISA level build |

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

Noah Goldstein July 27, 2022, 12:10 p.m. UTC
  ---
 NEWS | 4 ++++
 1 file changed, 4 insertions(+)
  

Comments

Adhemerval Zanella July 27, 2022, 1:48 p.m. UTC | #1
On 27/07/22 09:10, Noah Goldstein via Libc-alpha wrote:
> ---
>  NEWS | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/NEWS b/NEWS
> index 5827b206d9..968187b3e8 100644
> --- a/NEWS
> +++ b/NEWS
> @@ -72,6 +72,10 @@ Major new features:
>  
>    The LoongArch ABI is 64-bit little-endian.
>  
> +* Support building x86-64 with multiple ISA levels has been added.
> +  Higher ISA levels will use better optimized functions in the dynamic
> +  loader and non-multiarch build as well as reduce the size of libc.so.
> +
>  Deprecated and removed features, and other changes affecting compatibility:
>  
>  * Support for prelink will be removed in the next release; this includes

LGTM, thanks.

It is ok for 2.36.
  
Joseph Myers July 27, 2022, 4:11 p.m. UTC | #2
On Wed, 27 Jul 2022, Noah Goldstein via Libc-alpha wrote:

> +* Support building x86-64 with multiple ISA levels has been added.
> +  Higher ISA levels will use better optimized functions in the dynamic
> +  loader and non-multiarch build as well as reduce the size of libc.so.

I don't think "with multiple ISA levels" is very meaningful to users.  
How is "with multiple ISA levels" different from the multi-arch feature 
that's been present for many years - I think it could easily be read as a 
description of that longstanding existing feature?  You need a description 
that makes clear to users who aren't following glibc development what the 
actual new feature is (i.e. that if you build with a compiler that 
defaults to a newer ISA level such as -march=x86-64-v2, the resulting libc 
will use corresponding optimized implementations and omit the versions 
only relevant on older processors, if I'm understanding the feature 
correctly).
  
Noah Goldstein July 27, 2022, 4:22 p.m. UTC | #3
On Thu, Jul 28, 2022 at 12:12 AM Joseph Myers <joseph@codesourcery.com> wrote:
>
> On Wed, 27 Jul 2022, Noah Goldstein via Libc-alpha wrote:
>
> > +* Support building x86-64 with multiple ISA levels has been added.
> > +  Higher ISA levels will use better optimized functions in the dynamic
> > +  loader and non-multiarch build as well as reduce the size of libc.so.
>
> I don't think "with multiple ISA levels" is very meaningful to users.
> How is "with multiple ISA levels" different from the multi-arch feature
> that's been present for many years - I think it could easily be read as a
> description of that longstanding existing feature?  You need a description
> that makes clear to users who aren't following glibc development what the
> actual new feature is (i.e. that if you build with a compiler that
> defaults to a newer ISA level such as -march=x86-64-v2, the resulting libc
> will use corresponding optimized implementations and omit the versions
> only relevant on older processors, if I'm understanding the feature
> correctly).

That's fair.

Not really sure this needs a NEWS entry at the end of the day. It's not really
directly visible. The only meaningful change is that there won't be any
legacy sse code so potentially (with great care) a user could entirely
omit `vzeroupper`.

Adhemerval do you think this needs an entry or is it too behind the scenes?

>
> --
> Joseph S. Myers
> joseph@codesourcery.com
  
Adhemerval Zanella July 27, 2022, 4:44 p.m. UTC | #4
On 27/07/22 13:22, Noah Goldstein via Libc-alpha wrote:
> On Thu, Jul 28, 2022 at 12:12 AM Joseph Myers <joseph@codesourcery.com> wrote:
>>
>> On Wed, 27 Jul 2022, Noah Goldstein via Libc-alpha wrote:
>>
>>> +* Support building x86-64 with multiple ISA levels has been added.
>>> +  Higher ISA levels will use better optimized functions in the dynamic
>>> +  loader and non-multiarch build as well as reduce the size of libc.so.
>>
>> I don't think "with multiple ISA levels" is very meaningful to users.
>> How is "with multiple ISA levels" different from the multi-arch feature
>> that's been present for many years - I think it could easily be read as a
>> description of that longstanding existing feature?  You need a description
>> that makes clear to users who aren't following glibc development what the
>> actual new feature is (i.e. that if you build with a compiler that
>> defaults to a newer ISA level such as -march=x86-64-v2, the resulting libc
>> will use corresponding optimized implementations and omit the versions
>> only relevant on older processors, if I'm understanding the feature
>> correctly).
> 
> That's fair.
> 
> Not really sure this needs a NEWS entry at the end of the day. It's not really
> directly visible. The only meaningful change is that there won't be any
> legacy sse code so potentially (with great care) a user could entirely
> omit `vzeroupper`.
> 
> Adhemerval do you think this needs an entry or is it too behind the scenes?

I had the impression that reorganization would allow an user visible
optimization (due the code ifunc selection change), but in the end
I agree that is should be transparent to users.  I don't have a strong
opinion here, maybe it is would be better to omit.
  

Patch

diff --git a/NEWS b/NEWS
index 5827b206d9..968187b3e8 100644
--- a/NEWS
+++ b/NEWS
@@ -72,6 +72,10 @@  Major new features:
 
   The LoongArch ABI is 64-bit little-endian.
 
+* Support building x86-64 with multiple ISA levels has been added.
+  Higher ISA levels will use better optimized functions in the dynamic
+  loader and non-multiarch build as well as reduce the size of libc.so.
+
 Deprecated and removed features, and other changes affecting compatibility:
 
 * Support for prelink will be removed in the next release; this includes