All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jason Gunthorpe <jgg@ziepe.ca>
To: Daniel Vetter <daniel@ffwll.ch>
Cc: "Michal Hocko" <mhocko@kernel.org>,
	"Feng Tang" <feng.tang@intel.com>,
	"Randy Dunlap" <rdunlap@infradead.org>,
	"Kees Cook" <keescook@chromium.org>,
	"Masahiro Yamada" <yamada.masahiro@socionext.com>,
	"Peter Zijlstra" <peterz@infradead.org>,
	"Intel Graphics Development" <intel-gfx@lists.freedesktop.org>,
	"Jann Horn" <jannh@google.com>,
	LKML <linux-kernel@vger.kernel.org>,
	"DRI Development" <dri-devel@lists.freedesktop.org>,
	"Linux MM" <linux-mm@kvack.org>,
	"Jérôme Glisse" <jglisse@redhat.com>,
	"Ingo Molnar" <mingo@redhat.com>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	"David Rientjes" <rientjes@google.com>,
	"Wei Wang" <wvw@google.com>,
	"Daniel Vetter" <daniel.vetter@intel.com>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Andy Shevchenko" <andriy.shevchenko@linux.intel.com>,
	"Christian König" <christian.koenig@amd.com>
Subject: Re: [Intel-gfx] [PATCH 2/5] kernel.h: Add non_block_start/end()
Date: Fri, 16 Aug 2019 09:12:43 -0300	[thread overview]
Message-ID: <20190816121243.GB5398@ziepe.ca> (raw)
In-Reply-To: <CAKMK7uH0oa10LoCiEbj1NqAfWitbdOa-jQm9hM=iNL-=8gH9nw@mail.gmail.com>

On Fri, Aug 16, 2019 at 08:20:55AM +0200, Daniel Vetter wrote:
> On Fri, Aug 16, 2019 at 3:00 AM Jason Gunthorpe <jgg@ziepe.ca> wrote:
> > On Thu, Aug 15, 2019 at 10:49:31PM +0200, Daniel Vetter wrote:
> > > On Thu, Aug 15, 2019 at 10:27 PM Jason Gunthorpe <jgg@ziepe.ca> wrote:
> > > > On Thu, Aug 15, 2019 at 10:16:43PM +0200, Daniel Vetter wrote:
> > > > > So if someone can explain to me how that works with lockdep I can of
> > > > > course implement it. But afaics that doesn't exist (I tried to explain
> > > > > that somewhere else already), and I'm no really looking forward to
> > > > > hacking also on lockdep for this little series.
> > > >
> > > > Hmm, kind of looks like it is done by calling preempt_disable()
> > >
> > > Yup. That was v1, then came the suggestion that disabling preemption
> > > is maybe not the best thing (the oom reaper could still run for a long
> > > time comparatively, if it's cleaning out gigabytes of process memory
> > > or what not, hence this dedicated debug infrastructure).
> >
> > Oh, I'm coming in late, sorry
> >
> > Anyhow, I was thinking since we agreed this can trigger on some
> > CONFIG_DEBUG flag, something like
> >
> >     /* This is a sleepable region, but use preempt_disable to get debugging
> >      * for calls that are not allowed to block for OOM [.. insert
> >      * Michal's explanation.. ] */
> >     if (IS_ENABLED(CONFIG_DEBUG_ATOMIC_SLEEP) && !mmu_notifier_range_blockable(range))
> >         preempt_disable();
> >     ops->invalidate_range_start();
> 
> I think we also discussed that, and some expressed concerns it would
> change behaviour/timing too much for testing. Since this does does
> disable preemption for real, not just for might_sleep.

I don't follow, this is a debug kernel, it will have widly different
timing. 

Further the point of this debugging on atomic_sleep is to be as
timing-independent as possible since functions with rare sleeps should
be guarded by might_sleep() in their common paths.

I guess I don't get the push to have some low overhead debugging for
this? Is there something special you are looking for?

Jason

