On Mon, Mar 15, 2021 at 01:22:09PM +0530, Athira Rajeev wrote:

SNIP

> +
> +static char *setup_dynamic_sort_keys(char *str)
> +{
> +     unsigned int j;
> +
> +     if (sort__mode == SORT_MODE__MEMORY)
> +             for (j = 0; j < ARRAY_SIZE(dynamic_sort_keys_mem); j++)
> +                     if (arch_support_dynamic_key(dynamic_sort_keys_mem[j])) 
> {
> +                             str = 
> suffix_if_not_in(dynamic_sort_keys_mem[j], str);
> +                             if (str == NULL)
> +                                     return str;
> +                     }
> +
> +     return str;
> +}
> +
>  static int __setup_sorting(struct evlist *evlist)
>  {
>       char *str;
> @@ -3050,6 +3085,12 @@ static int __setup_sorting(struct evlist *evlist)
>               }
>       }
>  
> +     str = setup_dynamic_sort_keys(str);
> +     if (str == NULL) {
> +             pr_err("Not enough memory to setup dynamic sort keys");
> +             return -ENOMEM;
> +     }

hum, so this is basicaly overloading the default_mem_sort_order for
architecture, right?

then I think it'd be easier just overload default_mem_sort_order directly

I was thinking more about adding extra (arch specific) loop to
sort_dimension__add or somehow add arch's specific stuff to
memory_sort_dimensions

jirka

Reply via email to