threads_per_subcore
extern int threads_per_subcore;
return cpu & (threads_per_subcore - 1);
int threads_per_core, threads_per_subcore, threads_shift __read_mostly;
EXPORT_SYMBOL_GPL(threads_per_subcore);
threads_per_subcore = tpc;
return threads_per_subcore;
if (smt_mode > threads_per_subcore)
while (++thr < threads_per_subcore)
for (thr = 1; thr < threads_per_subcore; ++thr) {
if (n_subcores > 1 && threads_per_subcore < MAX_SMT_THREADS)
((vc->num_threads > threads_per_subcore) || !on_primary_thread())) {
subcore_size = threads_per_subcore;
if (split == 1 && threads_per_subcore == MAX_SMT_THREADS &&
for (thr = 1; thr < threads_per_subcore; ++thr)
kvm->arch.smt_mode = threads_per_subcore;
return threads_per_subcore;
r = threads_per_subcore;
r = ((threads_per_subcore << 1) - 1);
int sibling_mask_first_cpu = (1 << threads_per_subcore) - 1;
int offset = (tid / threads_per_subcore) * threads_per_subcore;
threads_per_subcore = threads_per_core / subcores_per_core;