Patchwork IPVS: Make "no destination available" message more consistent between schedulers

login
register
mail settings
Submitter Simon Horman
Date Dec. 30, 2008, 12:46 a.m.
Message ID <20081230004644.GA18464@verge.net.au>
Download mbox | patch
Permalink /patch/16014/
State Accepted
Delegated to: David Miller
Headers show

Comments

Simon Horman - Dec. 30, 2008, 12:46 a.m.
Cc: Joseph Mack <jmack@wm7d.net>
Cc: Siim Põder <windo@p6drad-teel.net>
Acked-by: Graeme Fowler <graeme@graemef.net>
Signed-off-by: Simon Horman <horms@verge.net.au>

--- 

 net/netfilter/ipvs/ip_vs_lblc.c  |    2 +-
 net/netfilter/ipvs/ip_vs_lblcr.c |    2 +-
 net/netfilter/ipvs/ip_vs_lc.c    |   14 +++++++++-----
 net/netfilter/ipvs/ip_vs_nq.c    |    4 +++-
 net/netfilter/ipvs/ip_vs_rr.c    |    1 +
 net/netfilter/ipvs/ip_vs_sed.c   |    1 +
 net/netfilter/ipvs/ip_vs_sh.c    |    1 +
 net/netfilter/ipvs/ip_vs_wlc.c   |    1 +
 net/netfilter/ipvs/ip_vs_wrr.c   |    8 ++++++--
 9 files changed, 24 insertions(+), 10 deletions(-)

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller - Dec. 30, 2008, 2:37 a.m.
From: Simon Horman <horms@verge.net.au>
Date: Tue, 30 Dec 2008 11:46:44 +1100

> Acked-by: Graeme Fowler <graeme@graemef.net>
> Signed-off-by: Simon Horman <horms@verge.net.au>

Applied, thanks a lot Simon.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

Index: net-next-2.6/net/netfilter/ipvs/ip_vs_lblc.c
===================================================================
--- net-next-2.6.orig/net/netfilter/ipvs/ip_vs_lblc.c	2008-12-30 11:21:16.000000000 +1100
+++ net-next-2.6/net/netfilter/ipvs/ip_vs_lblc.c	2008-12-30 11:30:05.000000000 +1100
@@ -507,7 +507,7 @@  ip_vs_lblc_schedule(struct ip_vs_service
 	/* No cache entry or it is invalid, time to schedule */
 	dest = __ip_vs_lblc_schedule(svc);
 	if (!dest) {
-		IP_VS_DBG(1, "no destination available\n");
+		IP_VS_ERR_RL("LBLC: no destination available\n");
 		return NULL;
 	}
 
Index: net-next-2.6/net/netfilter/ipvs/ip_vs_lblcr.c
===================================================================
--- net-next-2.6.orig/net/netfilter/ipvs/ip_vs_lblcr.c	2008-12-30 11:21:16.000000000 +1100
+++ net-next-2.6/net/netfilter/ipvs/ip_vs_lblcr.c	2008-12-30 11:30:05.000000000 +1100
@@ -690,7 +690,7 @@  ip_vs_lblcr_schedule(struct ip_vs_servic
 		/* The cache entry is invalid, time to schedule */
 		dest = __ip_vs_lblcr_schedule(svc);
 		if (!dest) {
-			IP_VS_DBG(1, "no destination available\n");
+			IP_VS_ERR_RL("LBLCR: no destination available\n");
 			read_unlock(&svc->sched_lock);
 			return NULL;
 		}
Index: net-next-2.6/net/netfilter/ipvs/ip_vs_lc.c
===================================================================
--- net-next-2.6.orig/net/netfilter/ipvs/ip_vs_lc.c	2008-12-30 11:21:16.000000000 +1100
+++ net-next-2.6/net/netfilter/ipvs/ip_vs_lc.c	2008-12-30 11:30:05.000000000 +1100
@@ -66,11 +66,15 @@  ip_vs_lc_schedule(struct ip_vs_service *
 		}
 	}
 
-	if (least)
-	IP_VS_DBG_BUF(6, "LC: server %s:%u activeconns %d inactconns %d\n",
-		      IP_VS_DBG_ADDR(svc->af, &least->addr), ntohs(least->port),
-		      atomic_read(&least->activeconns),
-		      atomic_read(&least->inactconns));
+	if (!least)
+		IP_VS_ERR_RL("LC: no destination available\n");
+	else
+		IP_VS_DBG_BUF(6, "LC: server %s:%u activeconns %d "
+			      "inactconns %d\n",
+			      IP_VS_DBG_ADDR(svc->af, &least->addr),
+			      ntohs(least->port),
+			      atomic_read(&least->activeconns),
+			      atomic_read(&least->inactconns));
 
 	return least;
 }
