If you have more aliases than there are ways in each set, items will become evicted from the cache. If you do it just right, you can end up with the worst case, and you get 100% cache misses. Therefore even something that might on the face of it seem perfectly cacheable (well... if you don't know quite how the cache works), with a small working set (note that the test involves repeating the same search over and over again), can actually end up suffering from 100% cache misses.
The L2 and L3 caches use physical addresses rather than virtual ones, so you can't fully control this effect from user mode.
(Fingers crossed for my terminology...)