IPVS: Make "no destination available" message more consistent between schedulers
Acked-by: Graeme Fowler <graeme@graemef.net> Signed-off-by: Simon Horman <horms@verge.net.au> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c8e95c021c
commit
68888d1053
|
@ -507,7 +507,7 @@ ip_vs_lblc_schedule(struct ip_vs_service *svc, const struct sk_buff *skb)
|
||||||
/* No cache entry or it is invalid, time to schedule */
|
/* No cache entry or it is invalid, time to schedule */
|
||||||
dest = __ip_vs_lblc_schedule(svc);
|
dest = __ip_vs_lblc_schedule(svc);
|
||||||
if (!dest) {
|
if (!dest) {
|
||||||
IP_VS_DBG(1, "no destination available\n");
|
IP_VS_ERR_RL("LBLC: no destination available\n");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -690,7 +690,7 @@ ip_vs_lblcr_schedule(struct ip_vs_service *svc, const struct sk_buff *skb)
|
||||||
/* The cache entry is invalid, time to schedule */
|
/* The cache entry is invalid, time to schedule */
|
||||||
dest = __ip_vs_lblcr_schedule(svc);
|
dest = __ip_vs_lblcr_schedule(svc);
|
||||||
if (!dest) {
|
if (!dest) {
|
||||||
IP_VS_DBG(1, "no destination available\n");
|
IP_VS_ERR_RL("LBLCR: no destination available\n");
|
||||||
read_unlock(&svc->sched_lock);
|
read_unlock(&svc->sched_lock);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,11 +66,15 @@ ip_vs_lc_schedule(struct ip_vs_service *svc, const struct sk_buff *skb)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (least)
|
if (!least)
|
||||||
IP_VS_DBG_BUF(6, "LC: server %s:%u activeconns %d inactconns %d\n",
|
IP_VS_ERR_RL("LC: no destination available\n");
|
||||||
IP_VS_DBG_ADDR(svc->af, &least->addr), ntohs(least->port),
|
else
|
||||||
atomic_read(&least->activeconns),
|
IP_VS_DBG_BUF(6, "LC: server %s:%u activeconns %d "
|
||||||
atomic_read(&least->inactconns));
|
"inactconns %d\n",
|
||||||
|
IP_VS_DBG_ADDR(svc->af, &least->addr),
|
||||||
|
ntohs(least->port),
|
||||||
|
atomic_read(&least->activeconns),
|
||||||
|
atomic_read(&least->inactconns));
|
||||||
|
|
||||||
return least;
|
return least;
|
||||||
}
|
}
|
||||||
|
|
|
@ -95,8 +95,10 @@ ip_vs_nq_schedule(struct ip_vs_service *svc, const struct sk_buff *skb)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!least)
|
if (!least) {
|
||||||
|
IP_VS_ERR_RL("NQ: no destination available\n");
|
||||||
return NULL;
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
out:
|
out:
|
||||||
IP_VS_DBG_BUF(6, "NQ: server %s:%u "
|
IP_VS_DBG_BUF(6, "NQ: server %s:%u "
|
||||||
|
|
|
@ -69,6 +69,7 @@ ip_vs_rr_schedule(struct ip_vs_service *svc, const struct sk_buff *skb)
|
||||||
q = q->next;
|
q = q->next;
|
||||||
} while (q != p);
|
} while (q != p);
|
||||||
write_unlock(&svc->sched_lock);
|
write_unlock(&svc->sched_lock);
|
||||||
|
IP_VS_ERR_RL("RR: no destination available\n");
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
out:
|
out:
|
||||||
|
|
|
@ -84,6 +84,7 @@ ip_vs_sed_schedule(struct ip_vs_service *svc, const struct sk_buff *skb)
|
||||||
goto nextstage;
|
goto nextstage;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
IP_VS_ERR_RL("SED: no destination available\n");
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -219,6 +219,7 @@ ip_vs_sh_schedule(struct ip_vs_service *svc, const struct sk_buff *skb)
|
||||||
|| !(dest->flags & IP_VS_DEST_F_AVAILABLE)
|
|| !(dest->flags & IP_VS_DEST_F_AVAILABLE)
|
||||||
|| atomic_read(&dest->weight) <= 0
|
|| atomic_read(&dest->weight) <= 0
|
||||||
|| is_overloaded(dest)) {
|
|| is_overloaded(dest)) {
|
||||||
|
IP_VS_ERR_RL("SH: no destination available\n");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -72,6 +72,7 @@ ip_vs_wlc_schedule(struct ip_vs_service *svc, const struct sk_buff *skb)
|
||||||
goto nextstage;
|
goto nextstage;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
IP_VS_ERR_RL("WLC: no destination available\n");
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -155,6 +155,8 @@ ip_vs_wrr_schedule(struct ip_vs_service *svc, const struct sk_buff *skb)
|
||||||
|
|
||||||
if (mark->cl == mark->cl->next) {
|
if (mark->cl == mark->cl->next) {
|
||||||
/* no dest entry */
|
/* no dest entry */
|
||||||
|
IP_VS_ERR_RL("WRR: no destination available: "
|
||||||
|
"no destinations present\n");
|
||||||
dest = NULL;
|
dest = NULL;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
@ -168,8 +170,8 @@ ip_vs_wrr_schedule(struct ip_vs_service *svc, const struct sk_buff *skb)
|
||||||
*/
|
*/
|
||||||
if (mark->cw == 0) {
|
if (mark->cw == 0) {
|
||||||
mark->cl = &svc->destinations;
|
mark->cl = &svc->destinations;
|
||||||
IP_VS_ERR_RL("ip_vs_wrr_schedule(): "
|
IP_VS_ERR_RL("WRR: no destination "
|
||||||
"no available servers\n");
|
"available\n");
|
||||||
dest = NULL;
|
dest = NULL;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
@ -191,6 +193,8 @@ ip_vs_wrr_schedule(struct ip_vs_service *svc, const struct sk_buff *skb)
|
||||||
/* back to the start, and no dest is found.
|
/* back to the start, and no dest is found.
|
||||||
It is only possible when all dests are OVERLOADED */
|
It is only possible when all dests are OVERLOADED */
|
||||||
dest = NULL;
|
dest = NULL;
|
||||||
|
IP_VS_ERR_RL("WRR: no destination available: "
|
||||||
|
"all destinations are overloaded\n");
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue