[uClinux-dev] mmap inconsistent

Robert Daniels robertd at vantagecontrols.com
Tue Jul 10 20:53:19 EDT 2007


I've got a board running linux 2.4.x on an xscale IXP420 with NVRAM on
the expansion bus.  I've written a driver to allow me to mmap this
memory into my user space applications and I'm running into a strange
problem where the data that should be written out to the NVRAM is not
actually being written.  The NVRAM is mmapped into 5 processes as
MAP_SHARED and one process will write data to a location and then call
msync immediately after writing to force this data to NVRAM through the
writepage call in my driver.  What I'm seeing is that the new data is
not actually written.  If I sleep a bit before calling the msync things
seem to work well.  I'm wondering if the reason for this is that when
one processes writes to the mmapped memory the change has to be
propagated to a specific process before the msync is called otherwise an
invalid copy of the page will be sync'd.

Thanks!

-Robert Daniels



More information about the uClinux-dev mailing list