[v2] Support auxilliary vector components for cache geometries.

Message ID 0882a490-f124-3312-9d30-6ef379afac7e@us.ibm.com
State Committed
Headers

Commit Message

Paul A. Clarke March 23, 2017, 5:25 p.m. UTC
  Add support to getauxval() for new types to get L1, L2, L3 cache sizes,
cache line sizes, and cache associativities.  The new types for
getauxval() were added in the stream for Linux kernel v4.11 in commit
98a5f361b8625c6f4841d6ba013bbf0e80d08147.

	* elf/elf.h: Add auxvec identifiers from kernel
	arch/powerpc/include/uapi/asm/auxvec.h.
---
v2: removed test case

  elf/elf.h | 12 ++++++++++++
  1 file changed, 12 insertions(+)
  

Comments

Carlos Eduardo Seo March 23, 2017, 9:07 p.m. UTC | #1
On 3/23/17, 2:25 PM, "Paul Clarke" <libc-alpha-owner@sourceware.org on behalf of pc@us.ibm.com> wrote:

    Add support to getauxval() for new types to get L1, L2, L3 cache sizes,
    cache line sizes, and cache associativities.  The new types for
    getauxval() were added in the stream for Linux kernel v4.11 in commit
    98a5f361b8625c6f4841d6ba013bbf0e80d08147.
    

LGTM


--
Carlos Eduardo Seo
Software Engineer - Linux on Power Toolchain
cseo@linux.vnet.ibm.com
  
Paul A. Clarke March 30, 2017, 2:41 p.m. UTC | #2
ping.

On 03/23/2017 12:25 PM, Paul Clarke wrote:
> Add support to getauxval() for new types to get L1, L2, L3 cache sizes,
> cache line sizes, and cache associativities.  The new types for
> getauxval() were added in the stream for Linux kernel v4.11 in commit
> 98a5f361b8625c6f4841d6ba013bbf0e80d08147.
>
> 	* elf/elf.h: Add auxvec identifiers from kernel
> 	arch/powerpc/include/uapi/asm/auxvec.h.
> ---
> v2: removed test case
>
>   elf/elf.h | 12 ++++++++++++
>   1 file changed, 12 insertions(+)
>
> diff --git a/elf/elf.h b/elf/elf.h
> index 6d3b356..fff893d 100644
> --- a/elf/elf.h
> +++ b/elf/elf.h
> @@ -1170,6 +1170,18 @@ typedef struct
>   #define AT_L2_CACHESHAPE	36
>   #define AT_L3_CACHESHAPE	37
>
> +/* Shapes of the caches, with more room to describe them.
> +   *GEOMETRY are comprised of cache line size in bytes in the bottom 16 bits
> +   and the cache associativity in the next 16 bits.  */
> +#define AT_L1I_CACHESIZE	40
> +#define AT_L1I_CACHEGEOMETRY	41
> +#define AT_L1D_CACHESIZE	42
> +#define AT_L1D_CACHEGEOMETRY	43
> +#define AT_L2_CACHESIZE		44
> +#define AT_L2_CACHEGEOMETRY	45
> +#define AT_L3_CACHESIZE		46
> +#define AT_L3_CACHEGEOMETRY	47
> +
>   /* Note section contents.  Each entry in the note section begins with
>      a header of a fixed form.  */
>
>
  
Florian Weimer March 30, 2017, 8:15 p.m. UTC | #3
* Paul Clarke:

> ping.

Carlos already acked this patch.  Do you need someone to commit it?
Do you plan to submit more glibc work in the future?

(But see my earlier comments about your initial test.)
  
Paul A. Clarke March 31, 2017, 3:36 p.m. UTC | #4
On 03/30/2017 03:15 PM, Florian Weimer wrote:
> * Paul Clarke:
>
>> ping.
>
> Carlos already acked this patch.  Do you need someone to commit it?

I can ask Tulio to commit.  Sorry, but I wasn't quite sure what qualifies as "approved for commit".

> Do you plan to submit more glibc work in the future?

Yes.

PC
  
Tulio Magno Quites Machado Filho April 11, 2017, 5:09 p.m. UTC | #5
Paul Clarke <pc@us.ibm.com> writes:

> On 03/30/2017 03:15 PM, Florian Weimer wrote:
>> * Paul Clarke:
>>
>>> ping.
>>
>> Carlos already acked this patch.  Do you need someone to commit it?
>
> I can ask Tulio to commit.  Sorry, but I wasn't quite sure what qualifies as "approved for commit".

I made few changes to ChangeLog entry and pushed it as d031600d.

Thanks!
  

Patch

diff --git a/elf/elf.h b/elf/elf.h
index 6d3b356..fff893d 100644
--- a/elf/elf.h
+++ b/elf/elf.h
@@ -1170,6 +1170,18 @@  typedef struct
  #define AT_L2_CACHESHAPE	36
  #define AT_L3_CACHESHAPE	37
  
+/* Shapes of the caches, with more room to describe them.
+   *GEOMETRY are comprised of cache line size in bytes in the bottom 16 bits
+   and the cache associativity in the next 16 bits.  */
+#define AT_L1I_CACHESIZE	40
+#define AT_L1I_CACHEGEOMETRY	41
+#define AT_L1D_CACHESIZE	42
+#define AT_L1D_CACHEGEOMETRY	43
+#define AT_L2_CACHESIZE		44
+#define AT_L2_CACHEGEOMETRY	45
+#define AT_L3_CACHESIZE		46
+#define AT_L3_CACHEGEOMETRY	47
+
  /* Note section contents.  Each entry in the note section begins with
     a header of a fixed form.  */