jvmti.h is included 905 times and jvmtiExport.hpp is included 776 times (by 971 hotspot .o files). Most of these are unnecessarily included by the following 3 popular header files:
javaClasses.hpp: ThreadStatus is rarely used, and should be moved to a separate header file. The enum is also changed to an enum class for better type safety (see JDK-8247938).
os.hpp: No need to include jvmti.h. Use forward declaration for "struct jvmtiTimerInfo;" instead.
thread.hpp: No need to include jvmExport.hpp. Use forward declaration for JvmtiSampledObjectAllocEventCollector and JvmtiVMObjectAllocEventCollector instead.