Summary: | Не пишется время в RTC при завершении работы | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Andrey Liakhovets <a.o.liakh> |
Component: | startup | Assignee: | Alexey Gladkov <legion> |
Status: | NEW --- | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P3 | CC: | dd1email, evg, glebfm, ldv, legion |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux |
Description
Andrey Liakhovets
2011-12-19 19:22:53 MSK
clock_unsynced возвращает EXIT_SUCCESS если и только если adjtimex(2) возвращает статус STA_UNSYNC. По идее, только в этом случае время нужно синхронизировать вручную. Что у вас, кстати, показывает $ strace -eadjtimex clock_unsynced (В ответ на комментарий №1) > clock_unsynced возвращает EXIT_SUCCESS если и только если adjtimex(2) > возвращает статус STA_UNSYNC. По идее, только в этом случае время нужно > синхронизировать вручную. То есть это именно так и задумано? Только несинхронизированное системное время может быть записано в RTC при выключении? Предполагается, что синхронизированное время и так периодически записывается в RTC, как сказано в документации ядра (rtc.txt)? На указанной машине время почти всегда синхронизировано через NTP, но в RTC ничего не менялось. Поэтому и возник этот баг. Или ядро пишет в RTC только минуты и секунды? (встретил такое на сайте ntp.org, код не смотрел) > Что у вас, кстати, показывает > $ strace -eadjtimex clock_unsynced adjtimex({modes=0, offset=20914, freq=-1964601, maxerror=179152, esterror=379, status=STA_PLL|0x2000, constant=8, precision=1, tolerance=32768000, time={1326818814, 27600648}, tick=10000, ppsfreq=0, jitter=0, shift=0, stabil=0, jitcnt=0, calcnt=0, errcnt=0, stbcnt=0}) = 0 (TIME_OK) +++ exited with 1 +++ (In reply to comment #2) > (В ответ на комментарий №1) > > clock_unsynced возвращает EXIT_SUCCESS если и только если adjtimex(2) > > возвращает статус STA_UNSYNC. По идее, только в этом случае время нужно > > синхронизировать вручную. > > То есть это именно так и задумано? > Только несинхронизированное системное время может быть записано в RTC при > выключении? > Предполагается, что синхронизированное время и так периодически записывается в > RTC, как сказано в документации ядра (rtc.txt)? Да, в то время, когда был реализован нынешний механизм с clock_unsynced, ядро именно так себя и вело: если ntpd снимал флаг STA_UNSYNC, то ядро само периодически синхронизировало системное время с RTC. > На указанной машине время почти всегда синхронизировано через NTP, но в RTC > ничего не менялось. Поэтому и возник этот баг. > Или ядро пишет в RTC только минуты и секунды? (встретил такое на сайте ntp.org, > код не смотрел) Надо проверить, не случилось ли в ядре радикального изменения поведения в этой ситуации. > > Что у вас, кстати, показывает > > $ strace -eadjtimex clock_unsynced > > adjtimex({modes=0, offset=20914, freq=-1964601, maxerror=179152, esterror=379, > status=STA_PLL|0x2000, constant=8, precision=1, tolerance=32768000, > time={1326818814, 27600648}, tick=10000, ppsfreq=0, jitter=0, shift=0, > stabil=0, jitcnt=0, calcnt=0, errcnt=0, stbcnt=0}) = 0 (TIME_OK) > +++ exited with 1 +++ STA_PLL|STA_NANO, вроде бы ничего особенного. |