<div dir="ltr">Hi,<div><br></div><div>Sorry for the long email.</div><div><br></div><div>I am seeing segmentation fault happening in random userspace processes periodically.  I am running <span style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">Linux kernel 4.1 version with</span> atom x86 CPU. While inspecting core-dump of the user process from gdb, general-purpose registers seems to be corrupted where as EIP, ESP and EBP are all good and my stack frame is also proper. </div><div><br></div><div>Process gets segmentation fault while dereferencing EAX thinking EAX contains a valid address, but since EAX value got corrupted, it gets killed due to invalid address access. </div><div><br></div><div>Based on the book understanding linux kernel, all general-purpose registers gets stored in the kernel mode stack of the process, where as special registers(EIP, ESP etc) gets stored in thread_struct. </div><div><br></div><div>Could it be possible during context switch, kernel mode stack gets corrupted resulting in bad EAX value when the control reaches user-space process? Would it be possible for some other conditions to lead to invalid EAX contents?</div><div><br></div><div>Thanks,</div><div>Raj</div></div>