All of lore.kernel.org
 help / color / mirror / Atom feed
From: Leo Liu <leo.liu-5C7GfCeVMHo@public.gmane.org>
To: "Xie, AlexBin" <AlexBin.Xie-5C7GfCeVMHo@public.gmane.org>,
	"Christian König"
	<deathsimple-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org>,
	"amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org"
	<amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org>
Subject: Re: [PATCH] drm/amdgpu: Move compute vm bug logic to amdgpu_vm.c
Date: Thu, 1 Jun 2017 09:50:59 -0400	[thread overview]
Message-ID: <532a53b4-e443-e4d1-14ce-77b0fae9c11e@amd.com> (raw)
In-Reply-To: <MWHPR1201MB0045729996FF89B47DCD29A3F2F60-3iK1xFAIwjq45V35fqe+hGrFom/aUZj6nBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org>


[-- Attachment #1.1: Type: text/plain, Size: 8193 bytes --]

When you git email-send first time, there is a message-id, when you 
would send follow up patches, using --in-reply-to="message-id" in your 
comment line, then that will be in the same thread.


Cheers,

Leo



On 06/01/2017 09:40 AM, Xie, AlexBin wrote:
>
> Ok. I will add the v2 next time. I did not add the v2 in case this 
> email list does not put the two patches under same thread...
>
>
> -Alex Bin
>
> ------------------------------------------------------------------------
> *From:* Christian König <deathsimple-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org>
> *Sent:* Thursday, June 1, 2017 9:26 AM
> *To:* Xie, AlexBin; amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
> *Subject:* Re: [PATCH] drm/amdgpu: Move compute vm bug logic to 
> amdgpu_vm.c
> Am 01.06.2017 um 01:08 schrieb Alex Xie:
> >    In review, Christian would like to keep the logic
> >    inside amdgpu_vm.c with a cost of slightly slower.
> >    The loop is still optimized out with this patch.
> >
> > v2: remove the if statement. Now it is not slower.
> >
> > Signed-off-by: Alex Xie <AlexBin.Xie-5C7GfCeVMHo@public.gmane.org>
>
> When you create a v2 of a patch please note that in the subject line as
> well.
>
> Either by using the "-v2" option with "git send-email" or by adding the
> v2 manually on the subject line.
>
> I sometimes get mails twice because they are send to multiple lists I'm
> registered on and that helps allot seeing that a patch changed and is
> not just a duplicated mail.
>
> Anyway this version is Reviewed-by: Christian König
> <christian.koeng-5C7GfCeVMHo@public.gmane.org> as well.
>
> Regards,
> Christian.
>
> > ---
> >   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c |  2 ++
> >   drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c   | 32 
> -------------------------
> >   drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h   |  5 ----
> >   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c     | 38 
> ++++++++++++++++++++++++++++--
> >   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h     |  1 +
> >   5 files changed, 39 insertions(+), 39 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> > index 89bc34a..2f1a4e9 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> > @@ -2227,6 +2227,8 @@ int amdgpu_device_init(struct amdgpu_device *adev,
> >
> >        adev->accel_working = true;
> >
> > +     amdgpu_vm_check_compute_bug(adev);
> > +
> >        /* Initialize the buffer migration limit. */
> >        if (amdgpu_moverate >= 0)
> >                max_MBps = amdgpu_moverate;
> > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
> > index 7d95435..31aa51d 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
> > @@ -153,36 +153,6 @@ void amdgpu_ring_undo(struct amdgpu_ring *ring)
> >   }
> >
> >   /**
> > - * amdgpu_ring_check_compute_vm_bug - check whether this ring has 
> compute vm bug
> > - *
> > - * @adev: amdgpu_device pointer
> > - * @ring: amdgpu_ring structure holding ring information
> > - */
> > -static void amdgpu_ring_check_compute_vm_bug(struct amdgpu_device 
> *adev,
> > -                                     struct amdgpu_ring *ring)
> > -{
> > -     const struct amdgpu_ip_block *ip_block;
> > -
> > -     ring->has_compute_vm_bug = false;
> > -
> > -     if (ring->funcs->type != AMDGPU_RING_TYPE_COMPUTE)
> > -             /* only compute rings */
> > -             return;
> > -
> > -     ip_block = amdgpu_get_ip_block(adev, AMD_IP_BLOCK_TYPE_GFX);
> > -     if (!ip_block)
> > -             return;
> > -
> > -     /* Compute ring has a VM bug for GFX version < 7.
> > -           And compute ring has a VM bug for GFX 8 MEC firmware 
> version < 673.*/
> > -     if (ip_block->version->major <= 7) {
> > -             ring->has_compute_vm_bug = true;
> > -     } else if (ip_block->version->major == 8)
> > -             if (adev->gfx.mec_fw_version < 673)
> > -                     ring->has_compute_vm_bug = true;
> > -}
> > -
> > -/**
> >    * amdgpu_ring_init - init driver ring struct.
> >    *
> >    * @adev: amdgpu_device pointer
> > @@ -288,8 +258,6 @@ int amdgpu_ring_init(struct amdgpu_device *adev, 
> struct amdgpu_ring *ring,
> >                DRM_ERROR("Failed to register debugfs file for rings 
> !\n");
> >        }
> >
> > -     amdgpu_ring_check_compute_vm_bug(adev, ring);
> > -
> >        return 0;
> >   }
> >
> > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h
> > index 334307e..ad399c8 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h
> > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h
> > @@ -208,9 +208,4 @@ static inline void amdgpu_ring_clear_ring(struct 
> amdgpu_ring *ring)
> >
> >   }
> >
> > -static inline bool amdgpu_ring_has_compute_vm_bug(struct 
> amdgpu_ring *ring)
> > -{
> > -     return ring->has_compute_vm_bug;
> > -}
> > -
> >   #endif
> > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> > index d4d05a8..6e32748 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> > @@ -656,6 +656,41 @@ static int amdgpu_vm_alloc_reserved_vmid(struct 
> amdgpu_device *adev,
> >        return r;
> >   }
> >
> > +/**
> > + * amdgpu_vm_check_compute_bug - check whether asic has compute vm bug
> > + *
> > + * @adev: amdgpu_device pointer
> > + */
> > +void amdgpu_vm_check_compute_bug(struct amdgpu_device *adev)
> > +{
> > +     const struct amdgpu_ip_block *ip_block;
> > +     bool has_compute_vm_bug;
> > +     struct amdgpu_ring *ring;
> > +     int i;
> > +
> > +     has_compute_vm_bug = false;
> > +
> > +     ip_block = amdgpu_get_ip_block(adev, AMD_IP_BLOCK_TYPE_GFX);
> > +     if (ip_block) {
> > +             /* Compute has a VM bug for GFX version < 7.
> > +                Compute has a VM bug for GFX 8 MEC firmware version 
> < 673.*/
> > +             if (ip_block->version->major <= 7)
> > +                     has_compute_vm_bug = true;
> > +             else if (ip_block->version->major == 8)
> > +                     if (adev->gfx.mec_fw_version < 673)
> > +                             has_compute_vm_bug = true;
> > +     }
> > +
> > +     for (i = 0; i < adev->num_rings; i++) {
> > +             ring = adev->rings[i];
> > +             if (ring->funcs->type == AMDGPU_RING_TYPE_COMPUTE)
> > +                     /* only compute rings */
> > +                     ring->has_compute_vm_bug = has_compute_vm_bug;
> > +             else
> > +                     ring->has_compute_vm_bug = false;
> > +     }
> > +}
> > +
> >   bool amdgpu_vm_need_pipeline_sync(struct amdgpu_ring *ring,
> >                                  struct amdgpu_job *job)
> >   {
> > @@ -664,8 +699,7 @@ bool amdgpu_vm_need_pipeline_sync(struct 
> amdgpu_ring *ring,
> >        struct amdgpu_vm_id_manager *id_mgr = 
> &adev->vm_manager.id_mgr[vmhub];
> >        struct amdgpu_vm_id *id;
> >        bool gds_switch_needed;
> > -     bool vm_flush_needed = job->vm_needs_flush ||
> > -             amdgpu_ring_has_compute_vm_bug(ring);
> > +     bool vm_flush_needed = job->vm_needs_flush || 
> ring->has_compute_vm_bug;
> >
> >        if (job->vm_id == 0)
> >                return false;
> > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
> > index 8309bc7..f5dba9c 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
> > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
> > @@ -245,5 +245,6 @@ void amdgpu_vm_adjust_size(struct amdgpu_device 
> *adev, uint64_t vm_size);
> >   int amdgpu_vm_ioctl(struct drm_device *dev, void *data, struct 
> drm_file *filp);
> >   bool amdgpu_vm_need_pipeline_sync(struct amdgpu_ring *ring,
> >                                  struct amdgpu_job *job);
> > +void amdgpu_vm_check_compute_bug(struct amdgpu_device *adev);
> >
> >   #endif
>
>
>
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


[-- Attachment #1.2: Type: text/html, Size: 15870 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

  parent reply	other threads:[~2017-06-01 13:50 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-31 23:08 [PATCH] drm/amdgpu: Move compute vm bug logic to amdgpu_vm.c Alex Xie
     [not found] ` <1496272081-21584-1-git-send-email-AlexBin.Xie-5C7GfCeVMHo@public.gmane.org>
2017-06-01 13:17   ` Xie, AlexBin
2017-06-01 13:26   ` Christian König
     [not found]     ` <183887cb-17a0-e457-0c92-c04cc4b7fb53-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org>
2017-06-01 13:40       ` Xie, AlexBin
     [not found]         ` <MWHPR1201MB0045729996FF89B47DCD29A3F2F60-3iK1xFAIwjq45V35fqe+hGrFom/aUZj6nBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org>
2017-06-01 13:50           ` Leo Liu [this message]
  -- strict thread matches above, loose matches on Subject: below --
2017-05-31 18:09 Alex Xie
     [not found] ` <1496254153-12583-1-git-send-email-AlexBin.Xie-5C7GfCeVMHo@public.gmane.org>
2017-06-01  8:07   ` Christian König

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=532a53b4-e443-e4d1-14ce-77b0fae9c11e@amd.com \
    --to=leo.liu-5c7gfcevmho@public.gmane.org \
    --cc=AlexBin.Xie-5C7GfCeVMHo@public.gmane.org \
    --cc=amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
    --cc=deathsimple-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org \
    /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.