WARNING: multiple messages have this Message-ID (diff)
From: Jason Gunthorpe <jgg@ziepe.ca>
To: Daniel Vetter <daniel@ffwll.ch>
Cc: "Michal Hocko" <mhocko@kernel.org>,
	"Feng Tang" <feng.tang@intel.com>,
	"Randy Dunlap" <rdunlap@infradead.org>,
	"Kees Cook" <keescook@chromium.org>,
	"Masahiro Yamada" <yamada.masahiro@socionext.com>,
	"Peter Zijlstra" <peterz@infradead.org>,
	"Intel Graphics Development" <intel-gfx@lists.freedesktop.org>,
	"Jann Horn" <jannh@google.com>,
	LKML <linux-kernel@vger.kernel.org>,
	"DRI Development" <dri-devel@lists.freedesktop.org>,
	"Linux MM" <linux-mm@kvack.org>,
	"Jérôme Glisse" <jglisse@redhat.com>,
	"Ingo Molnar" <mingo@redhat.com>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	"David Rientjes" <rientjes@google.com>,
	"Wei Wang" <wvw@google.com>,
	"Daniel Vetter" <daniel.vetter@intel.com>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Andy Shevchenko" <andriy.shevchenko@linux.intel.c>
Subject: Re: [Intel-gfx] [PATCH 2/5] kernel.h: Add non_block_start/end()
Date: Fri, 16 Aug 2019 09:12:43 -0300	[thread overview]
Message-ID: <20190816121243.GB5398@ziepe.ca> (raw)
In-Reply-To: <CAKMK7uH0oa10LoCiEbj1NqAfWitbdOa-jQm9hM=iNL-=8gH9nw@mail.gmail.com>

On Fri, Aug 16, 2019 at 08:20:55AM +0200, Daniel Vetter wrote:
> On Fri, Aug 16, 2019 at 3:00 AM Jason Gunthorpe <jgg@ziepe.ca> wrote:
> > On Thu, Aug 15, 2019 at 10:49:31PM +0200, Daniel Vetter wrote:
> > > On Thu, Aug 15, 2019 at 10:27 PM Jason Gunthorpe <jgg@ziepe.ca> wrote:
> > > > On Thu, Aug 15, 2019 at 10:16:43PM +0200, Daniel Vetter wrote:
> > > > > So if someone can explain to me how that works with lockdep I can of
> > > > > course implement it. But afaics that doesn't exist (I tried to explain
> > > > > that somewhere else already), and I'm no really looking forward to
> > > > > hacking also on lockdep for this little series.
> > > >
> > > > Hmm, kind of looks like it is done by calling preempt_disable()
> > >
> > > Yup. That was v1, then came the suggestion that disabling preemption
> > > is maybe not the best thing (the oom reaper could still run for a long
> > > time comparatively, if it's cleaning out gigabytes of process memory
> > > or what not, hence this dedicated debug infrastructure).
> >
> > Oh, I'm coming in late, sorry
> >
> > Anyhow, I was thinking since we agreed this can trigger on some
> > CONFIG_DEBUG flag, something like
> >
> >     /* This is a sleepable region, but use preempt_disable to get debugging
> >      * for calls that are not allowed to block for OOM [.. insert
> >      * Michal's explanation.. ] */
> >     if (IS_ENABLED(CONFIG_DEBUG_ATOMIC_SLEEP) && !mmu_notifier_range_blockable(range))
> >         preempt_disable();
> >     ops->invalidate_range_start();
> 
> I think we also discussed that, and some expressed concerns it would
> change behaviour/timing too much for testing. Since this does does
> disable preemption for real, not just for might_sleep.

I don't follow, this is a debug kernel, it will have widly different
timing. 

Further the point of this debugging on atomic_sleep is to be as
timing-independent as possible since functions with rare sleeps should
be guarded by might_sleep() in their common paths.

I guess I don't get the push to have some low overhead debugging for
this? Is there something special you are looking for?

Jason

  reply	other threads:[~2019-08-16 12:12 UTC|newest]

