-
Notifications
You must be signed in to change notification settings - Fork 5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Disable tickless wothout kernel rebuild? #750
Comments
Try nohz=off in kernel cmdline. |
Thanks, kukabu. I tried that but it didn't make any difference. I see now that someone reported similar results earlier. Can you or anyone confirm that the stock Raspian supports nohz=off, and if not, could it be added, please? |
I'd like to second this request. A functioning nohz=off would be a valuable addition for people running or trying to run a stratum 1 NTP server, especially in light of this recent NTP bug fix: http://bugs.ntp.org/show_bug.cgi?id=2314 tl:dr; Until recently on tickless kernels NTP would look as though it were using the kernel clock discipline when instructed to but was in fact silently ignoring it. NTP now correctly fails to use the kernel discipline on tickless kernels, and will only use it on kernels with tickless disabled. So, though we can now easily enable PPS in the Raspbian kernel (hooray), NTP will ignore (and always has ignored) it at the kernel level (not hooray). |
@gm8arv has this issue been resolved? If yes, please close this issue. Thanks. |
The comment referred to a rather old version of the OS. Is there now a nohz=on option for the current Raspbian? |
Adding Default:
nohz=off:
So it appears that scheduling interrupts occur far more often. We've also switched to voluntary preemption, which may have a beneficial effect for more precise timestamping. |
Thanks for that, I will test it out here and see whether there really is any difference as far as NTP is concerend. |
When "nohz=off" was added, on some systems there was no change, on others the NTP jitter was "halved" (approximately). I ended up with: ~ 4 µs jitter on RasPi B/B+, 2 µs on model 2 B, and 1 µs on model 3, when using PPS sources with well under 0.1 µs jitter. Just as a rough guide. http://www.satsignal.eu/ntp/Raspberry-Pi-NTP.html#nohz Thanks again. |
The page table check trigger BUG_ON() unexpectedly when collapse hugepage: ------------[ cut here ]------------ kernel BUG at mm/page_table_check.c:82! Internal error: Oops - BUG: 00000000f2000800 [#1] SMP Dumping ftrace buffer: (ftrace buffer empty) Modules linked in: CPU: 6 PID: 68 Comm: khugepaged Not tainted 6.1.0-rc3+ #750 Hardware name: linux,dummy-virt (DT) pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : page_table_check_clear.isra.0+0x258/0x3f0 lr : page_table_check_clear.isra.0+0x240/0x3f0 [...] Call trace: page_table_check_clear.isra.0+0x258/0x3f0 __page_table_check_pmd_clear+0xbc/0x108 pmdp_collapse_flush+0xb0/0x160 collapse_huge_page+0xa08/0x1080 hpage_collapse_scan_pmd+0xf30/0x1590 khugepaged_scan_mm_slot.constprop.0+0x52c/0xac8 khugepaged+0x338/0x518 kthread+0x278/0x2f8 ret_from_fork+0x10/0x20 [...] Since pmd_user_accessible_page() doesn't check if a pmd is leaf, it decrease file_map_count for a non-leaf pmd comes from collapse_huge_page(). and so trigger BUG_ON() unexpectedly. Fix this problem by using pmd_leaf() insteal of pmd_present() in pmd_user_accessible_page(). Moreover, use pud_leaf() for pud_user_accessible_page() too. Fixes: 42b2547 ("arm64/mm: enable ARCH_SUPPORTS_PAGE_TABLE_CHECK") Reported-by: Denys Vlasenko <dvlasenk@redhat.com> Signed-off-by: Liu Shixin <liushixin2@huawei.com> Reviewed-by: David Hildenbrand <david@redhat.com> Acked-by: Pasha Tatashin <pasha.tatashin@soleen.com> Reviewed-by: Kefeng Wang <wangkefeng.wang@huawei.com> Acked-by: Will Deacon <will@kernel.org> Link: https://lore.kernel.org/r/20221117075602.2904324-2-liushixin2@huawei.com Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
[ Upstream commit 5b47348 ] The page table check trigger BUG_ON() unexpectedly when collapse hugepage: ------------[ cut here ]------------ kernel BUG at mm/page_table_check.c:82! Internal error: Oops - BUG: 00000000f2000800 [raspberrypi#1] SMP Dumping ftrace buffer: (ftrace buffer empty) Modules linked in: CPU: 6 PID: 68 Comm: khugepaged Not tainted 6.1.0-rc3+ raspberrypi#750 Hardware name: linux,dummy-virt (DT) pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : page_table_check_clear.isra.0+0x258/0x3f0 lr : page_table_check_clear.isra.0+0x240/0x3f0 [...] Call trace: page_table_check_clear.isra.0+0x258/0x3f0 __page_table_check_pmd_clear+0xbc/0x108 pmdp_collapse_flush+0xb0/0x160 collapse_huge_page+0xa08/0x1080 hpage_collapse_scan_pmd+0xf30/0x1590 khugepaged_scan_mm_slot.constprop.0+0x52c/0xac8 khugepaged+0x338/0x518 kthread+0x278/0x2f8 ret_from_fork+0x10/0x20 [...] Since pmd_user_accessible_page() doesn't check if a pmd is leaf, it decrease file_map_count for a non-leaf pmd comes from collapse_huge_page(). and so trigger BUG_ON() unexpectedly. Fix this problem by using pmd_leaf() insteal of pmd_present() in pmd_user_accessible_page(). Moreover, use pud_leaf() for pud_user_accessible_page() too. Fixes: 42b2547 ("arm64/mm: enable ARCH_SUPPORTS_PAGE_TABLE_CHECK") Reported-by: Denys Vlasenko <dvlasenk@redhat.com> Signed-off-by: Liu Shixin <liushixin2@huawei.com> Reviewed-by: David Hildenbrand <david@redhat.com> Acked-by: Pasha Tatashin <pasha.tatashin@soleen.com> Reviewed-by: Kefeng Wang <wangkefeng.wang@huawei.com> Acked-by: Will Deacon <will@kernel.org> Link: https://lore.kernel.org/r/20221117075602.2904324-2-liushixin2@huawei.com Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
rust: add async tcp connection support
I have recent upgraded a number of Raspberry Pi cards to the current distribution, and noted that the timekeeping performance for a stratum-1 server with PPS as reported by NTP offset is a factor of about two worse than with my previous kernel which was compiled without the "tickless" option. Current version: Linux raspi-6 3.12.35+ #730 PREEMPT Fri Dec 19 18:31:24 GMT 2014 armv6l GNU/Linux
Is there any way to select non-tickless operation at run time - such as a boot command-line option - so that the good timekeeping performance might be restored? I would very much prefer to use the stick kernel rather than recompiling - as the GPIO-PPS support is now built-in and very helpful thanks!
(It was suggested that I post this request here.)
Thanks,
David
The text was updated successfully, but these errors were encountered: