All of lore.kernel.org
 help / color / mirror / Atom feed
From: Flora Cui <flora.cui-5C7GfCeVMHo@public.gmane.org>
To: Alex Deucher <alexdeucher-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: amd-gfx list <amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org>
Subject: Re: [PATCH] drm/amdgpu: export gpu always on cu bitmap
Date: Wed, 21 Jun 2017 15:42:08 +0800	[thread overview]
Message-ID: <20170621074206.GA24382@flora> (raw)
In-Reply-To: <CADnq5_PQcrNDSHeJyWr=401vn_EKc6i7+Lk+8jUfWfC1H4_EWA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>

On Tue, Jun 20, 2017 at 10:47:39AM -0400, Alex Deucher wrote:
> On Tue, Jun 20, 2017 at 4:15 AM, Flora Cui <Flora.Cui@amd.com> wrote:
> > Change-Id: I056d8af23340d46e5140bd10cc38dfb887cc78ab
> > Signed-off-by: Flora Cui <Flora.Cui@amd.com>
> > ---
> >  drivers/gpu/drm/amd/amdgpu/amdgpu.h     | 7 +++++--
> >  drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 3 ++-
> >  drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 3 ++-
> >  drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c   | 4 +++-
> >  drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c   | 4 +++-
> >  drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c   | 4 +++-
> >  drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c   | 4 +++-
> >  include/uapi/drm/amdgpu_drm.h           | 2 +-
> >  8 files changed, 22 insertions(+), 9 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> > index 6b7d2a1..6b9a91c 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> > @@ -1029,12 +1029,15 @@ struct amdgpu_gfx_config {
> >  };
> >
> >  struct amdgpu_cu_info {
> > -       uint32_t number; /* total active CU number */
> > -       uint32_t ao_cu_mask;
> >         uint32_t max_waves_per_simd;
> >         uint32_t wave_front_size;
> >         uint32_t max_scratch_slots_per_cu;
> >         uint32_t lds_size;
> > +
> > +       /* total active CU number */
> > +       uint32_t number;
> > +       uint32_t ao_cu_mask;
> > +       uint32_t ao_cu_bitmap[4][4];
> >         uint32_t bitmap[4][4];
> >  };
> >
> > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> > index 0424711..5a1d794 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> > @@ -67,9 +67,10 @@
> >   * - 3.15.0 - Export more gpu info for gfx9
> >   * - 3.16.0 - Add reserved vmid support
> >   * - 3.17.0 - Add AMDGPU_NUM_VRAM_CPU_PAGE_FAULTS.
> > + * - 3.18.0 - Export gpu always on cu bitmap
> >   */
> >  #define KMS_DRIVER_MAJOR       3
> > -#define KMS_DRIVER_MINOR       17
> > +#define KMS_DRIVER_MINOR       18
> >  #define KMS_DRIVER_PATCHLEVEL  0
> >
> >  int amdgpu_vram_limit = 0;
> > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
> > index f68ced6..6ba8204 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
> > @@ -591,8 +591,9 @@ static int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file
> >                 dev_info.gart_page_size = AMDGPU_GPU_PAGE_SIZE;
> >
> >                 dev_info.cu_active_number = adev->gfx.cu_info.number;
> > -               dev_info.cu_ao_mask = adev->gfx.cu_info.ao_cu_mask;
> >                 dev_info.ce_ram_size = adev->gfx.ce_ram_size;
> > +               memcpy(&dev_info.cu_ao_bitmap[0], &adev->gfx.cu_info.ao_cu_bitmap[0],
> > +                      sizeof(adev->gfx.cu_info.ao_cu_bitmap));
> >                 memcpy(&dev_info.cu_bitmap[0], &adev->gfx.cu_info.bitmap[0],
> >                        sizeof(adev->gfx.cu_info.bitmap));
> >                 dev_info.vram_type = adev->mc.vram_type;
> > diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c
> > index 7b0b3cf..5173ca1 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c
> > @@ -3535,7 +3535,9 @@ static void gfx_v6_0_get_cu_info(struct amdgpu_device *adev)
> >                                 mask <<= 1;
> >                         }
> >                         active_cu_number += counter;
> > -                       ao_cu_mask |= (ao_bitmap << (i * 16 + j * 8));
> > +                       if (i < 2 && j < 2)
> > +                               ao_cu_mask |= (ao_bitmap << (i * 16 + j * 8));
> > +                       cu_info->ao_cu_bitmap[i][j] = ao_bitmap;
> >                 }
> >         }
> >
> > diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
> > index fb0a94c..8c4dd7b 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
> > @@ -5427,7 +5427,9 @@ static void gfx_v7_0_get_cu_info(struct amdgpu_device *adev)
> >                                 mask <<= 1;
> >                         }
> >                         active_cu_number += counter;
> > -                       ao_cu_mask |= (ao_bitmap << (i * 16 + j * 8));
> > +                       if (i < 2 && j < 2)
> > +                               ao_cu_mask |= (ao_bitmap << (i * 16 + j * 8));
> > +                       cu_info->ao_cu_bitmap[i][j] = ao_bitmap;
> >                 }
> >         }
> >         gfx_v7_0_select_se_sh(adev, 0xffffffff, 0xffffffff, 0xffffffff);
> > diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
> > index 1a75ab1..9edb509 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
> > @@ -7080,7 +7080,9 @@ static void gfx_v8_0_get_cu_info(struct amdgpu_device *adev)
> >                                 mask <<= 1;
> >                         }
> >                         active_cu_number += counter;
> > -                       ao_cu_mask |= (ao_bitmap << (i * 16 + j * 8));
> > +                       if (i < 2 && j < 2)
> > +                               ao_cu_mask |= (ao_bitmap << (i * 16 + j * 8));
> > +                       cu_info->ao_cu_bitmap[i][j] = ao_bitmap;
> >                 }
> >         }
> >         gfx_v8_0_select_se_sh(adev, 0xffffffff, 0xffffffff, 0xffffffff);
> > diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> > index 5d56126..0d6a6d9 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> > @@ -4459,7 +4459,9 @@ static int gfx_v9_0_get_cu_info(struct amdgpu_device *adev,
> >                                 mask <<= 1;
> >                         }
> >                         active_cu_number += counter;
> > -                       ao_cu_mask |= (ao_bitmap << (i * 16 + j * 8));
> > +                       if (i < 2 && j < 2)
> > +                               ao_cu_mask |= (ao_bitmap << (i * 16 + j * 8));
> > +                       cu_info->ao_cu_bitmap[i][j] = ao_bitmap;
> >                 }
> >         }
> >         gfx_v9_0_select_se_sh(adev, 0xffffffff, 0xffffffff, 0xffffffff);
> > diff --git a/include/uapi/drm/amdgpu_drm.h b/include/uapi/drm/amdgpu_drm.h
> > index 4f34394..4304422 100644
> > --- a/include/uapi/drm/amdgpu_drm.h
> > +++ b/include/uapi/drm/amdgpu_drm.h
> > @@ -760,7 +760,7 @@ struct drm_amdgpu_info_device {
> >         __u64 max_memory_clock;
> >         /* cu information */
> >         __u32 cu_active_number;
> > -       __u32 cu_ao_mask;
> > +       __u32 cu_ao_bitmap[4][4];
> >         __u32 cu_bitmap[4][4];
> >         /** Render backend pipe mask. One render backend is CB+DB. */
> >         __u32 enabled_rb_pipes_mask;
> 
> You need to add these to the end of the structure for backwards compatibility.
> 
OK. How to handle cu_ao_mask? it's invalid, yet kmd has to keep it for backward compatibility.
> Alex
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

  parent reply	other threads:[~2017-06-21  7:42 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-20  8:15 [PATCH] drm/amdgpu: export gpu always on cu bitmap Flora Cui
     [not found] ` <1497946521-21500-1-git-send-email-Flora.Cui-5C7GfCeVMHo@public.gmane.org>
2017-06-20  9:04   ` [PATCH libdrm] amdgpu: update " Flora Cui
     [not found]     ` <1497949479-22146-1-git-send-email-Flora.Cui-5C7GfCeVMHo@public.gmane.org>
2017-06-20  9:49       ` Christian König
     [not found]         ` <75494a7b-0ee1-b8e4-9b5e-a82bfeb0d1bb-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org>
2017-06-20 10:13           ` Daniel Vetter
2017-06-21  2:13           ` Flora Cui
2017-06-21  7:08             ` Daniel Vetter
2017-06-26  6:12       ` [PATCH libdrm] amdgpu: update the exported always on CU bitmap Flora Cui
2017-06-26  6:52         ` Michel Dänzer
     [not found]         ` <1498457550-27605-1-git-send-email-Flora.Cui-5C7GfCeVMHo@public.gmane.org>
2017-06-26  7:15           ` Christian König
2017-06-20 14:47   ` [PATCH] drm/amdgpu: export gpu always on cu bitmap Alex Deucher
     [not found]     ` <CADnq5_PQcrNDSHeJyWr=401vn_EKc6i7+Lk+8jUfWfC1H4_EWA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-06-21  7:42       ` Flora Cui [this message]
2017-06-21  8:32         ` Christian König
2017-06-21 15:36         ` Deucher, Alexander
2017-06-22  3:13   ` [PATCH v2] " Flora Cui
     [not found]     ` <1498101191-19634-1-git-send-email-Flora.Cui-5C7GfCeVMHo@public.gmane.org>
2017-06-22  7:37       ` Christian König
2017-06-22 12:33       ` Deucher, Alexander

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=20170621074206.GA24382@flora \
    --to=flora.cui-5c7gfcevmho@public.gmane.org \
    --cc=alexdeucher-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@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.