lkml.org 
[lkml]   [2005]   [Feb]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] Dynamic tick, version 050127-1
    * Pavel Machek <pavel@ucw.cz> [050205 15:08]:
    > Hi!
    >
    > > > > > It could also be that the reprogamming of PIT timer does not work on
    > > > > > your machine. I chopped off the udelays there... Can you try
    > > > > > something like this:
    > > > >
    > > > > I added the udelays, but behaviour did not change.
    > > >
    > > > Yeah, and if the first patch was working better, that means the PIT
    > > > interrupts work. I'll do another version of the patch where PIT
    > > > interrupts work again without local APIC needed, let's see what
    > > > happens with that.
    > >
    > > I think something broke TSC timer after the first patch, but I could
    > > not figure out yet what. So the bad combo might be local APIC + TSC.
    > > At least I'm seeing similar problems with local APIC + TSC timer.
    > >
    > > Attached is a slightly improved patch, but the patch does not fix
    > > the TSC problem. It just fixes compile without local APIC, and
    > > booting SMP kernel on uniprocessor machine.
    > >
    > > Currently the suggested combo is local APIC + ACPI PM timer...
    >
    > Ok, works slightly better: time no longer runs 2x too fast. When TSC
    > is used, I get same behaviour as before ("sleepy machine"). With
    > "notsc", machine seems to work okay, but I still get 1000 timer
    > interrupts a second.

    Sounds like dyn-tick did not get enabled then, maybe you don't have
    CONFIG_X86_PM_TIMER, or don't have ACPI PM timer on your board?

    After modifying I8042_POLL_PERIOD and leaving out CONFIG_NETFILTER
    I'm getting roughly 6HZ timer rate when idle :)

    $ dmesg | grep -i "time\|tick\|apic"
    ACPI: PM-Timer IO Port: 0x1008
    Kernel command line: root=/dev/nfs ip=dhcp ro console=ttyS0,115200
    lapic init=/bin/minit
    Local APIC disabled by BIOS -- reenabling.
    Found and enabled local APIC!
    mapped APIC to ffffd000 (fee00000)
    Using pmtmr for high-res timesource
    dyn-tick: Registering dynamic tick timer
    per-CPU timeslice cutoff: 365.35 usecs.
    task migration cache decay timeout: 1 msecs.
    Machine check exception polling timer started.
    Real Time Clock Driver v1.12
    dyn-tick: Maximum ticks to skip limited to 2678
    dyn-tick: Timer using dynamic tick

    $ cat /proc/interrupts | grep timer && sleep 10 && cat /proc/interrupts | grep timer
    0: 10689 XT-PIC timer
    0: 10745 XT-PIC timer

    > > And if that works, changing the I8042_POLL_PERIOD from HZ/20 in
    > > drivers/input/serio/i8042.h to something like HZ increases the
    > > sleep interval quite a bit. I think I had lots of polling also in
    > > CONFIG_NETFILTER, but I haven't verified that.
    >
    > Okay, I set POLL_PERIOD to 5*HZ, and disabled USB. Perhaps it will
    > sleep better now?

    Sounds like your system is not running with the dyn-tick... I'll try
    to fix that TSC bug.

    Tony
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 14:10    [W:6.273 / U:0.084 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site