All of lore.kernel.org
 help / color / mirror / Atom feed
From: Byungchul Park <max.byungchul.park@gmail.com>
To: Thomas Gleixner <tglx@linutronix.de>,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@kernel.org>,
	david@fromorbit.com, tytso@mit.edu, willy@infradead.org,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Amir Goldstein <amir73il@gmail.com>,
	byungchul.park@lge.com, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org, linux-block@vger.kernel.org,
	linux-fsdevel@vger.kernel.org, oleg@redhat.com
Subject: Re: About the try to remove cross-release feature entirely by Ingo
Date: Wed, 13 Dec 2017 16:13:07 +0900	[thread overview]
Message-ID: <CANrsvRMAci5Vxj0kKsgW4-cgK4X4BAvq9jOwkAx0TWHqBjogVw@mail.gmail.com> (raw)
In-Reply-To: <CANrsvRPQcWz-p_3TYfNf+Waek3bcNNPniXhFzyyS=7qbCqzGyg@mail.gmail.com>

On Wed, Dec 13, 2017 at 3:24 PM, Byungchul Park
<max.byungchul.park@gmail.com> wrote:
> Lockdep works, based on the following:
>
>    (1) Classifying locks properly
>    (2) Checking relationship between the classes
>
> If (1) is not good or (2) is not good, then we
> might get false positives.
>
> For (1), we don't have to classify locks 100%
> properly but need as enough as lockdep works.
>
> For (2), we should have a mechanism w/o
> logical defects.
>
> Cross-release added an additional capacity to
> (2) and requires (1) to get more precisely classified.
>
> Since the current classification level is too low for
> cross-release to work, false positives are being
> reported frequently with enabling cross-release.
> Yes. It's a obvious problem. It needs to be off by
> default until the classification is done by the level
> that cross-release requires.
>
> But, the logic (2) is valid and logically true. Please
> keep the code, mechanism, and logic.

In addition, I want to say that the current level of
classification is much less than 100% but, since we
have annotated well to suppress wrong reports by
rough classifications, finally it does not come into
view by original lockdep for now.

But since cross-release makes the dependency
graph more fine-grained, it easily comes into view.

Even w/o cross-release, it can happen by adding
additional dependencies connecting two roughly
classified lock classes in the future.

Furthermore, I can see many places in kernel to
consider wait_for_completion() using manual
lock_acquire()/lock_release() and the rate using it
raises.

In other words, even without cross-release, the
more we add manual annotations for
wait_for_completion() the more we definitely
suffer same problems someday, we are facing now
through cross-release.

Therefore, I want to say the fundamental problem
comes from classification, not cross-release
specific. Of course, since cross-release accelerates
the condition, I agree with it to be off for now.

-- 
Thanks,
Byungchul

WARNING: multiple messages have this Message-ID (diff)
From: Byungchul Park <max.byungchul.park@gmail.com>
To: Thomas Gleixner <tglx@linutronix.de>,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@kernel.org>,
	david@fromorbit.com, tytso@mit.edu, willy@infradead.org,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Amir Goldstein <amir73il@gmail.com>,
	byungchul.park@lge.com, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org, linux-block@vger.kernel.org,
	linux-fsdevel@vger.kernel.org, oleg@redhat.com
Subject: Re: About the try to remove cross-release feature entirely by Ingo
Date: Wed, 13 Dec 2017 16:13:07 +0900	[thread overview]
Message-ID: <CANrsvRMAci5Vxj0kKsgW4-cgK4X4BAvq9jOwkAx0TWHqBjogVw@mail.gmail.com> (raw)
In-Reply-To: <CANrsvRPQcWz-p_3TYfNf+Waek3bcNNPniXhFzyyS=7qbCqzGyg@mail.gmail.com>

On Wed, Dec 13, 2017 at 3:24 PM, Byungchul Park
<max.byungchul.park@gmail.com> wrote:
> Lockdep works, based on the following:
>
>    (1) Classifying locks properly
>    (2) Checking relationship between the classes
>
> If (1) is not good or (2) is not good, then we
> might get false positives.
>
> For (1), we don't have to classify locks 100%
> properly but need as enough as lockdep works.
>
> For (2), we should have a mechanism w/o
> logical defects.
>
> Cross-release added an additional capacity to
> (2) and requires (1) to get more precisely classified.
>
> Since the current classification level is too low for
> cross-release to work, false positives are being
> reported frequently with enabling cross-release.
> Yes. It's a obvious problem. It needs to be off by
> default until the classification is done by the level
> that cross-release requires.
>
> But, the logic (2) is valid and logically true. Please
> keep the code, mechanism, and logic.

In addition, I want to say that the current level of
classification is much less than 100% but, since we
have annotated well to suppress wrong reports by
rough classifications, finally it does not come into
view by original lockdep for now.

But since cross-release makes the dependency
graph more fine-grained, it easily comes into view.

Even w/o cross-release, it can happen by adding
additional dependencies connecting two roughly
classified lock classes in the future.

Furthermore, I can see many places in kernel to
consider wait_for_completion() using manual
lock_acquire()/lock_release() and the rate using it
raises.

In other words, even without cross-release, the
more we add manual annotations for
wait_for_completion() the more we definitely
suffer same problems someday, we are facing now
through cross-release.

Therefore, I want to say the fundamental problem
comes from classification, not cross-release
specific. Of course, since cross-release accelerates
the condition, I agree with it to be off for now.

