Björn Töpel <bjorn@xxxxxxxxxx> writes: >>> Hmm, seems like we're talking past each other, or at least I get the >>> feeling I can't get my opinions out right. I'll try to do a quick PoC, >>> to show you what I mean. That's probably easier than just talking about >>> it. ...and maybe I'll come realizing I'm all wrong! >> >> I suggest to wait for my v13 and try something on top of that >> otherwise we might duplicate efforts. > > OK! I did some really rough code sketching, and I'm confident that you can get rid of all ids_enabled_bitmap, hwirqs_used_bitmap, and the corresponding functions/locks. I'd say one lock is enough, and the key is having the per-cpu imsic_local_priv.vectors change from struct imsic_vector * to struct imsic_vector **. Using smp_call_function_single() to IPI enable (and disable if you don't want to use the lazy timer disable mechanism) seems feasible as well! (Let me know if you don't have the spare cycles, and I can help out.) Björn