Understanding kernel memory

I came across the --kernel-memory switch when going through the Runtime options with memory page and could not get an understanding about it both from the docs as well as the man page. Some of the questions which I had

  1. Is kernel memory a limited resource sitting within the host’s memory? Is it limited only by the total memory of the host?
  2. Typically, how much of the RAM is used by the kernel? What is a “good” number to pass to the --kernel-memory switch?
  3. If unset (or unlimited), is it still bounded by the total memory of the host machine?

I would be hugely grateful to anyone who can shed light on this/point me to some resources where I could learn more.