Kernel code and processor's Cache

I am just wondering will the kernel code and data be cached into the
SAME processor's caches used for user's applications? if yes, is there
any preset ratio of cache space? in high performance computing, often
the algorithms are ran on blocks of data and the references that i
read, consider the entire cache dedicated for user's applications?
This begs the question: is there any embedded processor cache
dedicated to cache only kernel code and data? if no, why was it not
included and how can we quantify kernel code caching space on the
user's application execution. Thank you