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

And uClibc config:

   UCLIBC_HAS_REALTIME=y
   UCLIBC_HAS_ADVANCED_REALTIME=y

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

I don't plan on using nanosleep in the final design, but I do need to
to do some prototyping and testing of HW under some carefully
controlled conditions.

How do I figure out why nanosleep() has a 4ms granularity?

The only thing that comes to mind is the Atmel SAM9 Linux port doesn't
support high-res timers.  That would be annoying.

-- 
Grant Edwards               grant.b.edwards        Yow! I just went below the
                                  at               poverty line!
                              gmail.com            

_______________________________________________
uClibc mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/uclibc

Reply via email to