You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge branch 'nf-next' of git://1984.lsi.us.es/net-next
This commit is contained in:
@@ -232,6 +232,21 @@ config IP_VS_NQ
|
||||
If you want to compile it in kernel, say Y. To compile it as a
|
||||
module, choose M here. If unsure, say N.
|
||||
|
||||
comment 'IPVS SH scheduler'
|
||||
|
||||
config IP_VS_SH_TAB_BITS
|
||||
int "IPVS source hashing table size (the Nth power of 2)"
|
||||
range 4 20
|
||||
default 8
|
||||
---help---
|
||||
The source hashing scheduler maps source IPs to destinations
|
||||
stored in a hash table. This table is tiled by each destination
|
||||
until all slots in the table are filled. When using weights to
|
||||
allow destinations to receive more connections, the table is
|
||||
tiled an amount proportional to the weights specified. The table
|
||||
needs to be large enough to effectively fit all the destinations
|
||||
multiplied by their respective weights.
|
||||
|
||||
comment 'IPVS application helper'
|
||||
|
||||
config IP_VS_FTP
|
||||
|
||||
@@ -30,6 +30,11 @@
|
||||
* server is dead or overloaded, the load balancer can bypass the cache
|
||||
* server and send requests to the original server directly.
|
||||
*
|
||||
* The weight destination attribute can be used to control the
|
||||
* distribution of connections to the destinations in servernode. The
|
||||
* greater the weight, the more connections the destination
|
||||
* will receive.
|
||||
*
|
||||
*/
|
||||
|
||||
#define KMSG_COMPONENT "IPVS"
|
||||
@@ -99,9 +104,11 @@ ip_vs_sh_assign(struct ip_vs_sh_bucket *tbl, struct ip_vs_service *svc)
|
||||
struct ip_vs_sh_bucket *b;
|
||||
struct list_head *p;
|
||||
struct ip_vs_dest *dest;
|
||||
int d_count;
|
||||
|
||||
b = tbl;
|
||||
p = &svc->destinations;
|
||||
d_count = 0;
|
||||
for (i=0; i<IP_VS_SH_TAB_SIZE; i++) {
|
||||
if (list_empty(p)) {
|
||||
b->dest = NULL;
|
||||
@@ -113,7 +120,16 @@ ip_vs_sh_assign(struct ip_vs_sh_bucket *tbl, struct ip_vs_service *svc)
|
||||
atomic_inc(&dest->refcnt);
|
||||
b->dest = dest;
|
||||
|
||||
p = p->next;
|
||||
IP_VS_DBG_BUF(6, "assigned i: %d dest: %s weight: %d\n",
|
||||
i, IP_VS_DBG_ADDR(svc->af, &dest->addr),
|
||||
atomic_read(&dest->weight));
|
||||
|
||||
/* Don't move to next dest until filling weight */
|
||||
if (++d_count >= atomic_read(&dest->weight)) {
|
||||
p = p->next;
|
||||
d_count = 0;
|
||||
}
|
||||
|
||||
}
|
||||
b++;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user