CSR :
|
|
Relates :
|
|
Relates :
|
|
Relates :
|
Using mprotect for IPI have several problems (admittedly it's cool hack): - It's not guaranteed to work on future hardware/OS:es (we could start using membarrier() with the MEMBARRIER_CMD_SHARED_EXPEDITED to be future prof) - It doesn't work on arm/arm64 (again MEMBARRIER_CMD_SHARED_EXPEDITED would solve this) - Eventbased tracing must read thread states often (causes performance issues) - The complexity in the code is costly - The thread serialization is unstable on certain workloads/platforms/OS:es (last notice this week on win x86) - Fences are becoming cheaper - Thread-local handshakes is assumed to increase the reading of thread state - Scalability - JNI performance - false sharing Note that some application can show performance regression. This is especially true for application with few threads which does many short native calls.
|