Re: [PATCH 1/1] RDMA/cm: Delete two redundant condition branches

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 2021/5/12 9:35, Leizhen (ThunderTown) wrote:
> 
> 
> On 2021/5/12 3:56, Jason Gunthorpe wrote:
>> On Mon, May 10, 2021 at 05:08:40PM +0800, Zhen Lei wrote:
>>> The statement of the last "if (xxx)" branch is the same as the "else"
>>> branch. Delete it to simplify code.
>>>
>>> No functional change.
>>>
>>> Signed-off-by: Zhen Lei <thunder.leizhen@xxxxxxxxxx>
>>> ---
>>>  drivers/infiniband/core/cm.c | 4 ----
>>>  1 file changed, 4 deletions(-)
>>>
>>> diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c
>>> index 0ead0d223154011..510beb25f5b8a0b 100644
>>> --- a/drivers/infiniband/core/cm.c
>>> +++ b/drivers/infiniband/core/cm.c
>>> @@ -668,8 +668,6 @@ static struct cm_id_private *cm_insert_listen(struct cm_id_private *cm_id_priv,
>>>  			link = &(*link)->rb_right;
>>>  		else if (be64_lt(service_id, cur_cm_id_priv->id.service_id))
>>>  			link = &(*link)->rb_left;
>>> -		else if (be64_gt(service_id, cur_cm_id_priv->id.service_id))
>>> -			link = &(*link)->rb_right;
>>>  		else
>>>  			link = &(*link)->rb_right;
>>>  	}
>>> @@ -700,8 +698,6 @@ static struct cm_id_private *cm_find_listen(struct ib_device *device,
>>>  			node = node->rb_right;
>>>  		else if (be64_lt(service_id, cm_id_priv->id.service_id))
>>>  			node = node->rb_left;
>>> -		else if (be64_gt(service_id, cm_id_priv->id.service_id))
>>> -			node = node->rb_right;
>>>  		else
>>>  			node = node->rb_right;
>>>  	}
>>
>> I don't like this, if you want to reorganize this function then it
>> should be written in the normal pattern for this kind of comparision
>>
>>  if (a < b)
>>    ..
>>  else if (a > b)
>>    ..
>>  else // a == b
>>    ..
>>
>> You can see the a==b clause written explicitly above this if ladder:
>>
>> 		if ((cur_cm_id_priv->id.service_mask & service_id) ==
>> 		    (service_mask & cur_cm_id_priv->id.service_id) &&
>> 		    (cm_id_priv->id.device == cur_cm_id_priv->id.device)) {
> 
> Right,So we'd better rewrite it with this set of judgments. This is because
> the judgment of (a < b) and (a > b) is performed N times before the judgment
> of (a == b) is performed. Therefore, the above modification you mentioned can
> improve the search performance.

This modification may have to be patched separately. Combined with one patch, the description is unclear.

> 
>>
>> Which is why the trailing else is just unexectuable code.
>>
>> Jason
>>
>> .
>>




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux