Hello,

I have been facing the following weird problem for some time, being unable to 
reach a solution or understand the nature of the problem.

My target machine runs Solaris 10 and I am trying to get the virtual to 
physical address translation in Flexus, by invoking Simics's 
SIM_logical_to_physical() function.

In particular, I try to register all the V to P translations corresponding to a 
buffer. To do that, the procedure I follow is:
- Allocate the buffer using memalign
- Pin the pages that the buffer comprises using mlock
- Write the contents of a single buffer page, invoke a magic breakpoint, which 
flexus grabs and asks Simics for that page's translation, and do this 
iteratively until all of the buffer's pages are registered.

As I increase the size of the buffer, at some point this procedure stops 
working (around 128k, although I have seen that buffer size is not the only 
thing that determines if the translation request works or not). I get the 
following message from Simics: Exception in hap handler: No translation

Unfortunately, the Simics manual is not really descriptive; there is no 
analysis of any implications of this function call and why it might fail.

Does anyone have some experience on that? Any pointers/suggestions/possible 
problems would be greatly appreciated.

Thank you,
Alexandros

Reply via email to