1. Если вы только начинаете программировать на ассемблере и не знаете с чего начать, тогда попробуйте среду разработки ASM Visual IDE
    (c) на правах рекламы
    Скрыть объявление

RTC баг на многоядерном ядре Windows XP

Тема в разделе "WASM.SOFTWARE", создана пользователем xpmod21, 30 май 2021.

Статус темы:
Закрыта.
  1. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.642
    Rel,

    В чём же по твоему ?

    Суть вопроса где бежит время:

    1. Железо(rtc).
    2. Ядро ос.
    3. Юзер апп.

    Изначально убегание времени показывалось через п.3(cpuz). Оказалось это кривой софт, так если переключить QPC с TSC на PMC, то время в этой тулзе начинает бежать; только в ней, не в системе!
    Далее ТС никакие измерения относительные времени не выполнял, кроме этой тулзой, поэтому не было ясно что глючит - эталонные таймеры или rtc(1-2-3). Только сейчас стало известно что он сравнивал часы шелла на экране с физическими. При этой путанице есчо не понимает что система читает/загружает во время работы(не только при загрузке) rtc; 1-2 с таким непониманием одно целое.. Дальнейшая бредятина" по твоему это попытка выяснить для начала что глючит 1-2 или 3. Оказалось что используемый софт кривой ошибка в нём.

    Как выяснить что 1 или 2 - блокировать загрузку часов(rtc) во время работы системы. Тогда станет ясно что именно бежит 1 или 2. При этом нужно исключить говнософт(3). Снова смотрим диз:

    Загрузка часов HalpWriteCmosTime() <- HalSetRealTimeClock(), вызывается из:

    - NtSetSystemTime
    при условии !ExpRealTimeIsUniversal

    - ExpSetSystemTime
    !ExpRealTimeIsUniversal

    - KeSetSystemTime
    при условии:

    Код (Text):
    1. VOID
    2. KeSetSystemTime (
    3.     IN PLARGE_INTEGER NewTime,
    4.     OUT PLARGE_INTEGER OldTime,
    5.     IN BOOLEAN AdjustInterruptTime,
    6.     IN PLARGE_INTEGER HalTimeToSet OPTIONAL
    7.     );
    HalTimeToSet задан,; таких ссылок нет, кроме при загрузке ос.

    Предположим что никто KeSetSystemTime(HalTimeToSet) не вызывает в системе. Тогда остаётся установить ExpRealTimeIsUniversal ключём реестра TimeZoneInformation.RealTimeIsUniversal: 1

    Далее смотрим на выбег времени ос - по таймерам(исключая rtc; eg rdtsc) или реальным часам. По расхождению времени станет ясно что бежит.
     
    Mikl___ нравится это.
  2. xpmod21

    xpmod21 Member

    Публикаций:
    0
    Регистрация:
    30 май 2021
    Сообщения:
    65
    Процитирую первый абзац данной темы:

    Я думаю все (кроме вас) поняли, что речь идет о системных часах. Системные часы - это то, что показывает текущую дату (год, месяц, день) и время (часы, минут, секунды). Подсчет времени выполняется на микросхеме RTC таймера, тактируемой часовым кварцем 32768 Гц. Проблема в том, что системное время, при использовании Хрома начинает спешить, если сравнивать его с любыми часами, допустим наручными.

    На всякий случай скину картинку, что такое наручные часы.

    upload_2021-11-16_23-23-1.jpeg
     
  3. ormoulu

    ormoulu Active Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    758
    Поскольку в первый раз меня проигнорировали, спрошу снова.
    Почему не подходит синхронизация с серверами времени?
    Судя по ссылкам f13nd, проблема актуальна для всех вендов, в том числе последних. Возможно, дело в криворуких кодерах M$ (накодивших тем не менее идеальную XP), может тяжкое наследие OS/2, а может просто китайские клепатели матплат что-то не так скопировали.
    Везде по этому поводу предлагается простое и очевидное решение.
    http://www.helpwithwindows.com/WindowsXP/tune-17.html
    В чем проблема? У меня на старом ноуте сдохла батарейка, там время либо стояло при выключении, либо сбрасывалось на 1900+что-то там, и ничего, все прекрасно синхронизировалось и работало.
    --- Сообщение объединено, 17 ноя 2021 ---
    Возможно Инде был сбит с толку вашими пространными историями про то как разный говнософт дрочит/дрючит RTC.
     
  4. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    4.442
    Ну если решение не включает в себя патчинг байтиков, то это уже и не решение вовсе.
     
  5. ormoulu

    ormoulu Active Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    758
    На другом форуме (может и не только там) вопрос уже задавали, что ожидаемо. Ответ ТС что-то в духе "я весь такой дотошный и готов задолбать весь интернет, а пользователи и программисты ужас какие тупые и кстати хочу еще возмещение от гугла за багу в хроме".
    В общем, где-то протечка (тоже ожидаемо и ни разу не удивительно).
     
  6. xpmod21

    xpmod21 Member

    Публикаций:
    0
    Регистрация:
    30 май 2021
    Сообщения:
    65
    Я не знаю, чем был сбит Инде. Похоже это горе от ума...


    Я уже писал:
    1) ПК может банально не быть подключенным к интернету
    2) ПК может использовать не прямое подключение, а непример через прокси-сервер. Короче Браузер работать будет, а системная синхронизилка не будет (она не умеет работать через прокси)
    3) На ПК могут быть запущены критичные ко времени процессы и скачкообразный возврат на 1-2-3 минуты назад может привести к сбоям
    4) На ПК может вестить лог, установлена база и т.д. с привязкой ко времени и возврат времени точно вызовет коллизии
    5) И вообще любой ХР-шечник решает проблему, семерочник - её обходит, десяточник - её не замечает
     
  7. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    4.442
    Горе от грибов и пивасика, тело 20-летнего осталось, а мозг сбоит.

    Далеко не так, любой XP-шечник себе проблему создает, а потом заливает весь интернет слезами и соплями из-за нее.

    Да тут у многих протечки, мне последнее время кажется, что тут нормальных людей и не осталось (я тоже ненормальный так то).

    Часы нормально не ходють у человека, он хочет в интернетах сидеть, ютюбчик смотреть, а единственный браузер, который удивительным образом в 2021 году говорит, что поддерживает ХР, на самом деле нормально на ХР не работает и часы сбивает. У человека вон 100500 бд запущено на ХР, которым нужны точные часы, а в интернетиках сидеть тоже хочется, и как быть человеку? Правильно. Ставить себе Линукс))
     
  8. ormoulu

    ormoulu Active Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    758
    А хромом браузят оффлайновый веб архив? Ставьте оперу 4.0 и радуйтесь.
    Чиво? Прокся тоже на любительской сборке XP что-ли?
    Ну это вам ось реального времени нужна с соответствующим оборудованием, а не XP. Ну или настраивайте синхронизацию ntp раз в минуту и радуйтесь.
    Тут 100% ntp надо
    Аххахах
     
  9. xpmod21

    xpmod21 Member

    Публикаций:
    0
    Регистрация:
    30 май 2021
    Сообщения:
    65
    Господа, меньше лирики.
    Если есть советы по делу - подсказки или любая техническая информация, которая поможет Инди - пжлста высказывайте.
     
  10. ormoulu

    ormoulu Active Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    758
    Карочи, вот вам предложение в стиле и духе топика.
    Пропатчить WINMM!timeBeginPeriod чтоб всегда возвращал успех и ничего не менял. Вроде должно быть несложно, даже программист Ксения справится.
     
  11. M0rg0t

    M0rg0t Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 окт 2010
    Сообщения:
    1.374
    Rel, если ты понял в чем суть, то подскажи, почему нельзя
    предлагал этот вариант страницей ранее. Инди написал бы, что кодопатч это зло, но как бы если задачу решает, то почему нет. Или я не так понял эту очередную задачу века?
     
  12. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    4.442
    Спецу не понять магла, а маглу не понять спеца, это нормально. Я с вами согласен в этом вопросе, но мы - маглы, а не спецы, поэтому и согласны друг с другом. Главное, чтобы потом не возник какой-то софт, который будет требовать, чтобы ваша заглушка не была заглушкой. Хотя, кого волнует, вся это ХРшная история - велосипед из склееных жевачкой костылей, одним меньше или одним больше...
    --- Сообщение объединено, 17 ноя 2021 ---
    Программист Ксения затащит...
     
  13. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.642
    ormoulu,

    В ней первые две инстр - проверка интернал переменной, если установлена, то переход на GTC. Видимо при отладке глючило забыли убрать :)

    Фиксить поверху не проблема, интересно разобраться. #241 блок часов от загрузки, блок чтения #208. Тогда останется только прерывание от часов, само их значение будет отвязано от ос(xpmod21 новость да?). Далее можно подождать и посмотреть на сколько будет разбежка временная.
     
  14. xpmod21

    xpmod21 Member

    Публикаций:
    0
    Регистрация:
    30 май 2021
    Сообщения:
    65
    Есть что-нибудь для теста? В распоряжении имею 2 ПК на которых проявляется RTC bug.
     
  15. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.642
    xpmod21,

    Пропиши указанный ключ и запусти ту консольную прогу для установки флага. Это должно разорвать интерфейс ос к таймеру.
     
  16. xpmod21

    xpmod21 Member

    Публикаций:
    0
    Регистрация:
    30 май 2021
    Сообщения:
    65
    Не понял. Куда и какой ключ прописать?
     
  17. Aiks

    Aiks Member

    Публикаций:
    0
    Регистрация:
    16 апр 2017
    Сообщения:
    109
    Адрес:
    Украина
    Смотри сообщение №236

    "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Executive"
    Параметр "MaxTimeSeparationBeforeCorrect", тип "DWORD", значение 60.
     
  18. Intro

    Intro Active Member

    Публикаций:
    0
    Регистрация:
    29 авг 2009
    Сообщения:
    313
    У меня был(сейчас обновил ПК) ASUS M4N68T-M LE V2, проц Athlon II x4 640 с 2011 года, WinXPSP3 и Win7SP1, за эти 10 лет я вообще проблем с часами на ХР не наблюдал, интернета порой не было больше чем по полгода, т.е. не было синхронизаций, при этом ПК пользовался интенсивно. Но про эту проблему только из этого топика узнал, значит какие-то матки работают нормально, или я что-то не понял в чём суть проблемы.
    Вот у меня проблема что на новый ПК, установить ХР можно, но не можно, и дров на 1050 нету вообще. Так что придётся старый комп восстанавливать, только ещё некоторых железок закуплю. Да лучший вариант с ХР, это достаточно старый ПК, например моя старая матка, феном х4, или х6, 8+8 DDR3, RTX980(кстати не дешёвая штука) в максимальной прокачки с ХР. Для чего? Для старых игр в основном.
     
  19. xpmod21

    xpmod21 Member

    Публикаций:
    0
    Регистрация:
    30 май 2021
    Сообщения:
    65
    В данном месте такого параметра вообще не существует. Я могу его создать, но не факт, что он будет использоваться. Этот рецепт для ХП или для более новых систем??

    Может вы не пользовались Хромом или другими программами, которые активно дрюкают таймер. Или в памяти висела какая-то другая программа, которая удерживала таймер на 1 мс и не отпускала. Среди таких программ, например ICQ, медиапроигрыватели. На всех ПК, которые мне были доступны - проблему я наблюдал.

    Запустите программу, которая показывает период в онлайне (№1) вы должны убедиться, что в простое циферка 15.6 мс. Потом запустите программу для накрутки (№2). Больше ничего не запускайте и подождите пол-часа - час. Сравните время с точными часами. Минимум на минуту время уйдет вперёд.

    upload_2021-11-18_6-59-39.png
     
  20. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    4.442
    Да, программист Ксения гуано не посоветует...
     
Статус темы:
Закрыта.