All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steven Price <steven.price@arm.com>
To: Alyssa Rosenzweig <alyssa@collabora.com>
Cc: tomeu.vizoso@collabora.com, airlied@linux.ie,
	dri-devel@lists.freedesktop.org, alyssa.rosenzweig@collabora.com
Subject: Re: [PATCH 6/9] drm/panfrost: Add "clean only safe" feature bit
Date: Wed, 16 Feb 2022 16:06:39 +0000	[thread overview]
Message-ID: <b6139559-bcd1-76fe-7ebd-7df05fe69b2f@arm.com> (raw)
In-Reply-To: <YgqK0ZjnXVux9d6Y@maud>

On 14/02/2022 17:01, Alyssa Rosenzweig wrote:
>>> Add the HW_FEATURE_CLEAN_ONLY_SAFE bit based on kbase. When I actually
>>> tried to port the logic from kbase, trivial jobs raised Data Invalid
>>> Faults, so this may depend on other coherency details. It's still useful
>>> to have the bit to record the feature bit when adding new models.
>>>
>>> Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
>>
>> Reviewed-by: Steven Price <steven.price@arm.com>
>>
>> Sadly I don't have the hardware to try this out on, but it should be a
>> simple case of the below (untested):
>>
>> ----8<----
>> diff --git a/drivers/gpu/drm/panfrost/panfrost_job.c b/drivers/gpu/drm/panfrost/panfrost_job.c
>> index 908d79520853..602e51c4966e 100644
>> --- a/drivers/gpu/drm/panfrost/panfrost_job.c
>> +++ b/drivers/gpu/drm/panfrost/panfrost_job.c
>> @@ -212,9 +212,13 @@ static void panfrost_job_hw_submit(struct panfrost_job *job, int js)
>>          * start */
>>         cfg |= JS_CONFIG_THREAD_PRI(8) |
>>                 JS_CONFIG_START_FLUSH_CLEAN_INVALIDATE |
>> -               JS_CONFIG_END_FLUSH_CLEAN_INVALIDATE |
>>                 panfrost_get_job_chain_flag(job);
>>  
>> +       if (panfrost_has_hw_feature(pfdev, HW_FEATURE_CLEAN_ONLY_SAFE))
>> +               cfg |= JS_CONFIG_END_FLUSH_CLEAN;
>> +       else
>> +               cfg |= JS_CONFIG_END_FLUSH_CLEAN_INVALIDATE;
>> +
>>         if (panfrost_has_hw_feature(pfdev, HW_FEATURE_FLUSH_REDUCTION))
>>                 cfg |= JS_CONFIG_ENABLE_FLUSH_REDUCTION;
> 
> Yes, this is the patch I typed out... causes DATA_INVALID_FAULTs for me
> with Mesa. Which makes me wonder if userspace needs to respect some
> extra rules for this to be safe.

Odd - the invalidate at the end of the job shouldn't be needed to read
the job descriptors from userspace only the one at the beginning.

However I'm wondering if there's something fishy happening with the
flush reduction. That allows skipping the cache maintenance at the
beginning of a job if there has already been one for other reasons. But
I can't immediately see any difference in the way kbase handles this.

Steve

  reply	other threads:[~2022-02-16 16:06 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-11 20:27 [PATCH 0/9] drm/panfrost: Initial Valhall support alyssa.rosenzweig
2022-02-11 20:27 ` [PATCH 1/9] dt-bindings: Add arm,mali-valhall compatible alyssa.rosenzweig
2022-02-11 20:27   ` alyssa.rosenzweig
2022-02-14 16:23   ` Steven Price
2022-02-14 16:23     ` Steven Price
2022-02-14 16:58     ` Alyssa Rosenzweig
2022-02-14 16:58       ` Alyssa Rosenzweig
2022-02-14 17:38     ` Daniel Stone
2022-02-14 17:38       ` Daniel Stone
2022-02-15 12:17   ` Robin Murphy
2022-02-15 12:17     ` Robin Murphy
2022-02-15 15:22   ` Rob Herring
2022-02-15 15:22     ` Rob Herring
2022-02-11 20:27 ` [PATCH 2/9] drm/panfrost: Handle HW_ISSUE_TTRX_2968_TTRX_3162 alyssa.rosenzweig
2022-02-14 16:23   ` Steven Price
2022-02-11 20:27 ` [PATCH 3/9] drm/panfrost: Constify argument to has_hw_issue alyssa.rosenzweig
2022-02-14 16:23   ` Steven Price
2022-02-11 20:27 ` [PATCH 4/9] drm/panfrost: Handle HW_ISSUE_TTRX_3076 alyssa.rosenzweig
2022-02-14 16:23   ` Steven Price
2022-02-14 17:06     ` Alyssa Rosenzweig
2022-02-16 16:06       ` Steven Price
2022-02-11 20:27 ` [PATCH 5/9] drm/panfrost: Add HW_ISSUE_TTRX_3485 quirk alyssa.rosenzweig
2022-02-14 16:23   ` Steven Price
2022-02-14 17:11     ` Alyssa Rosenzweig
2022-02-11 20:27 ` [PATCH 6/9] drm/panfrost: Add "clean only safe" feature bit alyssa.rosenzweig
2022-02-14 16:23   ` Steven Price
2022-02-14 17:01     ` Alyssa Rosenzweig
2022-02-16 16:06       ` Steven Price [this message]
2022-02-11 20:27 ` [PATCH 7/9] drm/panfrost: Don't set L2_MMU_CONFIG quirks alyssa.rosenzweig
2022-02-14 16:23   ` Steven Price
2022-02-11 20:27 ` [PATCH 8/9] drm/panfrost: Add Mali-G57 "Natt" support alyssa.rosenzweig
2022-02-14 16:23   ` Steven Price
2022-02-14 17:04     ` Alyssa Rosenzweig
2022-02-11 20:27 ` [PATCH 9/9] drm/panfrost: Handle arm,mali-valhall compatible alyssa.rosenzweig
2022-02-14 16:23   ` Steven Price

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b6139559-bcd1-76fe-7ebd-7df05fe69b2f@arm.com \
    --to=steven.price@arm.com \
    --cc=airlied@linux.ie \
    --cc=alyssa.rosenzweig@collabora.com \
    --cc=alyssa@collabora.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=tomeu.vizoso@collabora.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.