There is DEVICE_ATTR mechanism in separate attribute define. So this change is to use attr array, also use sysfs_create_files in init function & sysfs_remove_files in fini function. This maybe make the code a bit readable.
Signed-off-by: Bernard Zhao bernard@vivo.com
Changes since V1: *Use DEVICE_ATTR mechanism
Link for V1: *https://lore.kernel.org/patchwork/patch/1228076/ --- drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c | 43 ++++++-------------- 1 file changed, 13 insertions(+), 30 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c index 82a3299e53c0..57bbc70662ff 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c @@ -148,6 +148,15 @@ static DEVICE_ATTR(mem_info_vis_vram_used, S_IRUGO, static DEVICE_ATTR(mem_info_vram_vendor, S_IRUGO, amdgpu_mem_info_vram_vendor, NULL);
+static struct attribute *amdgpu_vram_mgr_attributes[] = { + &dev_attr_mem_info_vram_total.attr, + &dev_attr_mem_info_vis_vram_total.attr, + &dev_attr_mem_info_vram_used.attr, + &dev_attr_mem_info_vis_vram_used.attr, + &dev_attr_mem_info_vram_vendor.attr, + NULL +}; + /** * amdgpu_vram_mgr_init - init VRAM manager and DRM MM * @@ -172,31 +181,9 @@ static int amdgpu_vram_mgr_init(struct ttm_mem_type_manager *man, man->priv = mgr;
/* Add the two VRAM-related sysfs files */ - ret = device_create_file(adev->dev, &dev_attr_mem_info_vram_total); - if (ret) { - DRM_ERROR("Failed to create device file mem_info_vram_total\n"); - return ret; - } - ret = device_create_file(adev->dev, &dev_attr_mem_info_vis_vram_total); - if (ret) { - DRM_ERROR("Failed to create device file mem_info_vis_vram_total\n"); - return ret; - } - ret = device_create_file(adev->dev, &dev_attr_mem_info_vram_used); - if (ret) { - DRM_ERROR("Failed to create device file mem_info_vram_used\n"); - return ret; - } - ret = device_create_file(adev->dev, &dev_attr_mem_info_vis_vram_used); - if (ret) { - DRM_ERROR("Failed to create device file mem_info_vis_vram_used\n"); - return ret; - } - ret = device_create_file(adev->dev, &dev_attr_mem_info_vram_vendor); - if (ret) { - DRM_ERROR("Failed to create device file mem_info_vram_vendor\n"); - return ret; - } + ret = sysfs_create_files(&adev->dev->kobj, amdgpu_vram_mgr_attributes); + if (ret) + DRM_ERROR("Failed to register sysfs\n");
return 0; } @@ -219,11 +206,7 @@ static int amdgpu_vram_mgr_fini(struct ttm_mem_type_manager *man) spin_unlock(&mgr->lock); kfree(mgr); man->priv = NULL; - device_remove_file(adev->dev, &dev_attr_mem_info_vram_total); - device_remove_file(adev->dev, &dev_attr_mem_info_vis_vram_total); - device_remove_file(adev->dev, &dev_attr_mem_info_vram_used); - device_remove_file(adev->dev, &dev_attr_mem_info_vis_vram_used); - device_remove_file(adev->dev, &dev_attr_mem_info_vram_vendor); + sysfs_remove_files(&adev->dev->kobj, amdgpu_vram_mgr_attributes); return 0; }
Am 07.05.20 um 11:13 schrieb Bernard Zhao:
There is DEVICE_ATTR mechanism in separate attribute define. So this change is to use attr array, also use sysfs_create_files in init function & sysfs_remove_files in fini function. This maybe make the code a bit readable.
Signed-off-by: Bernard Zhao bernard@vivo.com
Reviewed-by: Christian König christian.koenig@amd.com
Changes since V1: *Use DEVICE_ATTR mechanism
Link for V1:
*https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flore.kerne...
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c | 43 ++++++-------------- 1 file changed, 13 insertions(+), 30 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c index 82a3299e53c0..57bbc70662ff 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c @@ -148,6 +148,15 @@ static DEVICE_ATTR(mem_info_vis_vram_used, S_IRUGO, static DEVICE_ATTR(mem_info_vram_vendor, S_IRUGO, amdgpu_mem_info_vram_vendor, NULL);
+static struct attribute *amdgpu_vram_mgr_attributes[] = {
- &dev_attr_mem_info_vram_total.attr,
- &dev_attr_mem_info_vis_vram_total.attr,
- &dev_attr_mem_info_vram_used.attr,
- &dev_attr_mem_info_vis_vram_used.attr,
- &dev_attr_mem_info_vram_vendor.attr,
- NULL
+};
- /**
- amdgpu_vram_mgr_init - init VRAM manager and DRM MM
@@ -172,31 +181,9 @@ static int amdgpu_vram_mgr_init(struct ttm_mem_type_manager *man, man->priv = mgr;
/* Add the two VRAM-related sysfs files */
- ret = device_create_file(adev->dev, &dev_attr_mem_info_vram_total);
- if (ret) {
DRM_ERROR("Failed to create device file mem_info_vram_total\n");
return ret;
- }
- ret = device_create_file(adev->dev, &dev_attr_mem_info_vis_vram_total);
- if (ret) {
DRM_ERROR("Failed to create device file mem_info_vis_vram_total\n");
return ret;
- }
- ret = device_create_file(adev->dev, &dev_attr_mem_info_vram_used);
- if (ret) {
DRM_ERROR("Failed to create device file mem_info_vram_used\n");
return ret;
- }
- ret = device_create_file(adev->dev, &dev_attr_mem_info_vis_vram_used);
- if (ret) {
DRM_ERROR("Failed to create device file mem_info_vis_vram_used\n");
return ret;
- }
- ret = device_create_file(adev->dev, &dev_attr_mem_info_vram_vendor);
- if (ret) {
DRM_ERROR("Failed to create device file mem_info_vram_vendor\n");
return ret;
- }
ret = sysfs_create_files(&adev->dev->kobj, amdgpu_vram_mgr_attributes);
if (ret)
DRM_ERROR("Failed to register sysfs\n");
return 0; }
@@ -219,11 +206,7 @@ static int amdgpu_vram_mgr_fini(struct ttm_mem_type_manager *man) spin_unlock(&mgr->lock); kfree(mgr); man->priv = NULL;
- device_remove_file(adev->dev, &dev_attr_mem_info_vram_total);
- device_remove_file(adev->dev, &dev_attr_mem_info_vis_vram_total);
- device_remove_file(adev->dev, &dev_attr_mem_info_vram_used);
- device_remove_file(adev->dev, &dev_attr_mem_info_vis_vram_used);
- device_remove_file(adev->dev, &dev_attr_mem_info_vram_vendor);
- sysfs_remove_files(&adev->dev->kobj, amdgpu_vram_mgr_attributes); return 0; }
On Thu, May 7, 2020 at 5:22 AM Christian König christian.koenig@amd.com wrote:
Am 07.05.20 um 11:13 schrieb Bernard Zhao:
There is DEVICE_ATTR mechanism in separate attribute define. So this change is to use attr array, also use sysfs_create_files in init function & sysfs_remove_files in fini function. This maybe make the code a bit readable.
Signed-off-by: Bernard Zhao bernard@vivo.com
Reviewed-by: Christian König christian.koenig@amd.com
Applied with a minor change to make the array const to fix the build.
Alex
Changes since V1: *Use DEVICE_ATTR mechanism
Link for V1:
*https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flore.kerne...
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c | 43 ++++++-------------- 1 file changed, 13 insertions(+), 30 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c index 82a3299e53c0..57bbc70662ff 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c @@ -148,6 +148,15 @@ static DEVICE_ATTR(mem_info_vis_vram_used, S_IRUGO, static DEVICE_ATTR(mem_info_vram_vendor, S_IRUGO, amdgpu_mem_info_vram_vendor, NULL);
+static struct attribute *amdgpu_vram_mgr_attributes[] = {
&dev_attr_mem_info_vram_total.attr,
&dev_attr_mem_info_vis_vram_total.attr,
&dev_attr_mem_info_vram_used.attr,
&dev_attr_mem_info_vis_vram_used.attr,
&dev_attr_mem_info_vram_vendor.attr,
NULL
+};
- /**
- amdgpu_vram_mgr_init - init VRAM manager and DRM MM
@@ -172,31 +181,9 @@ static int amdgpu_vram_mgr_init(struct ttm_mem_type_manager *man, man->priv = mgr;
/* Add the two VRAM-related sysfs files */
ret = device_create_file(adev->dev, &dev_attr_mem_info_vram_total);
if (ret) {
DRM_ERROR("Failed to create device file mem_info_vram_total\n");
return ret;
}
ret = device_create_file(adev->dev, &dev_attr_mem_info_vis_vram_total);
if (ret) {
DRM_ERROR("Failed to create device file mem_info_vis_vram_total\n");
return ret;
}
ret = device_create_file(adev->dev, &dev_attr_mem_info_vram_used);
if (ret) {
DRM_ERROR("Failed to create device file mem_info_vram_used\n");
return ret;
}
ret = device_create_file(adev->dev, &dev_attr_mem_info_vis_vram_used);
if (ret) {
DRM_ERROR("Failed to create device file mem_info_vis_vram_used\n");
return ret;
}
ret = device_create_file(adev->dev, &dev_attr_mem_info_vram_vendor);
if (ret) {
DRM_ERROR("Failed to create device file mem_info_vram_vendor\n");
return ret;
}
ret = sysfs_create_files(&adev->dev->kobj, amdgpu_vram_mgr_attributes);
if (ret)
DRM_ERROR("Failed to register sysfs\n"); return 0;
}
@@ -219,11 +206,7 @@ static int amdgpu_vram_mgr_fini(struct ttm_mem_type_manager *man) spin_unlock(&mgr->lock); kfree(mgr); man->priv = NULL;
device_remove_file(adev->dev, &dev_attr_mem_info_vram_total);
device_remove_file(adev->dev, &dev_attr_mem_info_vis_vram_total);
device_remove_file(adev->dev, &dev_attr_mem_info_vram_used);
device_remove_file(adev->dev, &dev_attr_mem_info_vis_vram_used);
device_remove_file(adev->dev, &dev_attr_mem_info_vram_vendor);
}sysfs_remove_files(&adev->dev->kobj, amdgpu_vram_mgr_attributes); return 0;
amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx
-----Original Message----- From: dri-devel dri-devel-bounces@lists.freedesktop.org On Behalf Of Bernard Zhao Sent: Thursday, May 7, 2020 5:13 AM To: Alex Deucher alexander.deucher@amd.com; Christian König christian.koenig@amd.com; David (ChunMing) Zhou David1.Zhou@amd.com; David Airlie airlied@linux.ie; Daniel Vetter daniel@ffwll.ch; Tom St Denis tom.stdenis@amd.com; Sam Ravnborg sam@ravnborg.org; Ori Messinger Ori.Messinger@amd.com; Bernard Zhao bernard@vivo.com; amd-gfx@lists.freedesktop.org; dri- devel@lists.freedesktop.org; linux-kernel@vger.kernel.org Cc: opensource.kernel@vivo.com Subject: [PATCH v2] drm/amd/amdgpu: cleanup coding style a bit
There is DEVICE_ATTR mechanism in separate attribute define. So this change is to use attr array, also use sysfs_create_files in init function & sysfs_remove_files in fini function. This maybe make the code a bit readable.
Signed-off-by: Bernard Zhao bernard@vivo.com
Changes since V1: *Use DEVICE_ATTR mechanism
Link for V1:
*https://lore.kernel.org/patchwork/patch/1228076/
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c | 43 ++++++-------------
1 file changed, 13 insertions(+), 30 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c index 82a3299e53c0..57bbc70662ff 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c @@ -148,6 +148,15 @@ static DEVICE_ATTR(mem_info_vis_vram_used, S_IRUGO, static DEVICE_ATTR(mem_info_vram_vendor, S_IRUGO, amdgpu_mem_info_vram_vendor, NULL);
+static struct attribute *amdgpu_vram_mgr_attributes[] = {
- &dev_attr_mem_info_vram_total.attr,
- &dev_attr_mem_info_vis_vram_total.attr,
- &dev_attr_mem_info_vram_used.attr,
- &dev_attr_mem_info_vis_vram_used.attr,
- &dev_attr_mem_info_vram_vendor.attr,
- NULL
+};
/**
- amdgpu_vram_mgr_init - init VRAM manager and DRM MM
@@ -172,31 +181,9 @@ static int amdgpu_vram_mgr_init(struct ttm_mem_type_manager *man, man->priv = mgr;
/* Add the two VRAM-related sysfs files */
- ret = device_create_file(adev->dev,
&dev_attr_mem_info_vram_total);
- if (ret) {
DRM_ERROR("Failed to create device file
mem_info_vram_total\n");
return ret;
- }
- ret = device_create_file(adev->dev,
&dev_attr_mem_info_vis_vram_total);
- if (ret) {
DRM_ERROR("Failed to create device file
mem_info_vis_vram_total\n");
return ret;
- }
- ret = device_create_file(adev->dev,
&dev_attr_mem_info_vram_used);
- if (ret) {
DRM_ERROR("Failed to create device file
mem_info_vram_used\n");
return ret;
- }
- ret = device_create_file(adev->dev,
&dev_attr_mem_info_vis_vram_used);
- if (ret) {
DRM_ERROR("Failed to create device file
mem_info_vis_vram_used\n");
return ret;
- }
- ret = device_create_file(adev->dev,
&dev_attr_mem_info_vram_vendor);
- if (ret) {
DRM_ERROR("Failed to create device file
mem_info_vram_vendor\n");
return ret;
- }
- ret = sysfs_create_files(&adev->dev->kobj,
amdgpu_vram_mgr_attributes);
- if (ret)
DRM_ERROR("Failed to register sysfs\n");
This looks good to me.
I think that there is a new error macro (drm_err?) that you might want to use instead of DRM_ERROR().
Otherwise:
Acked-by: Michael J. Ruhl michael.j.ruhl@intel.com
m
return 0; } @@ -219,11 +206,7 @@ static int amdgpu_vram_mgr_fini(struct ttm_mem_type_manager *man) spin_unlock(&mgr->lock); kfree(mgr); man->priv = NULL;
- device_remove_file(adev->dev, &dev_attr_mem_info_vram_total);
- device_remove_file(adev->dev,
&dev_attr_mem_info_vis_vram_total);
- device_remove_file(adev->dev, &dev_attr_mem_info_vram_used);
- device_remove_file(adev->dev,
&dev_attr_mem_info_vis_vram_used);
- device_remove_file(adev->dev,
&dev_attr_mem_info_vram_vendor);
- sysfs_remove_files(&adev->dev->kobj,
amdgpu_vram_mgr_attributes); return 0; }
-- 2.26.2
dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
发件人:"Ruhl, Michael J" michael.j.ruhl@intel.com 发送日期:2020-05-08 23:45:07 收件人:Bernard Zhao bernard@vivo.com,Alex Deucher alexander.deucher@amd.com,"Christian König" christian.koenig@amd.com,"David (ChunMing) Zhou" David1.Zhou@amd.com,David Airlie airlied@linux.ie,Daniel Vetter daniel@ffwll.ch,Tom St Denis tom.stdenis@amd.com,Sam Ravnborg sam@ravnborg.org,Ori Messinger Ori.Messinger@amd.com,"amd-gfx@lists.freedesktop.org" amd-gfx@lists.freedesktop.org,"dri-devel@lists.freedesktop.org" dri-devel@lists.freedesktop.org,"linux-kernel@vger.kernel.org" linux-kernel@vger.kernel.org 抄送人:"opensource.kernel@vivo.com" opensource.kernel@vivo.com 主题:RE: [PATCH v2] drm/amd/amdgpu: cleanup coding style a bit>>-----Original Message-----
From: dri-devel dri-devel-bounces@lists.freedesktop.org On Behalf Of Bernard Zhao Sent: Thursday, May 7, 2020 5:13 AM To: Alex Deucher alexander.deucher@amd.com; Christian König christian.koenig@amd.com; David (ChunMing) Zhou David1.Zhou@amd.com; David Airlie airlied@linux.ie; Daniel Vetter daniel@ffwll.ch; Tom St Denis tom.stdenis@amd.com; Sam Ravnborg sam@ravnborg.org; Ori Messinger Ori.Messinger@amd.com; Bernard Zhao bernard@vivo.com; amd-gfx@lists.freedesktop.org; dri- devel@lists.freedesktop.org; linux-kernel@vger.kernel.org Cc: opensource.kernel@vivo.com Subject: [PATCH v2] drm/amd/amdgpu: cleanup coding style a bit
There is DEVICE_ATTR mechanism in separate attribute define. So this change is to use attr array, also use sysfs_create_files in init function & sysfs_remove_files in fini function. This maybe make the code a bit readable.
Signed-off-by: Bernard Zhao bernard@vivo.com
Changes since V1: *Use DEVICE_ATTR mechanism
Link for V1:
*https://lore.kernel.org/patchwork/patch/1228076/
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c | 43 ++++++-------------
1 file changed, 13 insertions(+), 30 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c index 82a3299e53c0..57bbc70662ff 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c @@ -148,6 +148,15 @@ static DEVICE_ATTR(mem_info_vis_vram_used, S_IRUGO, static DEVICE_ATTR(mem_info_vram_vendor, S_IRUGO, amdgpu_mem_info_vram_vendor, NULL);
+static struct attribute *amdgpu_vram_mgr_attributes[] = {
- &dev_attr_mem_info_vram_total.attr,
- &dev_attr_mem_info_vis_vram_total.attr,
- &dev_attr_mem_info_vram_used.attr,
- &dev_attr_mem_info_vis_vram_used.attr,
- &dev_attr_mem_info_vram_vendor.attr,
- NULL
+};
/**
- amdgpu_vram_mgr_init - init VRAM manager and DRM MM
@@ -172,31 +181,9 @@ static int amdgpu_vram_mgr_init(struct ttm_mem_type_manager *man, man->priv = mgr;
/* Add the two VRAM-related sysfs files */
- ret = device_create_file(adev->dev,
&dev_attr_mem_info_vram_total);
- if (ret) {
DRM_ERROR("Failed to create device file
mem_info_vram_total\n");
return ret;
- }
- ret = device_create_file(adev->dev,
&dev_attr_mem_info_vis_vram_total);
- if (ret) {
DRM_ERROR("Failed to create device file
mem_info_vis_vram_total\n");
return ret;
- }
- ret = device_create_file(adev->dev,
&dev_attr_mem_info_vram_used);
- if (ret) {
DRM_ERROR("Failed to create device file
mem_info_vram_used\n");
return ret;
- }
- ret = device_create_file(adev->dev,
&dev_attr_mem_info_vis_vram_used);
- if (ret) {
DRM_ERROR("Failed to create device file
mem_info_vis_vram_used\n");
return ret;
- }
- ret = device_create_file(adev->dev,
&dev_attr_mem_info_vram_vendor);
- if (ret) {
DRM_ERROR("Failed to create device file
mem_info_vram_vendor\n");
return ret;
- }
- ret = sysfs_create_files(&adev->dev->kobj,
amdgpu_vram_mgr_attributes);
- if (ret)
DRM_ERROR("Failed to register sysfs\n");
This looks good to me.
I think that there is a new error macro (drm_err?) that you might want to use instead of DRM_ERROR().
Otherwise:
Acked-by: Michael J. Ruhl michael.j.ruhl@intel.com
m
Hi Sure, I am willing to make this modification, also in GPU TODO list, there is one content: "Convert logging to drm_* functions with drm_device paramater,For drivers which could have multiple instances, it is necessary to differentiate between which is which in the logs. Since DRM_INFO/WARN/ERROR don’t do this, drivers used dev_info/warn/err to make this differentiation. We now have drm_* variants of the drm print functions, so we can start to convert those drivers back to using drm-formatted specific log messages." From https://www.kernel.org/doc/html/v5.7-rc5/gpu/todo.html#subsystem-wide-refact....
But i have to say that now in the DRM/AMD modules, all are used DRM_INFO/WARNING/ERROR I'm not sure weather maintainers want to replace these.
Regards, Bernard
return 0; } @@ -219,11 +206,7 @@ static int amdgpu_vram_mgr_fini(struct ttm_mem_type_manager *man) spin_unlock(&mgr->lock); kfree(mgr); man->priv = NULL;
- device_remove_file(adev->dev, &dev_attr_mem_info_vram_total);
- device_remove_file(adev->dev,
&dev_attr_mem_info_vis_vram_total);
- device_remove_file(adev->dev, &dev_attr_mem_info_vram_used);
- device_remove_file(adev->dev,
&dev_attr_mem_info_vis_vram_used);
- device_remove_file(adev->dev,
&dev_attr_mem_info_vram_vendor);
- sysfs_remove_files(&adev->dev->kobj,
amdgpu_vram_mgr_attributes); return 0; }
-- 2.26.2
dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
dri-devel@lists.freedesktop.org