With the "core wars" starting (16core/32thread "consumer" CPUs announced), maybe it's time to add an upper limit? Waking up a core from low power state has it's latency, it's sometimes faster to just do several jobs on an active core than to wake another one (which will also cause more lock contention, the core will just see the job was already taken by someone else and go back to sleep).
Gražvydas On Thu, Jun 1, 2017 at 9:18 PM, Marek Olšák <mar...@gmail.com> wrote: > From: Marek Olšák <marek.ol...@amd.com> > > Reserve one core for other things (like draw calls). > --- > src/gallium/drivers/radeonsi/si_pipe.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/src/gallium/drivers/radeonsi/si_pipe.c > b/src/gallium/drivers/radeonsi/si_pipe.c > index de4e5da..4704304 100644 > --- a/src/gallium/drivers/radeonsi/si_pipe.c > +++ b/src/gallium/drivers/radeonsi/si_pipe.c > @@ -874,22 +874,25 @@ struct pipe_screen *radeonsi_screen_create(struct > radeon_winsys *ws) > > si_init_screen_state_functions(sscreen); > > if (!r600_common_screen_init(&sscreen->b, ws) || > !si_init_gs_info(sscreen) || > !si_init_shader_cache(sscreen)) { > FREE(sscreen); > return NULL; > } > > - /* Only enable as many threads as we have target machines and CPUs. */ > + /* Only enable as many threads as we have target machines, but at most > + * the number of CPUs - 1 if there is more than one. > + */ > num_cpus = sysconf(_SC_NPROCESSORS_ONLN); > + num_cpus = MAX2(1, num_cpus - 1); > num_compiler_threads = MIN2(num_cpus, ARRAY_SIZE(sscreen->tm)); > > if (!util_queue_init(&sscreen->shader_compiler_queue, "si_shader", > 32, num_compiler_threads)) { > si_destroy_shader_cache(sscreen); > FREE(sscreen); > return NULL; > } > > si_handle_env_var_force_family(sscreen); > -- > 2.7.4 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev