Message ID | 20220518010319.4161482-1-liu.yun@linux.dev (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [v3] mm/kfence: print disabling or re-enabling message | expand |
On Wed, 18 May 2022 at 03:03, Jackie Liu <liu.yun@linux.dev> wrote: > > From: Jackie Liu <liuyun01@kylinos.cn> > > By printing information, we can friendly prompt the status change > information of kfence by dmesg and record by syslog. > > Co-developed-by: Marco Elver <elver@google.com> > Signed-off-by: Jackie Liu <liuyun01@kylinos.cn> > --- > v1->v2: > fixup by Marco Elver <elver@google.com> > v2->v3: > write kfence_enabled=false only true before > > mm/kfence/core.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/mm/kfence/core.c b/mm/kfence/core.c > index 11a954763be9..41840b8d9cb3 100644 > --- a/mm/kfence/core.c > +++ b/mm/kfence/core.c > @@ -67,8 +67,13 @@ static int param_set_sample_interval(const char *val, const struct kernel_param > if (ret < 0) > return ret; > > - if (!num) /* Using 0 to indicate KFENCE is disabled. */ > - WRITE_ONCE(kfence_enabled, false); > + /* Using 0 to indicate KFENCE is disabled. */ > + if (!num) { > + if (READ_ONCE(kfence_enabled)) { Now you could just write if (!num && READ_ONCE(kfence_enabled)) { .... > + pr_info("disabled\n"); > + WRITE_ONCE(kfence_enabled, false); > + } > + } > > *((unsigned long *)kp->arg) = num; > > @@ -874,6 +879,7 @@ static int kfence_enable_late(void) > > WRITE_ONCE(kfence_enabled, true); > queue_delayed_work(system_unbound_wq, &kfence_timer, 0); > + pr_info("re-enabled\n"); > return 0; > } > > -- > 2.25.1 >
在 2022/5/18 下午3:24, Marco Elver 写道: > On Wed, 18 May 2022 at 03:03, Jackie Liu <liu.yun@linux.dev> wrote: >> >> From: Jackie Liu <liuyun01@kylinos.cn> >> >> By printing information, we can friendly prompt the status change >> information of kfence by dmesg and record by syslog. >> >> Co-developed-by: Marco Elver <elver@google.com> >> Signed-off-by: Jackie Liu <liuyun01@kylinos.cn> >> --- >> v1->v2: >> fixup by Marco Elver <elver@google.com> >> v2->v3: >> write kfence_enabled=false only true before >> >> mm/kfence/core.c | 10 ++++++++-- >> 1 file changed, 8 insertions(+), 2 deletions(-) >> >> diff --git a/mm/kfence/core.c b/mm/kfence/core.c >> index 11a954763be9..41840b8d9cb3 100644 >> --- a/mm/kfence/core.c >> +++ b/mm/kfence/core.c >> @@ -67,8 +67,13 @@ static int param_set_sample_interval(const char *val, const struct kernel_param >> if (ret < 0) >> return ret; >> >> - if (!num) /* Using 0 to indicate KFENCE is disabled. */ >> - WRITE_ONCE(kfence_enabled, false); >> + /* Using 0 to indicate KFENCE is disabled. */ >> + if (!num) { >> + if (READ_ONCE(kfence_enabled)) { > > Now you could just write > > if (!num && READ_ONCE(kfence_enabled)) { Sure. > .... > >> + pr_info("disabled\n"); >> + WRITE_ONCE(kfence_enabled, false); >> + } >> + } >> >> *((unsigned long *)kp->arg) = num; >> >> @@ -874,6 +879,7 @@ static int kfence_enable_late(void) >> >> WRITE_ONCE(kfence_enabled, true); >> queue_delayed_work(system_unbound_wq, &kfence_timer, 0); >> + pr_info("re-enabled\n"); >> return 0; >> } >> >> -- >> 2.25.1 >>
diff --git a/mm/kfence/core.c b/mm/kfence/core.c index 11a954763be9..41840b8d9cb3 100644 --- a/mm/kfence/core.c +++ b/mm/kfence/core.c @@ -67,8 +67,13 @@ static int param_set_sample_interval(const char *val, const struct kernel_param if (ret < 0) return ret; - if (!num) /* Using 0 to indicate KFENCE is disabled. */ - WRITE_ONCE(kfence_enabled, false); + /* Using 0 to indicate KFENCE is disabled. */ + if (!num) { + if (READ_ONCE(kfence_enabled)) { + pr_info("disabled\n"); + WRITE_ONCE(kfence_enabled, false); + } + } *((unsigned long *)kp->arg) = num; @@ -874,6 +879,7 @@ static int kfence_enable_late(void) WRITE_ONCE(kfence_enabled, true); queue_delayed_work(system_unbound_wq, &kfence_timer, 0); + pr_info("re-enabled\n"); return 0; }