Ok. So run with the debugger on and see what happens.
On Wed, Apr 11, 2001 at 08:52:24AM -0500, Ken Teh wrote:
> It's running the 2.2.18 kernel.
>
>
>
> On Tue, 10 Apr 2001 [EMAIL PROTECTED] wrote:
>
> > If you are using a Linux 2.4.x kernel, you must use the vmalloc
> > patch.
> >
> > On Tue, Apr 10, 2001 at 03:59:50PM -0500, Ken Teh wrote:
> > > It appears that I cannot page when running my rt code. RTLinux is version
> > > 3.0
> > >
> > > I have a statically defined buffer that is partitioned into n+2 buffers, each
> > > 2048 bytes long and a function that fills these buffers with multiple
> > > blocks of "event" data. The function writes arbitrary length event data and
> > > I allow the function to overrun a buffer boundary. The calling function
> > > actually catches the overrun and translates (shifts) the "last" event into
> > > the next buffer so that the completed buffer does not contain partial event
> > > data.
> > >
> > > The system does an oops when the function overflows from buffer 1 (first
> > > buffer is buffer 0) into buffer 2. At times it's worse -- it resets the
> > > computer and goes into the reboot cycle. If I fix the function so it never
> > > overruns a buffer boundary, then the code runs without any problems.
> > >
> > > The n buffers are actually made into a circular buffer queue. The n+1
> > > buffer is used for the overflow of buffer n, and the n+2 buffer is the
> > > temporary buffer which I use to translate an event data block that has
> > > overrun a buffer boundary. I've checked that with my modified function
> > > (that does not overrun a buffer boundary), that the buffers "circulate"
> > > without any problems.
> > >
> > > My inference is that my logically contiguous buffer that is partitioned into
> > > n+2 buffers is not really physically contiguous and that when my function
> > > overflows buffer 1, ie, crosses a page boundary, the system does a hard
> > > crash. I have the same behaviour with the mbuff device. The function is
> > > called by a thread that is dispatched by an interrupt handler.
> > >
> > > Can anyone shed light on this?
> > >
> > > The oops message repeats, but I don't know how to read an oops and I've seen
> > > 2 varieties of oops messages - one says kernel cannot deference NULL virtual
> > > pointer, process is init, the second variety says something about trying to
> > > kill an interrupt handler, aiee killing idle task. I'm not sure I believe
> > > either one.
> > >
> > > Ken
> > >
> > > -- [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/
> >
> >
>
> -- [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/
--
---------------------------------------------------------
Victor Yodaiken
Finite State Machine Labs: The RTLinux Company.
www.fsmlabs.com www.rtlinux.com
-- [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/