title: Understand Linux Kernel meminfo from mem_init_print_info()
body: <p>I am trying to understand the fields printed from the Linux Kernel - <code>mm/page_alloc.c - mem_init_print_info()</code></p>
  <p><code>pr_info(&quot;Memory: %luK/%luK available (%luK kernel code, %luK rwdata, %luK rodata, %luK init, %luK bss, %luK reserved, %luK cma-reserved&quot;, nr_free_pages() &lt;&lt; (PAGE_SHIFT - 10), physpages &lt;&lt; (PAGE_SHIFT - 10), codesize &gt;&gt; 10, datasize &gt;&gt; 10, rosize &gt;&gt; 10, (init_data_size + init_code_size) &gt;&gt; 10, bss_size &gt;&gt; 10, (physpages - totalram_pages() - totalcma_pages) &lt;&lt; (PAGE_SHIFT - 10), totalcma_pages &lt;&lt; (PAGE_SHIFT - 10)</code></p>
  <ol>
  <li>First question is why is the fields printed after shifting it <code>10</code> times. ?</li>
  <li>What are <code>codesize, datasize, rosize, init_data_size, init_code_size, physpages, totalram_pages, totalcma_pages</code>?</li>
  </ol>