[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAG_fn=WvA44J5fN=3i0WoOa-TK=1CqSrdCtR_ceZX0AzUM5s5A@mail.gmail.com>
Date: Mon, 2 Mar 2020 19:28:03 +0100
From: Alexander Potapenko <glider@...gle.com>
To: Greg KH <gregkh@...uxfoundation.org>
Cc: Todd Kjos <tkjos@...gle.com>, Kees Cook <keescook@...omium.org>,
Arve Hjønnevåg <arve@...roid.com>,
Ingo Molnar <mingo@...hat.com>,
Dmitriy Vyukov <dvyukov@...gle.com>,
Jann Horn <jannh@...gle.com>,
"open list:ANDROID DRIVERS" <devel@...verdev.osuosl.org>,
Peter Zijlstra <peterz@...radead.org>,
LKML <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH v2 2/3] binder: do not initialize locals passed to copy_from_user()
On Mon, Mar 2, 2020 at 6:38 PM Greg KH <gregkh@...uxfoundation.org> wrote:
>
> On Mon, Mar 02, 2020 at 02:04:29PM +0100, glider@...gle.com wrote:
> > Certain copy_from_user() invocations in binder.c are known to
> > unconditionally initialize locals before their first use, like e.g. in
> > the following case:
> >
> > struct binder_transaction_data tr;
> > if (copy_from_user(&tr, ptr, sizeof(tr)))
> > return -EFAULT;
> >
> > In such cases enabling CONFIG_INIT_STACK_ALL leads to insertion of
> > redundant locals initialization that the compiler fails to remove.
> > To work around this problem till Clang can deal with it, we apply
> > __no_initialize to local Binder structures.
>
> I would like to see actual benchmark numbers showing this is
> needed/useful otherwise it's going to just be random people adding this
> marking to random places with no real reason.
This were lib[hw]binder_benchmarks.
I will update patch description with benchmark data.
> thanks,
>
> greg k-h
--
Alexander Potapenko
Software Engineer
Google Germany GmbH
Erika-Mann-Straße, 33
80636 München
Geschäftsführer: Paul Manicle, Halimah DeLaine Prado
Registergericht und -nummer: Hamburg, HRB 86891
Sitz der Gesellschaft: Hamburg
Powered by blists - more mailing lists