Pretty simple really
Abusive is about the person and not what they did. It is never useful or productive.
She's a pussy - abusive because it is about her. He's a 'tard - abusive because it is about him. She's lovely - potentially abusive because it is about her even though it could be considered complimentary. It really is getting very close to 'she is a great fuck' which is clearly abusive.
That code is f*cking shit - robust but not abusive because it is not about the person. The kernel group considers abusive behaviour acceptable and that is why I and a great many people I know have no interest in participating. If you want to call my code shit. That is fine, but you had better be able to defend your position. If you want to call me shit, you can fuck off.