Hi all,

I've been having some difficulty with 3.0pre6e.  I'm running a K6/II
666MHz with the fsmlabs 2.4 kernel pre-patched with rtlinux3.0pre6d
patch.  The patch has not changed between 6d and 6e versions.

Originally my box would freeze when calling rtlinux_sigprocmask.

This seemed to be fixed when I upgraded from gcc-2.91.66 to gcc-2.95.1.

rtlsigtimer_app.c in the regression directory needs updating for the
periodic mode to work.  So I've been using the attached code which will
either crash the machine or print 

        current has no ->mm, not calling

after anytime from a minute to a couple of hours (painful!).

This is the same behaviour I was seeing in 3.0pre6d.  No other modules
are installed aside from rtlinux stock modules - all the ones to depmod
psc.

As a precaution, I've since recompiled the kernel with -march=386 and
occasionally instead of crashing, I'll get a segmentation fault.  I
don't see any core files though.
ulimit reports 'unlimited' so I was expecting to see a core file.

I'll get to the point...
o       How do I enable core dumps to be saved?
o       Has anyone else been using the the periodic timers 
        is rtl_sigaction(beside the example in ./regression/)?  
        Any problems?
o       If someone has a chance, could they compile the 
        attached code on their 3.0pre6e box and run it 
        for a couple of hours?

thanks!
stuart warren


#include <sys/ioctl.h>
#include <linux/isdn.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>

#include <rtlinux_signal.h>

unsigned long Send_Data;
volatile unsigned long *pSend_Data;

void transmission_handler(int unused)
{
        (*pSend_Data)++;
}

int main()
{
        struct rtlinux_sigaction sig;
        
        Send_Data = 0;
        pSend_Data = &Send_Data;
        
        sig.sa_flags = 0;
        sig.sa_period = 10000000LL;
        sig.sa_handler = transmission_handler;

        if (rtlinux_sigaction(RTLINUX_SIGTIMER0, &sig, NULL)) {
                printf("Coundn't get timer\n");
                perror("rtlinux_sigaction");
                return -1;
        }

        printf("\n");
        
        while(1) {
                printf("Send_Data = %ld\r", Send_Data);
                fflush(stdout);
                usleep(200000);
        }
        
        sig.sa_handler = RTLINUX_SIG_IGN;
        rtlinux_sigaction(RTLINUX_SIGTIMER0, &sig, NULL);
        return EXIT_SUCCESS;
}

-- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
---
For more information on Real-Time Linux see:
http://www.rtlinux.org/rtlinux/

Reply via email to