new scanlog code and RTAS

Todd Inglett tinglett at
Fri Aug 30 22:59:02 EST 2002

I just wrote a proc interface to scanlog data that will be in the next
patch (it's in IBM internal CVS already).

One related change I made was to add an exported buffer in rtas.[ch]
called rtas_data_buf (size RTAS_DATA_BUF_SIZE = 1024 right now) which is
declared in rtas.c and therefore should always have a pa < 4GB.  This is
protected by rtas_data_buf_lock.

I figure this as a "cheap" alternative to having a true memory allocator
(or a zone) for memory < 4GB.  RTAS calls are pretty few and far between
so I don't expect any real contention for this buffer.  As for lock
ordering I just get and release the buffer immediately around the rtas
call (copying to a local buffer).  The RTAS interface has a lock, RTAS
itself will never obtain another lock :).

Another solution would be to write RTAS "wrapper" functions for each
RTAS function.  For RTAS functions that take data pointers we could hide
this "bounce buffer" internally.  I kind of like this idea.  The
rtas_call() interface is *really* error prone anyway....



** Sent via the linuxppc64-dev mail list. See

More information about the Linuxppc64-dev mailing list