-- 
Thanks,
Byungchul

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2017-12-13  7:13 UTC|newest]

Thread overview: 82+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-13  6:24 About the try to remove cross-release feature entirely by Ingo Byungchul Park
2017-12-13  6:24 ` Byungchul Park
2017-12-13  7:13 ` Byungchul Park [this message]
2017-12-13  7:13   ` Byungchul Park
2017-12-13 15:23   ` Bart Van Assche
2017-12-13 15:23     ` Bart Van Assche
2017-12-14  3:07   ` Theodore Ts'o
2017-12-14  3:07     ` Theodore Ts'o
2017-12-14  5:58     ` Byungchul Park
2017-12-14  5:58       ` Byungchul Park
2017-12-14 11:18     ` Peter Zijlstra
2017-12-14 11:18       ` Peter Zijlstra
2017-12-14 13:30       ` Byungchul Park
2017-12-14 13:30         ` Byungchul Park
2017-12-13 10:46 ` [PATCH] locking/lockdep: Remove the cross-release locking checks Ingo Molnar
2017-12-13 10:46   ` Ingo Molnar
2017-12-13 10:46   ` Ingo Molnar
2017-12-14  5:01   ` Byungchul Park
2017-12-14  5:01     ` Byungchul Park
2017-12-15  4:05     ` Byungchul Park
2017-12-15  4:05       ` Byungchul Park
2017-12-15  6:24       ` Theodore Ts'o
2017-12-15  6:24         ` Theodore Ts'o
2017-12-15  7:38         ` Byungchul Park
2017-12-15  7:38           ` Byungchul Park
2017-12-15  8:39         ` Byungchul Park
2017-12-15  8:39           ` Byungchul Park
2017-12-15 21:15           ` Theodore Ts'o
2017-12-15 21:15             ` Theodore Ts'o
2017-12-16  2:41             ` Byungchul Park
2017-12-16  2:41               ` Byungchul Park
2017-12-29  1:47 ` About the try to remove cross-release feature entirely by Ingo Byungchul Park
2017-12-29  1:47   ` Byungchul Park
2017-12-29  2:02   ` Byungchul Park
2017-12-29  2:02     ` Byungchul Park
2017-12-29  3:51   ` Theodore Ts'o
2017-12-29  3:51     ` Theodore Ts'o
2017-12-29  7:28     ` Byungchul Park
2017-12-29  7:28       ` Byungchul Park
2017-12-30  6:16       ` Matthew Wilcox
2017-12-30  6:16         ` Matthew Wilcox
2017-12-30 15:40         ` Theodore Ts'o
2017-12-30 15:40           ` Theodore Ts'o
2017-12-30 20:44           ` Matthew Wilcox
2017-12-30 20:44             ` Matthew Wilcox
2017-12-30 22:40             ` Theodore Ts'o
2017-12-30 22:40               ` Theodore Ts'o
2017-12-30 23:00               ` Theodore Ts'o
2017-12-30 23:00                 ` Theodore Ts'o
2018-01-01 10:18                 ` Matthew Wilcox
2018-01-01 10:18                   ` Matthew Wilcox
2018-01-01 16:00                   ` Theodore Ts'o
2018-01-01 16:00                     ` Theodore Ts'o
2018-01-03  2:38                     ` Byungchul Park
2018-01-03  2:38                       ` Byungchul Park
2018-01-03  2:28                   ` Byungchul Park
2018-01-03  2:28                     ` Byungchul Park
2018-01-03  2:58                     ` Dave Chinner
2018-01-03  2:58                       ` Dave Chinner
2018-01-03  5:48                       ` Byungchul Park
2018-01-03  5:48                         ` Byungchul Park
2018-01-05 16:49                   ` J. Bruce Fields
2018-01-05 16:49                     ` J. Bruce Fields
2018-01-05 17:05                     ` J. Bruce Fields
2018-01-05 17:05                       ` J. Bruce Fields
2018-01-03  2:10               ` Byungchul Park
2018-01-03  2:10                 ` Byungchul Park
2018-01-03  7:05                 ` Theodore Ts'o
2018-01-03  7:05                   ` Theodore Ts'o
2018-01-03  8:10                   ` Byungchul Park
2018-01-03  8:10                     ` Byungchul Park
2018-01-03  8:23                     ` Byungchul Park
2018-01-03  8:23                       ` Byungchul Park
2018-01-03  8:23                       ` Byungchul Park
2018-01-03  1:57           ` Byungchul Park
2018-01-03  1:57             ` Byungchul Park
2018-01-02  7:57         ` Byungchul Park
2018-01-02  7:57           ` Byungchul Park
2017-12-29  8:09   ` Amir Goldstein
2017-12-29  8:09     ` Amir Goldstein
2017-12-29  9:46     ` Byungchul Park
2017-12-29  9:46       ` Byungchul Park

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=CANrsvRMAci5Vxj0kKsgW4-cgK4X4BAvq9jOwkAx0TWHqBjogVw@mail.gmail.com \
    --to=max.byungchul.park@gmail.com \
    --cc=amir73il@gmail.com \
    --cc=byungchul.park@lge.com \
    --cc=david@fromorbit.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mingo@kernel.org \
    --cc=oleg@redhat.com \
    --cc=peterz@infradead.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    --cc=tytso@mit.edu \
    --cc=willy@infradead.org \
    /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.