Messages in this thread | | | From | Nadav Amit <> | Subject | Re: [RFC PATCH 1/6] x86/alternative: assert text_mutex is taken | Date | Wed, 29 Aug 2018 19:36:22 +0000 |
| |
at 10:11 AM, Nadav Amit <namit@vmware.com> wrote:
> at 1:59 AM, Masami Hiramatsu <mhiramat@kernel.org> wrote: > >> On Wed, 29 Aug 2018 01:11:42 -0700 >> Nadav Amit <namit@vmware.com> wrote: >> >>> Use lockdep to ensure that text_mutex is taken when text_poke() is >>> called. >>> >>> Actually it is not always taken, specifically when it is called by kgdb, >>> so take the lock in these cases. >> >> Can we really take a mutex in kgdb context? >> >> kgdb_arch_remove_breakpoint >> <- dbg_deactivate_sw_breakpoints >> <- kgdb_reenter_check >> <- kgdb_handle_exception >> <- __kgdb_notify >> <- kgdb_ll_trap >> <- do_int3 >> <- kgdb_notify >> <- die notifier >> >> kgdb_arch_set_breakpoint >> <- dbg_activate_sw_breakpoints >> <- kgdb_reenter_check >> <- kgdb_handle_exception >> ... >> >> Both seems called in exception context, so we can not take a mutex lock. >> I think kgdb needs a special path. > > You are correct, but I don’t want a special path. Presumably text_mutex is > guaranteed not to be taken according to the code. > > So I guess the only concern is lockdep. Do you see any problem if I change > mutex_lock() into mutex_trylock()? It should always succeed, and I can add a > warning and a failure path if it fails for some reason.
Err.. This will not work. I think I will drop this patch, since I cannot find a proper yet simple assertion. Creating special path just for the assertion seems wrong. | |