From: eduardo b. <ef...@ya...> - 2006-03-14 23:30:36
|
Hi all. I just have installed the sample char-driver module (excellent tool!) of Dave Hylands. It works fine, but i need to read from gpio faster than 100 Hz, wich is the default for jiffies count. How can i change this value? Do i need to change this on gumstix-buildroot/build_arm_nofpu/linux-2.6.15gum/include/asm-arm/param.h and recompile kernel? Where can i find some info about this? Thanks in advance. Eduardo __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com |
From: Darren G. <ts...@ya...> - 2006-03-15 02:24:53
|
I did a bunch of reading on arm-linux archives about this and came up with these mods: fix in include/asm-arm/arch-pxa/param.h #define HZ 800 and fix __udelay() in arch/arm/lib/delay.S ENTRY(__const_udelay) @ 0 <= r0 <= 0x01ffffff ldr r2, LC0 ldr r2, [r2] @ max = 0x0fffffff mov r0, r0, lsr #14 @ max = 0x00003fff; For HZ = 800 mov r2, r2, lsr #11 @ max = 0x0003ffff mul r0, r2, r0 @ max = 2^32-1 movs r0, r0, lsr #6 RETINSTR(moveq,pc,lr) On Mar 14, 2006, at 3:30 PM, eduardo barrera wrote: > Hi all. > > I just have installed the sample char-driver module > (excellent tool!) of Dave Hylands. It works fine, but > i need to read from gpio faster than 100 Hz, wich is > the default for jiffies count. > > How can i change this value? > Do i need to change this on > gumstix-buildroot/build_arm_nofpu/linux-2.6.15gum/include/asm-arm/ > param.h > and recompile kernel? > Where can i find some info about this? > > Thanks in advance. > Eduardo > > __________________________________________________ > Do You Yahoo!? > Tired of spam? Yahoo! Mail has the best spam protection around > http://mail.yahoo.com > > > ------------------------------------------------------- > This SF.Net email is sponsored by xPML, a groundbreaking scripting > language > that extends applications into web and mobile media. Attend the > live webcast > and join the prime developer group breaking into this new coding > territory! > http://sel.as-us.falkag.net/sel? > cmd=lnk&kid=110944&bid=241720&dat=121642 > _______________________________________________ > gumstix-users mailing list > gum...@li... > https://lists.sourceforge.net/lists/listinfo/gumstix-users |
From: Dave H. <dhy...@gm...> - 2006-03-15 02:34:18
|
Hi Eduardo, > I just have installed the sample char-driver module > (excellent tool!) of Dave Hylands. It works fine, but > i need to read from gpio faster than 100 Hz, wich is > the default for jiffies count. HZ is just what I happened to use as a timestamp for the events, If you leave the debounce logic in, then it affects that. If your external "switches" are already debounced, then you could use the much higher resolution timer 0 (I don't recall the register name off hand), but it runs at 3.6 MHz or something similar. > How can i change this value? > Do i need to change this on > gumstix-buildroot/build_arm_nofpu/linux-2.6.15gum/include/asm-arm/param.h > and recompile kernel? Changing HZ can have severe performance impacts on your kernel. I really don't recommend changing it. If you change it changes the rate at which the kernel timer tick goes off. > Where can i find some info about this? Google for kernel HZ or linux HZ or other combinations. -- Dave Hylands Vancouver, BC, Canada http://www.DaveHylands.com/ |
From: Darren G. <ts...@ya...> - 2006-03-15 06:30:38
|
On Mar 14, 2006, at 6:34 PM, Dave Hylands wrote: > Changing HZ can have severe performance impacts on your kernel. I > really don't recommend changing it. If you change it changes the rate > at which the kernel timer tick goes off. I haven't had any noticeable ill effects from HZ = 800 with the 2.6.11gum releases. I have a multi threaded audio application with a main loop that uses usleep() to wake up about every 7ms and analyze a chunk of audio. Before I made the HZ change I was getting _lots_ of timing slop, now it is very reliable. There may be a cleverer way to accomplish the same thing though... |
From: Dave H. <dhy...@gm...> - 2006-03-15 07:54:32
|
> > Changing HZ can have severe performance impacts on your kernel. I > > really don't recommend changing it. If you change it changes the rate > > at which the kernel timer tick goes off. > > I haven't had any noticeable ill effects from HZ =3D 800 with the > 2.6.11gum releases. I have a multi threaded audio application with a > main loop that uses usleep() to wake up about every 7ms and analyze a > chunk of audio. Before I made the HZ change I was getting _lots_ of > timing slop, now it is very reliable. There may be a cleverer way to > accomplish the same thing though... Going upto 1000 is probably fine (as somebody said, 100 was really determiend as acceptable for a 16 MHz i386). When you get high enough (whatever that is), the context switching will start to swamp the available CPU. Using the 400 MHz CPU as a 25 x multiplier (on 16 MHz), in theory you could go to 2500 without any troubles. Going to 10,000 is probably pushing it. Going to 1,000 gives 400,000 cpu cycles/time slice, which still seems like a reasonable number. That give millisecond jiffies. Just be aware of the impact of setting it too high. Also, don't be tempted to change USER_HZ from 100. It should always stay at 100 (the API defines it that way). -- Dave Hylands Vancouver, BC, Canada http://www.DaveHylands.com/ |