#define read_esp() ({ \
unsigned int __dummy; \
__asm__( \
"movl %%esp,%0\n\t" \
:"=r" (__dummy)); \
__dummy; \
})
current stack size:
(__u32)current_thread_info() + 0x2000 - read_esp()