I don’t know! If someone can figure out to gather some data that would be interesting for sure. I guess the main thing to worry about would be extensions touching interpreter-global state, without any lock besides the GIL. If we switch to finer-grained locking in the interpreter itself, but an extension module doesn’t know to take the finer-grained locks, then that’d be bad.
Maybe in a lot of cases this would turn out OK because the extension module isn’t poking at C struct directly, but rather calling some C API function, and we’ll add locking into those C API functions? But there might be extensions that touch shared C struct internals directly, or that need to perform multiple C API calls atomically, so fine-grained locking inside C API calls won’t be enough.