Skip to contentSkip to conversation

stock 2.4.20: loading amd76x_pm makes time jiggle on A7M266-D

DISCUSSION Kay Diederichs 3 participants 6 messages Dec 4, 2002 – Dec 5, 2002

lore
Share & tools
lore
#0 lore raw

the subject says it all:

if I use the powersaving module amd76x_pm then the time is not kept. The hardware is Asus A7M266-D with 2 MP1900 processors, BIOS is 1004 (but I tried later BIOS versions as well).

Symptoms are:

- ping times vary and there are 'time of day goes back' messages:

64 bytes from xx (1.2.3.4): icmp_seq=4 ttl=64 time=19.549 msec 64 bytes from xx (1.2.3.4): icmp_seq=5 ttl=64 time=2.684 sec
Warning: time of day goes back, taking countermeasures. 64 bytes from xx (1.2.3.4): icmp_seq=6 ttl=64 time=9.799 msec 64 bytes from xx (1.2.3.4): icmp_seq=7 ttl=64 time=88 usec 64 bytes from xx (1.2.3.4): icmp_seq=8 ttl=64 time=20.011 msec (addresses edited)

- ntpq -p shows a very high jitter:
remote refid st t when poll reach delay offset
jitter
==============================================================================
loop8.biologie. 134.34.3.18 2 u 6 64 77 0.807 -1920.6
1804.31
helix1.biologie 134.34.3.18 2 u 13 64 77 0.348 -1914.9
1803.99

- ntpd complains:

Dec  3 19:18:51 turn22 ntpd[730]: synchronisation lost
Dec  3 20:12:15 turn22 ntpd[730]: synchronisation lost
Dec  3 22:50:40 turn22 ntpd[730]: synchronisation lost
Dec  3 23:01:18 turn22 ntpd[730]: synchronisation lost

- the program 'check_time' (attached) which was once posted by R. Johnson on this list shows that the internal timekeeping is inconsistent:

Time = 3dedf443
Last = 3dedf440
Time = 3dedf440
Last = 3dedf443
Time = 3dedf443
Last = 3dedf440
Time = 3dedf440
Last = 3dedf443
Time = 3dedf443
Last = 3dedf440
Time = 3dedf440
Last = 3dedf443
Time = 3dedf443
Last = 3dedf440
Time = 3dedf440

Any ideas? Am I really the only one who has seen these problems (on 4 identical machines, BTW)?

Kay

Signature · 6 lines
Kay Diederichs         http://strucbio.biologie.uni-konstanz.de/~kay 
email: [email protected]  Tel +49 7531 88 4049 Fax 3183
When replying to my email, please remove the blanks before and after the
"@" !
Fakultaet fuer Biologie, Universitaet Konstanz, Box M656, D-78457
Konstanz

#include <stdio.h>
#include <time.h>

int main()

{ 
    time_t tim; 
    time_t last; 
    (void)time(&last); 
    (void)time(&tim); 
    for(;;) 
    { 
        (void)time(&tim); 
        if(tim != last) 
        { 
            if((last +1) != tim) 
            { 
                fprintf(stderr,"Time = %08lx\n", tim); 
                fprintf(stderr,"Last = %08lx\n", last); 
            } 
            last = tim; 
        } 
    } 
} 
#1 lore raw
Quoted 5 lines · Kay Diederichs

the subject says it all:

if I use the powersaving module amd76x_pm then the time is not kept. The hardware is Asus A7M266-D with 2 MP1900 processors, BIOS is 1004 (but I tried later BIOS versions as well).

Boot with "notsc". Unfortunately I dont think there is a way I can make the module turn off tsc at runtime.

#2 lore raw
Quoted 10 lines · Alan Cox
Quoted 5 lines · Kay Diederichs

the subject says it all:

if I use the powersaving module amd76x_pm then the time is not kept. The hardware is Asus A7M266-D with 2 MP1900 processors, BIOS is 1004 (but I tried later BIOS versions as well).

Boot with "notsc". Unfortunately I dont think there is a way I can make the module turn off tsc at runtime.

Hi

I've had the same issues and a lot of overruns in eth0 plus bandwith decreased to one tenth. Does this happen because disconnecting the athlon FSB makes impossible for the ethernet interface to perform dma on memory?

Regards.

Signature · 6 lines
O   _____________________________________________________________   O
|  /-| Pedro Larroy Tovar. PiotR | http://omega.resa.es/piotr  |-\  |
| /--|            No MS-Office attachments please.             |--\ |
o-|--|              e-mail: [email protected]                |--|-o 
   \-|   finger [email protected] for public key and info    |-/  
    -------------------------------------------------------------
#3 lore raw
Quoted 3 lines · Pedro Larroy

I've had the same issues and a lot of overruns in eth0 plus bandwith decreased to one tenth. Does this happen because disconnecting the athlon FSB makes impossible for the ethernet interface to perform dma on memory?

The system has to wake back up at that point. There are some tunables in the module if you want to play

#4 lore raw
In reply to Alan Cox
Quoted 10 lines · Alan Cox
Quoted 5 lines · Kay Diederichs

the subject says it all:

if I use the powersaving module amd76x_pm then the time is not kept. The hardware is Asus A7M266-D with 2 MP1900 processors, BIOS is 1004 (but I tried later BIOS versions as well).

Boot with "notsc". Unfortunately I dont think there is a way I can make the module turn off tsc at runtime.

To use "notsc" I had to set CONFIG_X86_TSC_DISABLE=y , but then init fails (booting stops after freeing some kernel memory). Configure.help says one has to install a TSC-checking glibc if that happens; I installed the latest glibc-2.2.4-31 from redhat/7.2/updates but still init fails. Are there RH7.2 compatible versions of glibc which are TSC-checking?

I also tried
echo 01 >/proc/irq/0/smp_affinity
and it seems to improve the situation but I'm not sure if this is a good workaround.

Kay

Signature · 6 lines
Kay Diederichs         http://strucbio.biologie.uni-konstanz.de/~kay 
email: Kay.Diederichs @ uni-konstanz.de  Tel +49 7531 88 4049 Fax 3183
When replying to my email, please remove the blanks before and after the
"@" !
Fakultaet fuer Biologie, Universitaet Konstanz, Box M656, D-78457
Konstanz
#5 lore raw
Quoted 3 lines · Kay Diederichs

installed the latest glibc-2.2.4-31 from redhat/7.2/updates but still init fails. Are there RH7.2 compatible versions of glibc which are TSC-checking?

The -i386 one rather than the -i686 one