1. A method for software-assisted recovery for handling instruction fetch unit (IFU) poisoning comprising: collecting, by a machine check exception (MCE) handler running on a hardware processor, data from at least one machine state register (MSR) that indicates state information regarding one or more instructions that caused an error while being executed by the processor; determining if a current thread caused the error by checking an erroring logical processing (ELP) bit of a MSR, wherein when set, the ELP bit indicates that the current thread caused the error; and if the current thread did not cause the error, waiting for the other threads to complete processing, and returning from the MCE handler.