Thread overview: 130+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-14 20:20 [PATCH 0/5] hmm & mmu_notifier debug/lockdep annotations Daniel Vetter
2019-08-14 20:20 ` [PATCH 1/5] mm: Check if mmu notifier callbacks are allowed to fail Daniel Vetter
2019-08-14 22:14   ` Andrew Morton
2019-08-14 23:22     ` Jason Gunthorpe
2019-08-14 23:34     ` Ralph Campbell
2019-08-16 17:19   ` Jason Gunthorpe
2019-08-14 20:20 ` [PATCH 2/5] kernel.h: Add non_block_start/end() Daniel Vetter
2019-08-14 20:20   ` Daniel Vetter
2019-08-14 20:45   ` Andrew Morton
2019-08-14 20:45     ` Andrew Morton
2019-08-15  6:52     ` Daniel Vetter
2019-08-15  6:52       ` Daniel Vetter
2019-08-15  8:44     ` Michal Hocko
2019-08-15  8:44       ` Michal Hocko
2019-08-15 13:04       ` Jason Gunthorpe
2019-08-15 13:04         ` Jason Gunthorpe
2019-08-15 13:12         ` Daniel Vetter
2019-08-15 13:12           ` Daniel Vetter
2019-08-15 14:37           ` Jason Gunthorpe
2019-08-15 14:37             ` Jason Gunthorpe
2019-08-15 14:43             ` Daniel Vetter
2019-08-15 14:43               ` Daniel Vetter
2019-08-15 15:10               ` Jason Gunthorpe
2019-08-15 15:10                 ` Jason Gunthorpe
2019-08-15 16:25                 ` Daniel Vetter
2019-08-15 16:25                   ` Daniel Vetter
2019-08-15 17:35                   ` Jason Gunthorpe
2019-08-15 17:35                     ` Jason Gunthorpe
2019-08-15 17:39                     ` Jerome Glisse
2019-08-15 17:39                       ` Jerome Glisse
2019-08-15 18:01                       ` Jason Gunthorpe
2019-08-15 18:01                         ` Jason Gunthorpe
2019-08-15 18:27                         ` Jerome Glisse
2019-08-15 18:27                           ` Jerome Glisse
2019-08-15 18:57                           ` Jason Gunthorpe
2019-08-15 18:57                             ` Jason Gunthorpe
2019-08-15 16:32                 ` Jerome Glisse
2019-08-15 16:32                   ` Jerome Glisse
2019-08-15 17:16                   ` Jason Gunthorpe
2019-08-15 17:16                     ` Jason Gunthorpe
2019-08-15 17:21                     ` Daniel Vetter
2019-08-15 17:21                       ` Daniel Vetter
2019-08-15 17:35                       ` Jerome Glisse
2019-08-15 17:35                         ` Jerome Glisse
2019-08-15 13:24         ` Michal Hocko
2019-08-15 13:24           ` Michal Hocko
2019-08-15 22:15       ` Andrew Morton
2019-08-15 22:15         ` Andrew Morton
2019-08-16  8:24         ` Michal Hocko
2019-08-16  8:24           ` Michal Hocko
2019-08-14 23:58   ` Jason Gunthorpe
2019-08-14 23:58     ` Jason Gunthorpe
2019-08-15  6:58     ` Daniel Vetter
2019-08-15  6:58       ` Daniel Vetter
2019-08-15 12:23       ` Jason Gunthorpe
2019-08-15 12:23         ` Jason Gunthorpe
2019-08-15 13:21         ` Michal Hocko
2019-08-15 13:21           ` Michal Hocko
2019-08-15 14:12           ` Jason Gunthorpe
2019-08-15 14:12             ` Jason Gunthorpe
2019-08-15 16:00             ` Michal Hocko
2019-08-15 16:00               ` Michal Hocko
2019-08-15 16:56               ` Jason Gunthorpe
2019-08-15 16:56                 ` Jason Gunthorpe
2019-08-15 17:11                 ` Jerome Glisse
2019-08-15 17:17                   ` Jason Gunthorpe
2019-08-15 17:42                 ` Michal Hocko
2019-08-15 17:42                   ` Michal Hocko
2019-08-15 17:57                   ` Jerome Glisse
2019-08-15 18:24                   ` Jason Gunthorpe
2019-08-15 18:24                     ` Jason Gunthorpe
2019-08-15 19:05                     ` Michal Hocko
2019-08-15 19:05                       ` Michal Hocko
2019-08-15 19:18                       ` Jason Gunthorpe
2019-08-15 19:18                         ` Jason Gunthorpe
2019-08-15 19:35                         ` Michal Hocko
2019-08-15 19:35                           ` Michal Hocko
2019-08-15 20:13                           ` Jason Gunthorpe
2019-08-15 20:13                             ` Jason Gunthorpe
2019-08-16  8:10                             ` Michal Hocko
2019-08-16  8:10                               ` Michal Hocko
2019-08-16 12:19                               ` Jason Gunthorpe
2019-08-16 12:19                                 ` Jason Gunthorpe
2019-08-16 12:26                                 ` Michal Hocko
2019-08-16 12:26                                   ` Michal Hocko
2019-08-16 14:31                                   ` Jason Gunthorpe
2019-08-16 14:31                                     ` Jason Gunthorpe
2019-08-16 15:05                                     ` Jerome Glisse
2019-08-16 15:05                                       ` Jerome Glisse
2019-08-20  8:18                                     ` Michal Hocko
2019-08-20  8:18                                       ` Michal Hocko
2019-08-15 20:16                           ` [Intel-gfx] " Daniel Vetter
2019-08-15 20:16                             ` Daniel Vetter
2019-08-15 20:27                             ` Jason Gunthorpe
2019-08-15 20:27                               ` Jason Gunthorpe
2019-08-15 20:49                               ` Daniel Vetter
2019-08-15 20:49                                 ` Daniel Vetter
2019-08-16  1:00                                 ` Jason Gunthorpe
2019-08-16  1:00                                   ` Jason Gunthorpe
2019-08-16  6:20                                   ` Daniel Vetter
2019-08-16  6:20                                     ` Daniel Vetter
2019-08-16 12:12                                     ` Jason Gunthorpe [this message]
2019-08-16 12:12                                       ` Jason Gunthorpe
2019-08-16 14:11                                       ` Daniel Vetter
2019-08-16 14:11                                         ` Daniel Vetter
2019-08-16 14:38                                         ` Jason Gunthorpe
2019-08-16 14:38                                           ` Jason Gunthorpe
2019-08-16 16:36                                           ` Daniel Vetter
2019-08-16 16:36                                             ` Daniel Vetter
2019-08-16 16:54                                             ` Jason Gunthorpe
2019-08-16 16:54                                               ` Jason Gunthorpe
2019-08-16  8:27                             ` Michal Hocko
2019-08-16  8:27                               ` Michal Hocko
2019-08-14 20:20 ` [PATCH 3/5] mm, notifier: Catch sleeping/blocking for !blockable Daniel Vetter
2019-08-15  0:00   ` Jason Gunthorpe
2019-08-15  7:02     ` Daniel Vetter
2019-08-15 12:35       ` Jason Gunthorpe
2019-08-17 16:09         ` Daniel Vetter
2019-08-17 16:09           ` Daniel Vetter
2019-08-14 20:20 ` [PATCH 4/5] mm, notifier: Add a lockdep map for invalidate_range_start Daniel Vetter
2019-08-15  0:09   ` Jason Gunthorpe
2019-08-15  7:10     ` Daniel Vetter
2019-08-15  7:10       ` Daniel Vetter
2019-08-15 12:53       ` Jason Gunthorpe
2019-08-14 20:20 ` [PATCH 5/5] mm/hmm: WARN on illegal ->sync_cpu_device_pagetables errors Daniel Vetter
2019-08-15  0:11   ` Jason Gunthorpe
2019-08-15  7:14     ` Daniel Vetter
2019-08-15  7:14       ` Daniel Vetter
2019-08-14 21:29 ` ✗ Fi.CI.CHECKPATCH: warning for hmm & mmu_notifier debug/lockdep annotations Patchwork
2019-08-14 21:56 ` ✓ Fi.CI.BAT: success " Patchwork

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=20190816121243.GB5398@ziepe.ca \
    --to=jgg@ziepe.ca \
    --cc=akpm@linux-foundation.org \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=christian.koenig@amd.com \
    --cc=daniel.vetter@intel.com \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=feng.tang@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jannh@google.com \
    --cc=jglisse@redhat.com \
    --cc=keescook@chromium.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mhocko@kernel.org \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=rdunlap@infradead.org \
    --cc=rientjes@google.com \
    --cc=tglx@linutronix.de \
    --cc=wvw@google.com \
    --cc=yamada.masahiro@socionext.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: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.