lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Sat, 2 Dec 2023 15:54:59 -0800
From:   Namhyung Kim <namhyung@...nel.org>
To:     Ian Rogers <irogers@...gle.com>
Cc:     Peter Zijlstra <peterz@...radead.org>,
        Ingo Molnar <mingo@...hat.com>,
        Arnaldo Carvalho de Melo <acme@...nel.org>,
        Mark Rutland <mark.rutland@....com>,
        Alexander Shishkin <alexander.shishkin@...ux.intel.com>,
        Jiri Olsa <jolsa@...nel.org>,
        Adrian Hunter <adrian.hunter@...el.com>,
        Nick Terrell <terrelln@...com>,
        Kan Liang <kan.liang@...ux.intel.com>,
        Andi Kleen <ak@...ux.intel.com>,
        Kajol Jain <kjain@...ux.ibm.com>,
        Athira Rajeev <atrajeev@...ux.vnet.ibm.com>,
        Huacai Chen <chenhuacai@...nel.org>,
        Masami Hiramatsu <mhiramat@...nel.org>,
        Vincent Whitchurch <vincent.whitchurch@...s.com>,
        "Steinar H. Gunderson" <sesse@...gle.com>,
        Liam Howlett <liam.howlett@...cle.com>,
        Miguel Ojeda <ojeda@...nel.org>,
        Colin Ian King <colin.i.king@...il.com>,
        Dmitrii Dolgov <9erthalion6@...il.com>,
        Yang Jihong <yangjihong1@...wei.com>,
        Ming Wang <wangming01@...ngson.cn>,
        James Clark <james.clark@....com>,
        K Prateek Nayak <kprateek.nayak@....com>,
        Sean Christopherson <seanjc@...gle.com>,
        Leo Yan <leo.yan@...aro.org>,
        Ravi Bangoria <ravi.bangoria@....com>,
        German Gomez <german.gomez@....com>,
        Changbin Du <changbin.du@...wei.com>,
        Paolo Bonzini <pbonzini@...hat.com>, Li Dong <lidong@...o.com>,
        Sandipan Das <sandipan.das@....com>,
        liuwenyu <liuwenyu7@...wei.com>, linux-kernel@...r.kernel.org,
        linux-perf-users@...r.kernel.org,
        Guilherme Amadio <amadio@...too.org>
Subject: Re: [PATCH v5 01/50] perf comm: Use regular mutex

On Thu, Nov 30, 2023 at 10:28 AM Ian Rogers <irogers@...gle.com> wrote:
>
> On Wed, Nov 29, 2023 at 4:56 PM Namhyung Kim <namhyung@...nel.org> wrote:
> >
> > On Mon, Nov 27, 2023 at 2:09 PM Ian Rogers <irogers@...gle.com> wrote:
> > >
> > > The rwsem is only after used for writing so switch to a mutex that has
> > > better error checking.
> > >
> > > Fixes: 7a8f349e9d14 ("perf rwsem: Add debug mode that uses a mutex")
> >
> > I think we talked about fixing this separately, no?
>
> Sorry, I'm unclear on an action to do. Currently changing the
> RWS_ERRORCHECK in tools/perf/util/rwsem.h will break the build without
> this change.

Can it be like this?

#ifdef RWS_ERRORCHECK
#define RWSEM_INITIALIZER  { .lock = PTHREAD_MUTEX_INITIALIZER, }
#else
#define RWSEM_INITIALIZER  { .lock = PTHREAD_RWLOCK_INITIALIZER, }
#endif

>
> > > Signed-off-by: Ian Rogers <irogers@...gle.com>
> > > ---
> > >  tools/perf/util/comm.c | 10 +++++-----
> > >  1 file changed, 5 insertions(+), 5 deletions(-)
> > >
> > > diff --git a/tools/perf/util/comm.c b/tools/perf/util/comm.c
> > > index afb8d4fd2644..4ae7bc2aa9a6 100644
> > > --- a/tools/perf/util/comm.c
> > > +++ b/tools/perf/util/comm.c
> > > @@ -17,7 +17,7 @@ struct comm_str {
> > >
> > >  /* Should perhaps be moved to struct machine */
> > >  static struct rb_root comm_str_root;
> > > -static struct rw_semaphore comm_str_lock = {.lock = PTHREAD_RWLOCK_INITIALIZER,};
> > > +static struct mutex comm_str_lock = {.lock = PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP,};
> >
> > IIUC it has a problem with musl libc.  Actually I think it's better to
> > hide the field and the pthread initializer under some macro like
> > MUTEX_INITIALIZER or DEFINE_MUTEX() like in the kernel.
>
> Will there be enough use to justify this? I think ideally we'd not be
> having global locks needing global initializers as we run into
> problems like we see in metrics needing to mix counting and sampling.

I don't know but there might be a reason to use global locks.
Then we need to support the initialization and it'd be better
to make it easier to handle internal changes like this.

Thanks,
Namhyung

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