Let me amplify and study bindbn's response above. The source to top in the procps package, lines 3131 and 3134, show that the output will go through the scale_num()
function defined on line 761. What I read in the scale_num()
function says that it will favor precision over beauty. If the available real-estate only allows for human-readable, then so be it, but its default is to show it in KB.
So, what I think happened is that you saw a few processes with MB in their memory consumption (resident or shared) and tricked yourself when you opened it back up. Either that, or you were using a different tool.
If you are satisfied that somehow, you got twisted around, then please mark a reply as The Answer so that this question can come off the Unanswered list. Thanks.
Just to convince yourself, get the source RPM to the package and see if they applied any patches to it. You would probably have to install the SRPM and look at the spec file to get the name of any patch files they used. Learn how to build an RPM (a handy skill) and go look at the patched source of top.c, if it has been patched at all. Compare the tree with the link I provided above and see if there is a difference. Note that going through this may not be trivial.