lkml.org 
[lkml]   [2018]   [Sep]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH v2 2/2] ACPI/PPTT: Handle architecturally unknown cache types
    From
    Date


    On 14/09/18 17:28, Jeffrey Hugo wrote:
    > The type of a cache might not be specified by architectural mechanisms (ie
    > system registers), but its type might be specified in the PPTT. In this
    > case, we should populate the type of the cache, rather than leave it
    > undefined.
    >
    > This fixes the issue where the cacheinfo driver will not populate sysfs
    > for such caches, resulting in the information missing from utilities like
    > lstopo and lscpu, thus degrading the user experience.
    >
    > Fixes: 2bd00bcd73e5 (ACPI/PPTT: Add Processor Properties Topology Table parsing)
    > Reported-by: Vijaya Kumar K <vkilari@codeaurora.org>
    > Signed-off-by: Jeffrey Hugo <jhugo@codeaurora.org>
    > ---
    > drivers/acpi/pptt.c | 15 +++++++++++----
    > 1 file changed, 11 insertions(+), 4 deletions(-)
    >
    > diff --git a/drivers/acpi/pptt.c b/drivers/acpi/pptt.c
    > index d1e26cb..bb00ed9 100644
    > --- a/drivers/acpi/pptt.c
    > +++ b/drivers/acpi/pptt.c
    > @@ -402,11 +402,18 @@ static void update_cache_properties(struct cacheinfo *this_leaf,
    > }
    > }
    > /*
    > - * If the above flags are valid, and the cache type is NOCACHE
    > - * update the cache type as well.
    > + * If cache type is NOCACHE, then the cache hasn't been specified
    > + * via other mechanisms. Update the type if either the cache has
    > + * been fully specified in PPTT, or a cache type has been provided.
    > + *
    > + * Note, we assume such caches are unified based on conventional system
    > + * design and known examples. Significant work is required elsewhere to
    > + * fully support data/instruction only type caches which are only
    > + * specified in PPTT.
    > */
    > - if (this_leaf->type == CACHE_TYPE_NOCACHE &&
    > - valid_flags == PPTT_CHECKED_ATTRIBUTES)
    > + if ((this_leaf->type == CACHE_TYPE_NOCACHE) &&
    > + (valid_flags == PPTT_CHECKED_ATTRIBUTES ||
    > + found_cache->flags & ACPI_PPTT_CACHE_TYPE_VALID))
    > this_leaf->type = CACHE_TYPE_UNIFIED;

    I thought I did mention that we can drop the valid_flags altogether
    unless Jeremy has reasons not to.

    --
    Regards,
    Sudeep

    \
     
     \ /
      Last update: 2018-09-17 18:18    [W:2.901 / U:0.084 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site