Re: [PATCH] scsi: target: Save a few cycles in 'transport_lookup_[cmd|tmr]_lun()'

From: Christophe JAILLET
Date: Fri Aug 12 2022 - 00:54:23 EST


Le 03/11/2021 à 22:24, Christophe JAILLET a écrit :
Use 'percpu_ref_tryget_live_rcu()' instead of 'percpu_ref_tryget_live()' to
save a few cycles when it is known that the rcu lock is already
taken/released.

Signed-off-by: Christophe JAILLET <christophe.jaillet@xxxxxxxxxx>
---
drivers/target/target_core_device.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/target/target_core_device.c b/drivers/target/target_core_device.c
index 44bb380e7390..bfd5d5606522 100644
--- a/drivers/target/target_core_device.c
+++ b/drivers/target/target_core_device.c
@@ -77,7 +77,7 @@ transport_lookup_cmd_lun(struct se_cmd *se_cmd)
se_lun = rcu_dereference(deve->se_lun);
- if (!percpu_ref_tryget_live(&se_lun->lun_ref)) {
+ if (!percpu_ref_tryget_live_rcu(&se_lun->lun_ref)) {
se_lun = NULL;
goto out_unlock;
}
@@ -154,7 +154,7 @@ int transport_lookup_tmr_lun(struct se_cmd *se_cmd)
if (deve) {
se_lun = rcu_dereference(deve->se_lun);
- if (!percpu_ref_tryget_live(&se_lun->lun_ref)) {
+ if (!percpu_ref_tryget_live_rcu(&se_lun->lun_ref)) {
se_lun = NULL;
goto out_unlock;
}

Hi,
gentle reminder.

Is this patch useful?
When I first posted it, percpu_ref_tryget_live_rcu() was really new.
Now it is part of linux since 5.16.

Saving a few cycles in a function with "lookup" in its name looks always good to me.

CJ