Re: [PATCH] drm/amdgpu: optimize list operation in amdgpu_xgmi
[AMD Official Use Only - Internal Distribution Only] thanks Felix, I will continue to optimize related codes in the future. Best Regards, Kevin From: Kuehling, Felix Sent: Wednesday, February 3, 2021 9:53 PM To: Wang, Kevin(Yang) ; amd-gfx@lists.freedesktop.org Cc: Li, Dennis Subject: Re: [PATCH] drm/amdgpu: optimize list operation in amdgpu_xgmi Looks good to me. I see some more redundant code in that function, if you want to clean it up further: > hive = kzalloc(sizeof(*hive), GFP_KERNEL); > if (!hive) { > dev_err(adev->dev, "XGMI: allocation failed\n"); > hive = NULL; No need to set hive to NULL. The condition above is only true if it's already NULL. Also you don't need to print error messages for out-of-memory errors, because kzalloc will be very noisy if it fails anyway. > goto pro_end; > } Either way, this patch is: Reviewed-by: Felix Kuehling Am 2021-02-03 um 4:42 a.m. schrieb Kevin Wang: > simplify the list opertion. > > Signed-off-by: Kevin Wang > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c | 10 -- > 1 file changed, 4 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c > index 541ef6be390f..659b385b27b5 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c > @@ -324,7 +324,7 @@ static void amdgpu_xgmi_sysfs_rem_dev_info(struct > amdgpu_device *adev, > > struct amdgpu_hive_info *amdgpu_get_xgmi_hive(struct amdgpu_device *adev) > { > - struct amdgpu_hive_info *hive = NULL, *tmp = NULL; > + struct amdgpu_hive_info *hive = NULL; >int ret; > >if (!adev->gmc.xgmi.hive_id) > @@ -337,11 +337,9 @@ struct amdgpu_hive_info *amdgpu_get_xgmi_hive(struct > amdgpu_device *adev) > >mutex_lock(_mutex); > > - if (!list_empty(_hive_list)) { > - list_for_each_entry_safe(hive, tmp, _hive_list, node) { > - if (hive->hive_id == adev->gmc.xgmi.hive_id) > - goto pro_end; > - } > + list_for_each_entry(hive, _hive_list, node) { > + if (hive->hive_id == adev->gmc.xgmi.hive_id) > + goto pro_end; >} > >hive = kzalloc(sizeof(*hive), GFP_KERNEL); ___ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx
Re: [PATCH] drm/amdgpu: optimize list operation in amdgpu_xgmi
Looks good to me. I see some more redundant code in that function, if you want to clean it up further: > hive = kzalloc(sizeof(*hive), GFP_KERNEL); > if (!hive) { > dev_err(adev->dev, "XGMI: allocation failed\n"); > hive = NULL; No need to set hive to NULL. The condition above is only true if it's already NULL. Also you don't need to print error messages for out-of-memory errors, because kzalloc will be very noisy if it fails anyway. > goto pro_end; > } Either way, this patch is: Reviewed-by: Felix Kuehling Am 2021-02-03 um 4:42 a.m. schrieb Kevin Wang: > simplify the list opertion. > > Signed-off-by: Kevin Wang > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c | 10 -- > 1 file changed, 4 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c > index 541ef6be390f..659b385b27b5 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c > @@ -324,7 +324,7 @@ static void amdgpu_xgmi_sysfs_rem_dev_info(struct > amdgpu_device *adev, > > struct amdgpu_hive_info *amdgpu_get_xgmi_hive(struct amdgpu_device *adev) > { > - struct amdgpu_hive_info *hive = NULL, *tmp = NULL; > + struct amdgpu_hive_info *hive = NULL; > int ret; > > if (!adev->gmc.xgmi.hive_id) > @@ -337,11 +337,9 @@ struct amdgpu_hive_info *amdgpu_get_xgmi_hive(struct > amdgpu_device *adev) > > mutex_lock(_mutex); > > - if (!list_empty(_hive_list)) { > - list_for_each_entry_safe(hive, tmp, _hive_list, node) { > - if (hive->hive_id == adev->gmc.xgmi.hive_id) > - goto pro_end; > - } > + list_for_each_entry(hive, _hive_list, node) { > + if (hive->hive_id == adev->gmc.xgmi.hive_id) > + goto pro_end; > } > > hive = kzalloc(sizeof(*hive), GFP_KERNEL); ___ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx
[PATCH] drm/amdgpu: optimize list operation in amdgpu_xgmi
simplify the list opertion. Signed-off-by: Kevin Wang --- drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c | 10 -- 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c index 541ef6be390f..659b385b27b5 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c @@ -324,7 +324,7 @@ static void amdgpu_xgmi_sysfs_rem_dev_info(struct amdgpu_device *adev, struct amdgpu_hive_info *amdgpu_get_xgmi_hive(struct amdgpu_device *adev) { - struct amdgpu_hive_info *hive = NULL, *tmp = NULL; + struct amdgpu_hive_info *hive = NULL; int ret; if (!adev->gmc.xgmi.hive_id) @@ -337,11 +337,9 @@ struct amdgpu_hive_info *amdgpu_get_xgmi_hive(struct amdgpu_device *adev) mutex_lock(_mutex); - if (!list_empty(_hive_list)) { - list_for_each_entry_safe(hive, tmp, _hive_list, node) { - if (hive->hive_id == adev->gmc.xgmi.hive_id) - goto pro_end; - } + list_for_each_entry(hive, _hive_list, node) { + if (hive->hive_id == adev->gmc.xgmi.hive_id) + goto pro_end; } hive = kzalloc(sizeof(*hive), GFP_KERNEL); -- 2.17.1 ___ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx