jmap -histo reports wrong histogram with CMS. It misses portion of heap graph in histogram computation when used with CMS. More details are in "Comments" section.
Webrev of the fix:
Walking freechunks when VM is not necessarily at safepoint (therefore we may be walking non-parseable heap) could be the root cause. We will have evaluate whether we can account for such freechunks/objects in some way. May be, histogram may print "X" bytes of allocated but unknown Java objects.