Могу ли я использовать идентификатор физического сокета ЦП, чтобы определить, к какому кластеру он принадлежит на SoC ARM big.LITTLE?

Очень поздний ответ, но TurnKey Linux довольно минималистичный дистрибутив, предназначенный только для командной строки. Последний Core ISO (, который также может работать в режиме реального времени ), занимает чуть более 200 МБ.

Core — это базовое безголовое устройство, основанное на Debian Jessie. Он включает в себя некоторые дополнения, которые вы, возможно, не захотите урезать еще больше (Webmin и Webshell для начинающих ).

0
09.10.2019, 20:51
1 ответ

После просмотра исходного кода Linux. Я считаю, что мои предположения верны, и кажется, насколько я мог понять, что они используют физический _идентификатор пакета _для идентификации кластера в драйвере для архитектур big.LITTLE в два следующих метода.

static inline int raw_cpu_to_cluster(int cpu)
{
    return topology_physical_package_id(cpu);
}
static inline int cpu_to_cluster(int cpu)
{
    return is_bL_switching_enabled() ?
        MAX_CLUSTERS : raw_cpu_to_cluster(cpu);
}

А затем использовать его для получения таблицы частот другим методом, который я тоже хочу сделать:

static int bL_cpufreq_init(struct cpufreq_policy *policy)
{
    u32 cur_cluster = cpu_to_cluster(policy->cpu);

   /* Some code here */

   policy->freq_table = freq_table[cur_cluster];

   /* Some more code here */
}

Итак, я думаю, что могу подсчитать количество ядер ЦП в каждом кластере, взглянув на физический _идентификатор пакета _для каждого из них.

0
28.01.2020, 03:13

Теги

Похожие вопросы