It sounds like your hardware drivers may be buggy -- you should only get segfaults, not (the Windows equivalent of) kernel panics, when your userspace code accesses wrong memory.
But if you have buggy hardware drivers, I suppose it's possible that locking the memory will help. This wouldn't be the domain of numpy, however. In Linux, this is acheived with a system call such as mlock() or mlockall(). You'll have to figure out the appropriate call in Windows. Thinking about it, if your hardware drivers require the memory to be locked, they should do it themselves. However, I'm not convinced this is the real issue. It seems at least equally likely that your hardware drivers were developed with particular pattern of timing when accessing the buffers, but now you may be attempting to hold a buffer longer (preventing the driver writing to it) than the developer ever tested. It shouldn't blue-screen, but it does... I think it quite likely that you have some buggy hardware drivers. What hardware is it? -Andrew Lars Friedrich wrote: > Hello all, > > to interact with some hardware (data retrieval), I use the following > scheme (Windows, Python 2.4): > > * in Python, I create a numpy array as a buffer > * I pass this array to a self written .dll using ctypes > * the C-code in the .dll passes the pointer to the buffer to the API of > the hardware; then the API starts writing data to my buffer > * from python I can use a helper function of the .dll to know which part > of the buffer is safe to be read at the moment; so I can copy this part > to a different numpy array and work with the data > > This works quite well, but today I got a blue screen, reporting some > paging-problem. It occured after doing some other stuff like moving some > windows on the screen and importing pylab, and I heard the harddisk > working hard, so I assume that the part of memory my buffer is in, was > paged to the harddisk. This is a problem, since the hardware driver will > continuously try to write to this specific memory location I gave to it. > > My primary question is, how to avoid a numpy-array being paged. In the > ideal case there would be a flag to set, that makes sure that this array > is always at this position in physical memory. > > Of course I am also interested in other people's work on hardware > access. Do you think the above discribed way is a good one? To me it was > the best way because I could do as much as possible in Python and keep > may C-coded .dll very small. Is anyone doing similar things? > > Thanks for every comment > > Lars > > > ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ Numpy-discussion mailing list Numpy-discussion@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/numpy-discussion