[prev in list] [next in list] [prev in thread] [next in thread] 

List:       uclibc
Subject:    Can't get nanosleep to work for small delays
From:       grant.b.edwards () gmail ! com (Grant Edwards)
Date:       2011-09-20 23:18:20
Message-ID: j5b6vs$o19$1 () dough ! gmane ! org
[Download RAW message or body]

On 2011-09-20, Grant Edwards <grant.b.edwards at gmail.com> wrote:
> I'm running a 2.6.30 kernel on an Atmel AT91SAM9g20 with uClibc
> 0.9.30.3 built with gcc 4.4.6.
>
> The problem is that when calling nanosleep with small delays, the
> calling task doesn't wake up until the next 4ms tick.
>
> Here are what I _think_ are the relevent portions of kernel config:
>
>    CONFIG_TICK_ONESHOT=y
>    CONFIG_NO_HZ=y
>    CONFIG_HIGH_RES_TIMERS=y
>    CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
>    CONFIG_VMSPLIT_3G=y
>    # CONFIG_VMSPLIT_2G is not set
>    # CONFIG_VMSPLIT_1G is not set
>    CONFIG_PAGE_OFFSET=0xC0000000
>    CONFIG_PREEMPT=y
>    CONFIG_HZ=250
>    CONFIG_AEABI=y
>    CONFIG_OABI_COMPAT=y

[...]
> What I'm trying to figure out is what piece is missing...

After some more googling and experimentation, I figured out that on
Atmel AT91 targets you have to enable ATMEL_TCLIB in the kernel build
in order to get high-res timers.  [It would be nice if that were
mentioned in the help text for ATMEL_TCLIB, but it isn't.]

-- 
Grant



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic