/* The answer is rounded up to at least 1, but may not equal or exceed the maximum number of the threads in the pool. This means we always have at least one thread that can process slow work items, and we always have at least one thread that won't get tied up doing so.  */
static unsigned slow_work_calc_vsmax(void)
/* The answer is rounded up to at least 1, but may not equal or exceed the maximum number of the threads in the pool. This means we always have at least one thread that can process slow work items, and we always have at least one thread that won't get tied up doing so.  */
static unsigned slow_work_calc_vsmax(void)
{
	unsigned vsmax;
	vsmax = atomic_read(&slow_work_thread_count) * vslow_work_proportion;
	vsmax /= 100;
	vsmax = max(vsmax, 1U);
	return min(vsmax, slow_work_max_threads - 1);
}