mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
staging: lustre: reflect down routes in /proc/sys/lnet/routes
We consider routes "down" if the router is down or the router NI for the target network is down. This should be reflected in the output of /proc/sys/lnet/routes Signed-off-by: Chris Horn <hornc@cray.com> Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-3679 Reviewed-on: http://review.whamcloud.com/7857 Reviewed-by: Cory Spitz <spitzcor@cray.com> Reviewed-by: Isaac Huang <he.huang@intel.com> Reviewed-by: Oleg Drokin <oleg.drokin@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
4f0bedeccf
commit
4ee23a84bf
@ -64,6 +64,19 @@ extern lnet_t the_lnet; /* THE network */
|
|||||||
/** exclusive lock */
|
/** exclusive lock */
|
||||||
#define LNET_LOCK_EX CFS_PERCPT_LOCK_EX
|
#define LNET_LOCK_EX CFS_PERCPT_LOCK_EX
|
||||||
|
|
||||||
|
static inline int lnet_is_route_alive(lnet_route_t *route)
|
||||||
|
{
|
||||||
|
/* gateway is down */
|
||||||
|
if (!route->lr_gateway->lp_alive)
|
||||||
|
return 0;
|
||||||
|
/* no NI status, assume it's alive */
|
||||||
|
if ((route->lr_gateway->lp_ping_feats &
|
||||||
|
LNET_PING_FEAT_NI_STATUS) == 0)
|
||||||
|
return 1;
|
||||||
|
/* has NI status, check # down NIs */
|
||||||
|
return route->lr_downis == 0;
|
||||||
|
}
|
||||||
|
|
||||||
static inline int lnet_is_wire_handle_none(lnet_handle_wire_t *wh)
|
static inline int lnet_is_wire_handle_none(lnet_handle_wire_t *wh)
|
||||||
{
|
{
|
||||||
return (wh->wh_interface_cookie == LNET_WIRE_HANDLE_COOKIE_NONE &&
|
return (wh->wh_interface_cookie == LNET_WIRE_HANDLE_COOKIE_NONE &&
|
||||||
|
@ -1156,9 +1156,7 @@ lnet_find_route_locked(lnet_ni_t *ni, lnet_nid_t target, lnet_nid_t rtr_nid)
|
|||||||
list_for_each_entry(route, &rnet->lrn_routes, lr_list) {
|
list_for_each_entry(route, &rnet->lrn_routes, lr_list) {
|
||||||
lp = route->lr_gateway;
|
lp = route->lr_gateway;
|
||||||
|
|
||||||
if (!lp->lp_alive || /* gateway is down */
|
if (!lnet_is_route_alive(route))
|
||||||
((lp->lp_ping_feats & LNET_PING_FEAT_NI_STATUS) &&
|
|
||||||
route->lr_downis)) /* NI to target is down */
|
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (ni && lp->lp_ni != ni)
|
if (ni && lp->lp_ni != ni)
|
||||||
|
@ -242,7 +242,7 @@ static int proc_lnet_routes(struct ctl_table *table, int write,
|
|||||||
unsigned int hops = route->lr_hops;
|
unsigned int hops = route->lr_hops;
|
||||||
unsigned int priority = route->lr_priority;
|
unsigned int priority = route->lr_priority;
|
||||||
lnet_nid_t nid = route->lr_gateway->lp_nid;
|
lnet_nid_t nid = route->lr_gateway->lp_nid;
|
||||||
int alive = route->lr_gateway->lp_alive;
|
int alive = lnet_is_route_alive(route);
|
||||||
|
|
||||||
s += snprintf(s, tmpstr + tmpsiz - s,
|
s += snprintf(s, tmpstr + tmpsiz - s,
|
||||||
"%-8s %4u %8u %7s %s\n",
|
"%-8s %4u %8u %7s %s\n",
|
||||||
|
Loading…
Reference in New Issue
Block a user