opensm/osm_sa_mcmember_record.c: optimization in zero mgid comparison
PATCH 1/1 opensm/osm_sa_mcmember_record.c: optimization in zero mgid comparison
Hi Sasha,
Small optimization in comparison to zero mgid in new mcast group creation.
--- opensm/opensm/osm_sa_mcmember_record.c | 11 ++++------- 1 files changed, 4 insertions(+), 7 deletions(-)
opensm/opensm/osm_sa_mcmember_record.c +4 -7
@@ -731,7 +731,7 @@ static ib_api_status_t mcmr_rcv_create_new_mgrp(IN osm_sa_t * sa, OUT osm_mgrp_t ** pp_mgrp) {ib_net16_t mlid; -unsigned zero_mgid, i; +unsigned zero_mgid =1 ;uint8_t scope;ib_gid_t *p_mgid;ib_api_status_t status =IB_SUCCESS ;
@@ -740,12 +740,9 @@ static ib_api_status_t mcmr_rcv_create_new_mgrp(IN osm_sa_t * sa,OSM_LOG_ENTER (sa->p_log);/* but what if the given MGID was not 0 ? */ - zero_mgid =1 ; -for (i =0 ; i <sizeof (p_recvd_mcmember_rec->mgid); i++) -if (p_recvd_mcmember_rec->mgid.raw[i] !=0 ) { - zero_mgid =0 ; -break ; - } +if (p_recvd_mcmember_rec->mgid.unicast.prefix !=0 || + p_recvd_mcmember_rec->mgid.unicast.interface_id !=0 ) + zero_mgid =0 ;/* we allocate a new mlid number before we might use it
Signature · 6 lines
1.5.1.4 -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
A message that is not in the archive (sent off-list or not yet received): 4AED56C0.4080006-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org
Sasha Khapyorsky
AppliedQuoted 6 lines · Yevgeny Kliteynik
Hi Sasha,
Small optimization in comparison to zero mgid in new mcast group creation.
Signed-off-by Yevgeny Kliteynik <[email protected]>
Applied. Thanks.
Also see below.
Quoted 20 lines
--- opensm/opensm/osm_sa_mcmember_record.c | 11 ++++------- 1 files changed, 4 insertions(+), 7 deletions(-)opensm/opensm/osm_sa_mcmember_record.c +1
-1@@ -731,7 +731,7 @@ static ib_api_status_t mcmr_rcv_create_new_mgrp(IN osm_sa_t * sa, OUT osm_mgrp_t ** pp_mgrp) {ib_net16_t mlid; -unsigned zero_mgid, i; +unsigned zero_mgid =1 ;uint8_t scope;ib_gid_t *p_mgid;ib_api_status_t status =IB_SUCCESS ;@@ -740,12 +740,9 @@ static ib_api_status_t mcmr_rcv_create_new_mgrp(IN osm_sa_t * sa,OSM_LOG_ENTER (sa->p_log);
opensm/opensm/osm_sa_mcmember_record.c static ib_api_status_t mcmr_rcv_create_new_mgrp(IN osm_sa_t * sa, · line 745
Quoted 10 lines
opensm/opensm/osm_sa_mcmember_record.c +3
-6/* but what if the given MGID was not 0 ? */ - zero_mgid =1 ; -for (i =0 ; i <sizeof (p_recvd_mcmember_rec->mgid); i++) -if (p_recvd_mcmember_rec->mgid.raw[i] !=0 ) { - zero_mgid =0 ; -break ; - } +if (p_recvd_mcmember_rec->mgid.unicast.prefix !=0 || + p_recvd_mcmember_rec->mgid.unicast.interface_id !=0 ) + zero_mgid =0 ;
Actually you can use 'ib_zero_gid' here, something like:
zero_mgid = !memcmp(&p_recvd_mcmember_rec->mgid, &ib_zero_gid, sizeof(ib_git_t));
Sasha
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
Quoted 45 lines · Sasha Khapyorsky
Quoted 6 lines · Yevgeny Kliteynik
Hi Sasha,
Small optimization in comparison to zero mgid in new mcast group creation.
Signed-off-by Yevgeny Kliteynik <[email protected]>Applied. Thanks.
Also see below.
Quoted 20 lines
--- opensm/opensm/osm_sa_mcmember_record.c | 11 ++++------- 1 files changed, 4 insertions(+), 7 deletions(-)opensm/opensm/osm_sa_mcmember_record.c +1
-1@@ -731,7 +731,7 @@ static ib_api_status_t mcmr_rcv_create_new_mgrp(IN osm_sa_t * sa, OUT osm_mgrp_t ** pp_mgrp) {ib_net16_t mlid; -unsigned zero_mgid, i; +unsigned zero_mgid =1 ;uint8_t scope;ib_gid_t *p_mgid;ib_api_status_t status =IB_SUCCESS ;@@ -740,12 +740,9 @@ static ib_api_status_t mcmr_rcv_create_new_mgrp(IN osm_sa_t * sa,OSM_LOG_ENTER (sa->p_log);opensm/opensm/osm_sa_mcmember_record.c static ib_api_status_t mcmr_rcv_create_new_mgrp(IN osm_sa_t * sa, · line 745
Quoted 10 lines
opensm/opensm/osm_sa_mcmember_record.c +3
-6/* but what if the given MGID was not 0 ? */ - zero_mgid =1 ; -for (i =0 ; i <sizeof (p_recvd_mcmember_rec->mgid); i++) -if (p_recvd_mcmember_rec->mgid.raw[i] !=0 ) { - zero_mgid =0 ; -break ; - } +if (p_recvd_mcmember_rec->mgid.unicast.prefix !=0 || + p_recvd_mcmember_rec->mgid.unicast.interface_id !=0 ) + zero_mgid =0 ;Actually you can use '
ib_zero_gid' here, something like:
Quoted 2 lines
zero_mgid = !memcmp(&p_recvd_mcmember_rec->mgid, &ib_zero_gid, sizeof(ib_git_t));
Oh, I didn't know that it existed :)
BTW, it appears that we already have such function:
static inline boolean_t ib_gid_is_notzero(IN const ib_gid_t * p_gid)
So it might as well just be something like that:
opensm/opensm/osm_sa_mcmember_record.c | 10 +---------
1 files changed, 1 insertions(+), 9 deletions(-)
opensm/opensm/osm_sa_mcmember_record.c +0 -0
@@ -731,22 +731,14 @@ static ib_api_status_t mcmr_rcv_create_new_mgrp(IN osm_sa_t * sa,
OUT osm_mgrp_t ** pp_mgrp)
{
ib_net16_t mlid;
- unsigned zero_mgid, i;
uint8_t scope;
ib_gid_t *p_mgid;
ib_api_status_t status = IB_SUCCESS;
ib_member_rec_t mcm_rec = *p_recvd_mcmember_rec; /* copy for modifications */+ boolean_t zero_mgid = !ib_gid_is_notzero(&p_recvd_mcmember_rec->mgid);
OSM_LOG_ENTER(sa->p_log);
- /* but what if the given MGID was not 0 ? */
- zero_mgid = 1;
- for (i = 0; i < sizeof(p_recvd_mcmember_rec->mgid); i++)
- if (p_recvd_mcmember_rec->mgid.raw[i] != 0) {
- zero_mgid = 0;
- break;
- }
-
/*
we allocate a new mlid number before we might use it for MGID ...
Want me to send a patch against the new master?
-- Yevgeny
Quoted 2 lines
Sasha
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
A message that is not in the archive (sent off-list or not yet received): 4AEDEEEB.8010401-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org
Quoted 35 lines · Yevgeny Kliteynik
So it might as well just be something like that:
opensm/opensm/osm_sa_mcmember_record.c | 10 +--------- 1 files changed, 1 insertions(+), 9 deletions(-)opensm/opensm/osm_sa_mcmember_record.c +1
-9@@ -731,22 +731,14 @@ static ib_api_status_t mcmr_rcv_create_new_mgrp(IN osm_sa_t * sa, OUT osm_mgrp_t ** pp_mgrp) {ib_net16_t mlid; -unsigned zero_mgid, i;uint8_t scope;ib_gid_t *p_mgid;ib_api_status_t status =IB_SUCCESS ;ib_member_rec_t mcm_rec = *p_recvd_mcmember_rec;/* copy for modifications */ +boolean_t zero_mgid = !ib_gid_is_notzero (&p_recvd_mcmember_rec->mgid);OSM_LOG_ENTER (sa->p_log); -/* but what if the given MGID was not 0 ? */ - zero_mgid =1 ; -for (i =0 ; i <sizeof (p_recvd_mcmember_rec->mgid); i++) -if (p_recvd_mcmember_rec->mgid.raw[i] !=0 ) { - zero_mgid =0 ; -break ; - } -/* we allocate a new mlid number before we might use it for MGID ...
Quoted 1 line
Want me to send a patch against the new master?
Yes please. Also you can eliminate 'zero_mgid' variable - it is used only once.
Sasha
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html