LINUX.ORG.RU

Куда делись остальные clocksource?

 , ,


0

1
$ cat /sys/devices/system/clocksource/clocksource0/available_clocksource 
tsc jiffies

А где всякие HPET, PIT? Если указать параметр ядра notsc, то оно просто виснет нафиг.

Зачем мне это? Потому что я извращенец. Потому что есть подозрения, что глюки на моём планшете вызваны именно TSC, а именно - тем, что при каких-то условиях его частота может смениться на более низкую без ведома ядра (может UEFI в SMM что-то мутит, я не знаю).

Сначала я думал, что это просто тормоза, но затем заметил особенности - они стабильны и касаются всего, что отмеряет время. Все анимации становятся в N раз медленнее. При закачке файла любым методом (включая, консольный wget) скорость закачки завышается в N раз (допустим, реальная 100-200 КБ/сек, а отображается типа 800-900). htop, iotop при этом не выдают ничего необычного, в подкачке тоже пусто. То есть видимых причин для лагов нет, а всё тормозит.

Итак, очевидное решение - отказаться от использования TSC. Но как? По своему старому опыту osdev я помню, что у IBM PC есть Programmable Interrupt Timer. Который ещё из коробки имеет частоту 18.2 Гц, но его можно разогнать (что и делают нормальные ОС). Почему ядро не даёт мне его выбрать? Или его уже выпилили?

Ну или в крайнем случае заставить ядро, скажем, каждые 5 секунд переинициализировать TSC.

P. S.: Процессор - Intel Atom Z3735.

★★★★★

Последнее исправление: cetjs2 (всего исправлений: 2)

А я предупреждал.

anonymous
()

Странно.

«tsc hpet acpi_pm» на Intel(R) Atom(TM) CPU 330

но ядро самосборное 3.18.х

vel ★★★★★
()

Потому что есть подозрения, что глюки на моём планшете вызваны именно TSC

TSC - единственно рабочий в твоем случае. При jiffies все виснет, это точно.

при каких-то условиях его частота может смениться на более низкую без ведома ядра

Было что-то похожее на какой-то старой версии ядра, система не понимала что intel_pstate меняет частоту, но это было давно... Что в /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver (должно быть intel_pstate)?

P.S. Гульчатай покажи хоть что-нибудь (config, dmesg...)

arson ★★★★★
()
Ответ на: комментарий от arson

dmesg: http://pastebin.com/rfvvm8Lw

config: http://pastebin.com/6a6J6VhS (модули soc_button_array и gpio_keys собраны отдельно)

$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver 
intel_pstate

Лаги практически всегда возникают именно после запуска Google Chrome, но пропадают лишь после перезагрузки (закрытие хрома, перезапуск иксов - ничего не меняется).

TSC - единственно рабочий в твоем случае.

Я правильно понимаю, что старый добрый PIT уже совсем не обязан встречаться на современных PC? А я думал, что он везде есть, как и реальный режим процессора и текстовый режим дисплея.

KivApple ★★★★★
() автор топика
Последнее исправление: KivApple (всего исправлений: 3)
Ответ на: комментарий от KivApple

[ 5.880985] clocksource: Switched to clocksource refined-jiffies

И с какого боку это tsc?! Включай его принудительно: clocksource=tsc в параметры ядра, см. /sys/bus/clocksource/devices/clocksource0/current_clocksource

arson ★★★★★
()
Ответ на: комментарий от arson

Включил. Хм... Просто я как-то раз смотрел current_clocksource и там был tsc. Судя по всему при определённых обстоятельствах он кажется ядру нестабильным и он переключается на резервный вариант (запись об этом есть в dmesg), который глючит. Иногда сразу при загрузке (как в этот раз), иногда через какое-то время.

Большое тебе спасибо. Вроде сейчас не глючит, хотя строит побольше потестировать.

KivApple ★★★★★
() автор топика
Последнее исправление: KivApple (всего исправлений: 3)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.