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/

-- 
---------------------------------------------------------
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/

Reply via email to