|
Kernels use RAM to run just like any other process -- there's nothing fundamentally magic about a kernel except that it runs at a different privilege level. Different kernel versions may use different amounts of RAM for the same reason different versions of any other program might -- something changed. Maybe an internal buffer was extended, maybe there are new functions, maybe one has additional drivers/features compiled in that the other doesn't.
The Xen version of the host is less likely to cause dramatic changes, but it could have a similar influence. Maybe newer virtualized hardware passes more information to the child kernel's drivers; maybe there are features and optimizations that can be used on one combination of child and host versions but not on another; there are other, deeper/more obscure oddities possible.
You'll see similar discrepancies if you run a kernel on many different combinations of real hardware. Code is going to allocate different amounts of RAM in different situations.
|