mirror of
https://gitlab.com/chrony/chrony.git
synced 2025-12-05 04:15:06 -05:00
ntp: add maximum PHC poll interval
Specify maxpoll for HW timestamping (default minpoll + 1) to track the PHC well even when there is little NTP traffic on the interface. After each PHC reading schedule a timeout according to the maxpoll. Polling between minpoll and maxpoll is still triggered by HW timestamps. Wait for the first HW timestamp before adding the timeout to avoid polling PHCs on interfaces that are enabled in the configuration but not used for NTP. Add a new scheduling class to separate polling of different PHCs to avoid too long intervals between processing I/O events.
This commit is contained in:
@@ -47,9 +47,10 @@ for client_conf in \
|
||||
check_log_messages "Received error.*message.*tss=KH" 195 200 || test_fail
|
||||
check_log_messages "Updated RX timestamp.*tss=1" 1 1 || test_fail
|
||||
check_log_messages "Updated RX timestamp.*tss=2" 195 200 || test_fail
|
||||
check_log_messages "Polling PHC" 195 220 || test_fail
|
||||
if echo "$client_conf" | grep -q nocrossts; then
|
||||
check_log_messages "update_tx_timestamp.*Updated" 180 200 || test_fail
|
||||
check_log_messages "update_tx_timestamp.*Unacceptable" 0 10 || test_fail
|
||||
check_log_messages "update_tx_timestamp.*Unacceptable" 0 13 || test_fail
|
||||
else
|
||||
check_log_messages "update_tx_timestamp.*Updated" 50 140 || test_fail
|
||||
check_log_messages "update_tx_timestamp.*Unacceptable" 50 140 || test_fail
|
||||
@@ -57,4 +58,32 @@ for client_conf in \
|
||||
fi
|
||||
done
|
||||
|
||||
server_conf+="
|
||||
server 192.168.123.2 minpoll 1 maxpoll 1 noselect"
|
||||
|
||||
for maxpoll in -1 0 1; do
|
||||
client_conf="hwtimestamp eth0 minpoll -1 maxpoll $maxpoll nocrossts"
|
||||
run_test || test_fail
|
||||
check_chronyd_exit || test_fail
|
||||
check_source_selection || test_fail
|
||||
check_sync || test_fail
|
||||
|
||||
if check_config_h 'FEAT_DEBUG 1'; then
|
||||
case $maxpoll in
|
||||
-1)
|
||||
check_log_messages "Polling PHC on eth0$" 360 380 || test_fail
|
||||
check_log_messages "Polling PHC.*before" 3 25 || test_fail
|
||||
;;
|
||||
0)
|
||||
check_log_messages "Polling PHC on eth0$" 8 45 || test_fail
|
||||
check_log_messages "Polling PHC.*before" 150 190 || test_fail
|
||||
;;
|
||||
1)
|
||||
check_log_messages "Polling PHC on eth0$" 1 1 || test_fail
|
||||
check_log_messages "Polling PHC.*before" 194 199 || test_fail
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
done
|
||||
|
||||
test_pass
|
||||
|
||||
Reference in New Issue
Block a user