Adaptive IHOP uses the number of bytes allocated in old gen during GC to determine the next IHOP value.
The problem is that currently the total number of bytes copied around in old gen is used as part of that calculation. This is wrong during mixed gc: only the number of bytes promoted add to the used bytes, not the number of bytes that already have been in old.
This may decrease the current IHOP and induces more marking cycles than necessary decreasing performance a bit.
Workaround is to disable adaptive IHOP or tweak the influencing parameters to determine IHOP.