[PATCH libdrm] amdgpu: update always on cu bitmap

Daniel Vetter daniel at ffwll.ch
Wed Jun 21 07:08:13 UTC 2017


On Wed, Jun 21, 2017 at 10:13:54AM +0800, Flora Cui wrote:
> each SE take 16 bit in cu_ao_mask. For ASICs with 4 SE, cu_ao_mask
> has invalid value. so I change cu_ao_mask to cu_ao_bitmap[4][4] and increase
> kmd driver version.

Please read Documentation/ioctl/botching-up-ioctls.txt

You cannot change ioctl structures like you're proposing here.

Thanks, Daniel
> 
> On Tue, Jun 20, 2017 at 11:49:23AM +0200, Christian König wrote:
> > I'm not 100% sure what this is all about, but it clearly won't work like
> > this.
> > 
> > >diff --git a/include/drm/amdgpu_drm.h b/include/drm/amdgpu_drm.h
> > >index df250de..dcbe22c 100644
> > >--- a/include/drm/amdgpu_drm.h
> > >+++ b/include/drm/amdgpu_drm.h
> > >@@ -832,7 +832,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;
> > That is a non-backward compatible change to the kernel interface and as such
> > forbidden.
> > 
> > Regards,
> > Christian.
> > 
> > Am 20.06.2017 um 11:04 schrieb Flora Cui:
> > >Change-Id: Ie2a812716a6802f7a5a0bc09b1a8db824c5bf2ed
> > >Signed-off-by: Flora Cui <Flora.Cui at amd.com>
> > >---
> > >  amdgpu/amdgpu.h          | 2 +-
> > >  amdgpu/amdgpu_gpu_info.c | 2 +-
> > >  include/drm/amdgpu_drm.h | 2 +-
> > >  3 files changed, 3 insertions(+), 3 deletions(-)
> > >
> > >diff --git a/amdgpu/amdgpu.h b/amdgpu/amdgpu.h
> > >index b6779f9..34ca5f1 100644
> > >--- a/amdgpu/amdgpu.h
> > >+++ b/amdgpu/amdgpu.h
> > >@@ -486,7 +486,7 @@ struct amdgpu_gpu_info {
> > >  	uint32_t pa_sc_raster_cfg1[4];
> > >  	/* CU info */
> > >  	uint32_t cu_active_number;
> > >-	uint32_t cu_ao_mask;
> > >+	uint32_t cu_ao_bitmap[4][4];
> > >  	uint32_t cu_bitmap[4][4];
> > >  	/* video memory type info*/
> > >  	uint32_t vram_type;
> > >diff --git a/amdgpu/amdgpu_gpu_info.c b/amdgpu/amdgpu_gpu_info.c
> > >index 34f77be..acfd700 100644
> > >--- a/amdgpu/amdgpu_gpu_info.c
> > >+++ b/amdgpu/amdgpu_gpu_info.c
> > >@@ -229,7 +229,7 @@ drm_private int amdgpu_query_gpu_info_init(amdgpu_device_handle dev)
> > >  	}
> > >  	dev->info.cu_active_number = dev->dev_info.cu_active_number;
> > >-	dev->info.cu_ao_mask = dev->dev_info.cu_ao_mask;
> > >+	memcpy(&dev->info.cu_ao_bitmap[0][0], &dev->dev_info.cu_ao_bitmap[0][0], sizeof(dev->info.cu_ao_bitmap));
> > >  	memcpy(&dev->info.cu_bitmap[0][0], &dev->dev_info.cu_bitmap[0][0], sizeof(dev->info.cu_bitmap));
> > >  	/* TODO: info->max_quad_shader_pipes is not set */
> > >diff --git a/include/drm/amdgpu_drm.h b/include/drm/amdgpu_drm.h
> > >index df250de..dcbe22c 100644
> > >--- a/include/drm/amdgpu_drm.h
> > >+++ b/include/drm/amdgpu_drm.h
> > >@@ -832,7 +832,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;
> > 
> > 
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


More information about the amd-gfx mailing list