[LinuxPPS] The final step...
Rodolfo Giometti
giometti at enneenne.com
Mon Sep 28 18:21:34 CEST 2009
On Fri, Sep 25, 2009 at 11:07:00AM +0100, Graeme Hilton wrote:
> >On Thu, Sep 24, 2009 at 04:59:39PM +0100, Graeme Hilton wrote:
> >> From: giometti at enneenne.com [mailto:giometti at enneenne.com]:
> >> On Thu, Sep 24, 2009 at 04:13:09PM +0100, Graeme Hilton wrote:
> >> > Rodolfo Giometti wrote:
> >> >
> >> > Regarding the serial port, which version of LinuxPPS are you referring
> >> > to?
> >> >
> >> > This is in a 2.6.31 kernel (from Fedora), with your series of 9 patches
> >> > applied and all the PPS options enabled.
> >> >
> >> > I have used modules pps_core and pps_ldisc. "ldattach 18 /dev/ttyS0"
> and
> >> > S2.
> >> >
> >> > Do you need any more information?
> >>
> >> Yes, you should enable PPS debugging messages and verify if the serial
> >> IRQs are arriving.
> >> -------
> >>
> >> I've got PPS debug enabled in the kernel and I can see the interrupt
> count
> >> going up in /proc/interrupts:
> >>
> >> Plenty of PPS events logged in /var/log/messages:
> >> Sep 24 16:56:24 dhcp-187-049 kernel: PPS event at 4457951
> >> Sep 24 16:56:25 dhcp-187-049 kernel: PPS event at 4458951
> >> Sep 24 16:56:26 dhcp-187-049 kernel: PPS event at 4459951
> >> Sep 24 16:56:27 dhcp-187-049 kernel: PPS event at 4460951
> >> Sep 24 16:56:28 dhcp-187-049 kernel: PPS event at 4461951
> >>
> >> [user at dhcp-187-049 ~]$ cat /proc/interrupts | grep serial
> >> 4: 1 0 IO-APIC-edge serial
> >> 17: 7309 7398 IO-APIC-fasteoi serial
> >> [user at dhcp-187-049 ~]$ cat /proc/interrupts | grep serial
> >> 4: 1 0 IO-APIC-edge serial
> >> 17: 7310 7400 IO-APIC-fasteoi serial
> >> [user at dhcp-187-049 ~]$ cat /proc/interrupts | grep serial
> >> 4: 1 0 IO-APIC-edge serial
> >> 17: 7315 7400 IO-APIC-fasteoi serial
> >
> >Yes... IRQs are arriving... did you enabled CONFIG_PPS_IRQ_EVENTS into
> >your kernel configuration, didn't you?
> >
> >If you disable CONFIG_PPS_IRQ_EVENTS are you still continuing in
> >receiving null timestamps?
>
> I disabled IRQ_EVENTS and got the same results as before - no signal on the
> serial inputs, but ktimer generates events.
ktimer is a dummy client, don't consider it. Are you sure the above
IRQs are connected with DCD pin of your serial port?
> >> What can I do to track this down a bit further?
> >
> >You should put a printk() into irq_save_ts() functions in order to
> >verify if getnstimeofday() is called. Warning: just enable the
> >printk() for the serial IRQs only or your system will became
> >unusqable!
>
> I've tried a few printk's scattered here and there. In
> arch/x86/kernel/irq_32.c I get lots of messages when a printk (conditional
> on irq==17) is inserted before the irq_save_ts() call.
>
> In kernel/irq/handle.c I added printk to the irq_save_ts() function:
>
> /* CONFIG_SPARSE_IRQ not defined */
> void irq_save_ts(unsigned int irq)
> {
> #ifdef CONFIG_PPS_IRQ_EVENTS
> if (irq < NR_IRQS) {
> if(irq==17) printk("getnstimeofday(&irq_ts[%d])
> called",irq);
> getnstimeofday(&irq_ts[irq]);
> }
> #endif
> }
>
> There are plenty of messages in /var/log/messages generated by this.
I suppose these are not the PPS IRQs... you should get one IRQ per
second not a plenty of them...
Ciao,
Rodolfo
--
GNU/Linux Solutions e-mail: giometti at enneenne.com
Linux Device Driver giometti at linux.it
Embedded Systems phone: +39 349 2432127
UNIX programming skype: rodolfo.giometti
Freelance ICT Italia - Consulente ICT Italia - www.consulenti-ict.it
More information about the LinuxPPS
mailing list