[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20221103123223.0bd96128@rorschach.local.home>
Date: Thu, 3 Nov 2022 12:32:23 -0400
From: Steven Rostedt <rostedt@...dmis.org>
To: Leonid Ravich <lravich@...il.com>
Cc: Jason Gunthorpe <jgg@...pe.ca>,
Leonid Ravich <leonid.ravich@...anetworks.com>,
"mingo@...hat.com" <mingo@...hat.com>,
"linux-rdma@...r.kernel.org" <linux-rdma@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Yigal Korman <yigal.korman@...anetworks.com>,
"linux-trace-kernel@...r.kernel.org"
<linux-trace-kernel@...r.kernel.org>
Subject: Re: BUG: ib_mad ftrace event unsupported migration
On Thu, 3 Nov 2022 14:22:01 +0200
Leonid Ravich <lravich@...il.com> wrote:
> On Wed, Nov 02, 2022 at 06:19:00PM -0400, Steven Rostedt wrote:
> > On Wed, 2 Nov 2022 22:01:17 +0200
> > Leonid Ravich <lravich@...il.com> wrote:
> >
> > > disagree, without CONFIG_PREEMPTION (which is the default case in some
> > > destros) we will not get any warning, because there will not be
> > > preamption disable.
> >
> > I test all for my code (NON_PREEMPT, VOLUNTEER_PREEMPT, PREEMPT) and
> > with and without lockdep enabled.
> >
> > This would be a bug if you called kmalloc(X, GFP_KERNEL) in *any* non
> > preempt section.
> yes, but for NON_PREEMPT trace is not non preempt section,
> actualy the problem is with CONFIG_PREEMPT_COUNT not set.
>
> ftrace uses preemot_enable/disable_notrace macro to "mark" it as non preempt section
> which do it only for CONFIG_PREEMPT_COUNT.
Correct.
>
> from include/linux/preempt.h
> if !CONFIG_PREEMPT_COUNT
> #define preempt_enable_notrace() barrier()
>
> this is why there is no any warning on my system.
Correct.
> >
> > >
> > > second issue I see and maybe it is only me, is that the assuption of
> > > atomicity in trace is not a common knowledge for trace users.
> >
> > Well, I suppose we could add more documentation. Would that help? Where
> > would you see it? In the sample code?
> >
> I think if we fix the first issue and make kernel cry for any miss
> behave it we do the job.
It does with the right configs enable. I will NACK any change to add
more checks here for the production case. This is an extremely fast
path where every nanosecond counts (trace events can be under 100ns).
The fact that it doesn't do anything is a feature not a bug.
It's up to the developer to run their code with lockdep and other debug
settings (and possibly even PREEMPT config tests) while developing
their code. Not to expect the production use case to do it for them.
-- Steve
Powered by blists - more mailing lists