LKML Archive on lore.kernel.org help / color / mirror / Atom feed
From: Josh Poimboeuf <jpoimboe@redhat.com> To: Petr Mladek <pmladek@suse.com> Cc: Jiri Kosina <jikos@kernel.org>, Miroslav Benes <mbenes@suse.cz>, Joe Lawrence <joe.lawrence@redhat.com>, Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>, live-patching@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 1/2] livepatch: Remove duplicate warning about missing reliable stacktrace support Date: Tue, 7 May 2019 16:24:25 -0500 [thread overview] Message-ID: <20190507212425.7gfqx5e3yc4fbdfy@treble> (raw) In-Reply-To: <20190507142847.pre7tvm4oysimfww@pathway.suse.cz> On Tue, May 07, 2019 at 04:28:47PM +0200, Petr Mladek wrote: > > > > > Also this check is effectively the same as the klp_have_reliable_stack() > > > > > check which is done in kernel/livepatch/core.c. So I think it would be > > > > > clearer and more consistent if the same check is done here: > > > > > > > > > > if (!klp_have_reliable_stack()) > > > > > return -ENOSYS; > > > > > > Huh, it smells with over engineering to me. > > > > How so? It makes the code more readable and the generated code should > > be much better because it becomes a build-time check. > > save_stack_trace_tsk_reliable() returns various error codes. > We catch a specific one because otherwise the message below > might be misleading. > > I do not see why we should prevent this error by calling > a custom hack: klp_have_reliable_stack()? I wouldn't call it a hack. It's a simple build-time check. > Regarding reliability. If anyone changes semantic of > save_stack_trace_tsk_reliable() error codes, they would likely > check if all users (one at the moment) handle it correctly. > > On the other hand, the dependency between the -ENOSYS > return value and klp_have_reliable_stack() is far from > obvious. I don't follow your point. > If we want to discuss and fix this to the death. We should change > the return value from -ENOSYS to -EOPNOTSUPP. The reason > is the same as in the commit 375bfca3459db1c5596 > ("livepatch: core: Return EOPNOTSUPP instead of ENOSYS"). > > Note that EOPNOTSUPP is the same errno as ENOTSUP, see > man 3 errno. Sure, but that's a separate issue. > > But I think Miroslav's suggestion to revert 1d98a69e5cef would be even > > better. > > AFAIK, Miroslav wanted to point out that your opinion was inconsistent. How is my opinion inconsistent? Is there something wrong with the original approach, which was reverted with 1d98a69e5cef ("livepatch: Remove reliable stacktrace check in klp_try_switch_task()") ? As I mentioned, that has some advantages: - The generated code is simpler/faster because it uses a build-time check. - The code is more readable IMO. Especially if the check is done higher up the call stack by reverting 1d98a69e5cef. That way the arch support short-circuiting is done in the logical place, before doing any more unnecessary work. It's faster, but also, more importantly, it's less surprising. - It's also more consistent with other code, since the intent of this check is the same as the klp_have_reliable_stack() use in klp_enabled_patch(). If you disagree with those, please explain why. > > > > > ret = save_stack_trace_tsk_reliable(task, &trace); > > > > > > > > > > [ no need to check ret for ENOSYS here ] > > > > > > > > > > Then, IMO, no comment is needed. > > > > > > > > BTW, if you agree with this approach then we can leave the > > > > WARN_ON_ONCE() in save_stack_trace_tsk_reliable() after all. > > > > > > I really like the removal of the WARN_ON_ONCE(). I consider > > > it an old fashioned way used when people are lazy to handle > > > errors. It might make sense when the backtrace helps to locate > > > the context but the context is well known here. Finally, > > > WARN() should be used with care. It might cause reboot > > > with panic_on_warn. > > > > The warning makes the function consistent with the other weak functions > > in stacktrace.c and clarifies that it should never be called unless an > > arch has misconfigured something. And if we aren't even checking the > > specific ENOSYS error as I proposed then this warning would make the > > error more obvious. > > I consider both WARN() and error value as superfluous. I like the > error value because it allows users to handle the situation as > they need it. ... but if there are no users of the weak function then the point is moot. > Best Regards, > Petr > > PS: This is my last mail in the thread this week. I will eventually > return to it with a clear head next week. It is all nitpicking from > my POV and I have better things to do. I don't think it's helpful to characterize it as nitpicking. The details of the code are important. -- Josh
next prev parent reply other threads:[~2019-05-07 21:24 UTC|newest] Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-04-30 9:10 [PATCH v2 0/2] livepatch: Clean up of reliable stacktrace warnings Petr Mladek 2019-04-30 9:10 ` [PATCH v2 1/2] livepatch: Remove duplicate warning about missing reliable stacktrace support Petr Mladek 2019-04-30 11:30 ` Miroslav Benes 2019-04-30 11:56 ` Kamalesh Babulal 2019-05-07 0:40 ` Josh Poimboeuf 2019-05-07 1:43 ` Josh Poimboeuf 2019-05-07 11:29 ` Petr Mladek 2019-05-07 12:03 ` Josh Poimboeuf 2019-05-07 14:28 ` Petr Mladek 2019-05-07 21:24 ` Josh Poimboeuf [this message] 2019-05-09 7:24 ` Miroslav Benes 2019-05-13 10:43 ` Petr Mladek 2019-05-13 16:46 ` Josh Poimboeuf 2019-05-07 8:58 ` Miroslav Benes 2019-04-30 9:10 ` [PATCH v2 2/2] livepatch: Use static buffer for debugging messages under rq lock Petr Mladek 2019-04-30 11:32 ` Miroslav Benes 2019-04-30 12:30 ` Kamalesh Babulal 2019-05-07 0:43 ` Josh Poimboeuf 2019-05-07 11:50 ` Petr Mladek 2019-05-07 13:19 ` Josh Poimboeuf
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20190507212425.7gfqx5e3yc4fbdfy@treble \ --to=jpoimboe@redhat.com \ --cc=jikos@kernel.org \ --cc=joe.lawrence@redhat.com \ --cc=kamalesh@linux.vnet.ibm.com \ --cc=linux-kernel@vger.kernel.org \ --cc=live-patching@vger.kernel.org \ --cc=mbenes@suse.cz \ --cc=pmladek@suse.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).