M3 misfire issue finally solved. I took my M3 to Bavarian Motorsport (NorCal) to diagnose misfire issue. I have tried everything I can but I couldn't fix it. I tried swapping ignition coils, spark plugs, checking compression, changing O2 sensor, etc. None of them worked.
So I took my car to them on Friday. Yesterday, they told me that the misfire was due to engine oil overfill. Before misfire happened to my car, the oil level sensor told me that the oil is at min mark, so I added a quart oil in. Later, it told me that it is still half full, so I added some more. What i didn't realize is that oil level sensor wasn't working correctly. It gave me wrong information. During misfire debug/repair, it never occurred to me that it could be the engine oil level. I have considered all the possibilities except oil level. It seems to be very simple fix but it took me a while and finally I had to rely on professional help to figure this out
So why does oil over fill cause misfire? It seems that crank loading could be altered. Or it could some extra oil getting into exhaust and trigger O2 sensor. Not sure exactly what is going but it does cause misfire and mainly on bank2.