Index: net-next-2.6/net/netfilter/ipvs/ip_vs_nq.c
===================================================================
--- net-next-2.6.orig/net/netfilter/ipvs/ip_vs_nq.c	2008-12-30 11:21:16.000000000 +1100
+++ net-next-2.6/net/netfilter/ipvs/ip_vs_nq.c	2008-12-30 11:30:05.000000000 +1100
@@ -95,8 +95,10 @@  ip_vs_nq_schedule(struct ip_vs_service *
 		}
 	}
 
-	if (!least)
+	if (!least) {
+		IP_VS_ERR_RL("NQ: no destination available\n");
 		return NULL;
+	}
 
   out:
 	IP_VS_DBG_BUF(6, "NQ: server %s:%u "
Index: net-next-2.6/net/netfilter/ipvs/ip_vs_rr.c
===================================================================
--- net-next-2.6.orig/net/netfilter/ipvs/ip_vs_rr.c	2008-12-30 11:21:16.000000000 +1100
+++ net-next-2.6/net/netfilter/ipvs/ip_vs_rr.c	2008-12-30 11:30:05.000000000 +1100
@@ -69,6 +69,7 @@  ip_vs_rr_schedule(struct ip_vs_service *
 		q = q->next;
 	} while (q != p);
 	write_unlock(&svc->sched_lock);
+	IP_VS_ERR_RL("RR: no destination available\n");
 	return NULL;
 
   out:
Index: net-next-2.6/net/netfilter/ipvs/ip_vs_sed.c
===================================================================
--- net-next-2.6.orig/net/netfilter/ipvs/ip_vs_sed.c	2008-12-30 11:21:16.000000000 +1100
+++ net-next-2.6/net/netfilter/ipvs/ip_vs_sed.c	2008-12-30 11:30:05.000000000 +1100
@@ -84,6 +84,7 @@  ip_vs_sed_schedule(struct ip_vs_service 
 			goto nextstage;
 		}
 	}
+	IP_VS_ERR_RL("SED: no destination available\n");
 	return NULL;
 
 	/*
Index: net-next-2.6/net/netfilter/ipvs/ip_vs_sh.c
===================================================================
--- net-next-2.6.orig/net/netfilter/ipvs/ip_vs_sh.c	2008-12-30 11:21:16.000000000 +1100
+++ net-next-2.6/net/netfilter/ipvs/ip_vs_sh.c	2008-12-30 11:30:05.000000000 +1100
@@ -219,6 +219,7 @@  ip_vs_sh_schedule(struct ip_vs_service *
 	    || !(dest->flags & IP_VS_DEST_F_AVAILABLE)
 	    || atomic_read(&dest->weight) <= 0
 	    || is_overloaded(dest)) {
+		IP_VS_ERR_RL("SH: no destination available\n");
 		return NULL;
 	}
 
Index: net-next-2.6/net/netfilter/ipvs/ip_vs_wlc.c
===================================================================
--- net-next-2.6.orig/net/netfilter/ipvs/ip_vs_wlc.c	2008-12-30 11:21:16.000000000 +1100
+++ net-next-2.6/net/netfilter/ipvs/ip_vs_wlc.c	2008-12-30 11:30:05.000000000 +1100
@@ -72,6 +72,7 @@  ip_vs_wlc_schedule(struct ip_vs_service 
 			goto nextstage;
 		}
 	}
+	IP_VS_ERR_RL("WLC: no destination available\n");
 	return NULL;
 
 	/*
Index: net-next-2.6/net/netfilter/ipvs/ip_vs_wrr.c
===================================================================
--- net-next-2.6.orig/net/netfilter/ipvs/ip_vs_wrr.c	2008-12-30 11:21:16.000000000 +1100
+++ net-next-2.6/net/netfilter/ipvs/ip_vs_wrr.c	2008-12-30 11:30:05.000000000 +1100
@@ -155,6 +155,8 @@  ip_vs_wrr_schedule(struct ip_vs_service 
 
 			if (mark->cl == mark->cl->next) {
 				/* no dest entry */
+				IP_VS_ERR_RL("WRR: no destination available: "
+					     "no destinations present\n");
 				dest = NULL;
 				goto out;
 			}
@@ -168,8 +170,8 @@  ip_vs_wrr_schedule(struct ip_vs_service 
 				 */
 				if (mark->cw == 0) {
 					mark->cl = &svc->destinations;
-					IP_VS_ERR_RL("ip_vs_wrr_schedule(): "
-						   "no available servers\n");
+					IP_VS_ERR_RL("WRR: no destination "
+						     "available\n");
 					dest = NULL;
 					goto out;
 				}
@@ -191,6 +193,8 @@  ip_vs_wrr_schedule(struct ip_vs_service 
 			/* back to the start, and no dest is found.
 			   It is only possible when all dests are OVERLOADED */
 			dest = NULL;
+			IP_VS_ERR_RL("WRR: no destination available: "
+				     "all destinations are overloaded\n");
 			goto out;
 		}
 	}