Valgrind: The Impossible Happened IA-64 cached detected

505 Views Asked by At

I ran valgrind on a c program and got the following error:

valgrind: the 'impossible' happened:
   IA-64 cache detected?!

valgrind: m_threadstate.c:100 (vgPlain_get_ThreadState): Assertion 'tid >= 0 && tid < VG_N_THREADS' failed.

After fixing some memory leaks and restructure my program, the error mysteriously went away. But I searched online and find nothing about the IA-64 cache detected error. What does IA-64 means? Also, I ran the program on a virtual machine if that matters.

2

There are 2 best solutions below

1
Paul Floyd On BEST ANSWER

As already mentioned in the comments, IA-64 is the Intel Architecture Itanium (actually a joint venture with HP). It dates back to the early 2000s. Support for the IA-64 architecture was never added to Valgrind since it was never a great success.

Earlier Itanium chips did have a kind of dual-mode which allowed them to run 32bit x86 code.

The error message in Valgrind comes from the Intel_cache_info function. This queries the cpuid instruction to find out about the cache. 10 of the codes handled by this function are for IA-64. As I said, this was never supported, so Valgrind terminates with a now rather dated message.

You are also getting an assert that the TID is not valid. So something is going seriously wrong.

If you can reproduce the problem with a small example then please report it on https://bugs.kde.org

1
Notgate On

I was running my program on a 5 core VM. I switched to another VM that has 12 cores, and it worked. I still don't know what IA-64 cache means though.