On Wed, 3 Feb 2016, Laura Abbott wrote: > I also notice that __CMPXCHG_DOUBLE is turned off when the debug > options are turned on. I don't see any details about why. What's > the reason for turning it off when the debug options are enabled?
Because operations on the object need to be locked out while the debug code is running. Otherwise concurrent operations from other processors could lead to weird object states. The object needs to be stable for debug checks. Poisoning and the related checks need that otherwise you will get sporadic false positives.