|
@@ -4054,9 +4054,9 @@ static bool pool_unworkable(const struct pool * const pool)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
static
|
|
static
|
|
|
-bool pool_actively_in_use(const struct pool * const pool, const struct pool *cp)
|
|
|
|
|
|
|
+bool pool_actively_desired(const struct pool * const pool, const struct pool *cp)
|
|
|
{
|
|
{
|
|
|
- if (pool_unworkable(pool))
|
|
|
|
|
|
|
+ if (pool->enabled != POOL_ENABLED)
|
|
|
return false;
|
|
return false;
|
|
|
if (pool_strategy == POOL_LOADBALANCE || pool_strategy == POOL_BALANCE)
|
|
if (pool_strategy == POOL_LOADBALANCE || pool_strategy == POOL_BALANCE)
|
|
|
return true;
|
|
return true;
|
|
@@ -4065,6 +4065,12 @@ bool pool_actively_in_use(const struct pool * const pool, const struct pool *cp)
|
|
|
return (pool == cp);
|
|
return (pool == cp);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+static
|
|
|
|
|
+bool pool_actively_in_use(const struct pool * const pool, const struct pool *cp)
|
|
|
|
|
+{
|
|
|
|
|
+ return (!pool_unworkable(pool)) && pool_actively_desired(pool, cp);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
/* In balanced mode, the amount of diff1 solutions per pool is monitored as a
|
|
/* In balanced mode, the amount of diff1 solutions per pool is monitored as a
|
|
|
* rolling average per 10 minutes and if pools start getting more, it biases
|
|
* rolling average per 10 minutes and if pools start getting more, it biases
|
|
|
* away from them to distribute work evenly. The share count is reset to the
|
|
* away from them to distribute work evenly. The share count is reset to the
|