>Is it really true that the kernel stack is only 1 page?
Quote:>As in 'only 4096 bytes'?
Quote:>It seems odd to have such a tiny stack.
It makes perfect sense. Prior to the advent of vmalloc(), Linux kernel
memory was mapped such that physical and virtual address are the same.
This makes device drivers a bit simpler, since they don't need to worry
about being able to cross boundaries where consequtive virtual addresses
are not contiguous in physical memory. The original dynamic kernel
memory allocaters get_free_page() and kmalloc() were limited to page
size and something less than page size respectively. Allocating
a kernel stack per process (64) would be a real memory waste; so we
got 4K each, the most we could get with the allocators we had.
Everyone dies, but not everyone lives.