linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Alexander Duyck <alexander.h.duyck@linux.intel.com>
To: David Hildenbrand <david@redhat.com>, Michal Hocko <mhocko@kernel.org>
Cc: akpm@linux-foundation.org, aarcange@redhat.com,
	dan.j.williams@intel.com,  dave.hansen@intel.com,
	konrad.wilk@oracle.com, lcapitulino@redhat.com,
	 mgorman@techsingularity.net, mm-commits@vger.kernel.org,
	mst@redhat.com,  osalvador@suse.de, pagupta@redhat.com,
	pbonzini@redhat.com, riel@surriel.com,  vbabka@suse.cz,
	wei.w.wang@intel.com, willy@infradead.org,
	yang.zhang.wz@gmail.com,  linux-mm@kvack.org
Subject: Re: + mm-introduce-reported-pages.patch added to -mm tree
Date: Fri, 08 Nov 2019 09:18:36 -0800	[thread overview]
Message-ID: <1d881e86ed58511b20883fd0031623fe6cade480.camel@linux.intel.com> (raw)
In-Reply-To: <131f72aa-c4e6-572d-f616-624316b62842@redhat.com>

On Fri, 2019-11-08 at 08:06 +0100, David Hildenbrand wrote:
> > > "for your own idea" - are you saying Nitesh's approach is my idea? I
> > > hope not, otherwise I would get credit for Rik's and Nitesh's work by
> > > simply providing review comments.
> > 
> > Sorry, I was using "your" in the collective sense. I meant Nitesh, Rik,
> > MST, yourself, and any other folks are working on the bitmap approach.
> 
> I guess I was misreading it then :)
> 
> > > Of course it is okay to fight for your own idea.
> > > 
> > > > let me reply to the criticisms of my own patchset before you pile on. I
> > > 
> > > Me (+ Michal): Are these core buddy changes really wanted and required.
> > > Can we evaluate the alternatives properly. (Michal even proposed
> > > something very similar to Nitesh's approach before even looking into it)
> > 
> > That is part of my frustration. Before I even had a chance to explain the
> > situation you had already jumped in throwing a "I second that" into the
> > discussion and insisting on comparisons against Nitesh's patch set which I
> > have already provided.
> 
> The different prototypes Nitesh provided are the only alternatives we 
> have. So, to do the discussion that I want to see for a long time, we 
> should evaluate them?
> 
> > Nitesh's most recent patch set caused a kernel panic, and when I fixed
> > that then it is over 30% worse performance wise than my patch set, and
> > then when Nitesh restricted the order to MAX_ORDER - 1 and added some
> > logic to check the buddy before taking the lock then it finally became
> > comparable.
> 
> Yes, they are protoypes, RFCs. You did the right thing to report the 
> issues so Nitesh can look into them.

I feel like you are arguing this both ways. On one side you are saying
that these are alternatives and need to be evaluated. Then on the other
side you say they are RFCs and it isn't fair to hold the outcome of a
performance evaluation against them.

Maybe instead of directly comparing the two approaches we should just look
at defining what requirements need to be met for either approach to be
considered acceptable. Then neither of us necessarily needs to be
comparing things directly and instead we are marching toward a set of
requirements to get to the solution that will work best overall.

> > > You: Please take my patch set, it is better than the alternatives
> > > because of X, for X in {RFC quality, sparse zones, locking internals,
> > > current performance differences}
> > 
> > I should have replied to Michal's original question and simply stated that
> > Mel had not replied to the patches in the last month and a half. I half
> > suspect that is the reason for Andrew applying it. It put some pressure on
> > others to provide review feedback, which if nothing else I am grateful
> > for.
> > 
> > You had inserted the need to compare it against Nitesh's patch set. Which
> > based on Nitesh's email is likely going to be a little while since he
> > cannot give me an ETA.
> 
> So I want us (you, me, Michal, Mel, Dave, ...) to discuss the direction 
> we want to go. I'd love to do this on a design level, instead of having 
> to wait for any patch set. But I guess this is harder to do? And 
> especially as you keep mentioning the performance difference, I think we 
> should evaluate if this is an unsolvable problem or just an issue in the 
> current prototype?
> 
> I mean people could have a look at Niteshs older series to see how it 
> fundamentally differs to your approach (external tracking). Nitesh might 
> have fixed some things in the mean time, and is replacing the "fake 
> allocation" by page isolation. But I mean, the general approach should 
> be obvious and sufficient for people to make a decision.

I think the problem is what is being asked for versus how we are going
about it. Asking for performance comparisons isn't going to really lead to
a design discussion.

One thing that might be interesting, at least to me, might be to just
start a new thread to discuss the options/approaches. I know I haven't
really heard much about the page isolation approach. I would be interested
in hearing how you guys are planning to go about implementing that.

> > > And all I am requesting is that we do the evaluation, discuss if there
> > > are really no alternatives, and sort out fundamental issues with
> > > external tracking.
> > > 
> > > Michal asked the very same question again at the beginning of this
> > > thread: "Is there really a consensus"
> > 
> > Yes, but he also said he is not nacking the patch. It seemed like he is
> 
> I never NACKed your series either.
> 
> > deferring to Mel on this so I will try to work with Mel to address his
> > concerns since he had some feedback that I can act on.
> 
> Makes perfect sense to me.
> 
> > I'll address the comments Mel provided and be submitting a v14 sometime
> > soon.
> > 
> > > Reading the replies, "no".
> > 
> > I get that you think the bitmap approach is the best approach, but the
> 
> No, I think that a simple external tracking is preferable over the core 
> buddy modifications we have right now. Kernel panics of fixable 
> performance regressions in an RFC are not fundamental issues to me.
> 
> > fact is it is still invasive, just to different parts of the mm subsystem.
> 
> I'd love to see how it uses the page isolation framework, and only has a 
> single hook to queue pages. I don't like the way pages are pulled out of 
> the buddy in Niteshs approach currently. What you have is cleaner.

I don't see how you could use the page isolation framework to pull out
free pages. Is there a thread somewhere on the topic that I missed?

> > I would argue that one of my concerns about the hotplug and sparse
> > handling is that by skipping those for now is essentially hiding what is
> > likely to be some invasive code, likely not too different from what I had
> > to deal with with compaction. At this point he adds more data to the zone
> > struct than my changes, and I suspect as he progresses that may increase
> > further. >
> > I do not think it is fair to hold up review and acceptance of this patch
> > set for performance comparisons with a patch set with no definite ETA.
> 
> Michal asked "Is there really a consensus". A consensus that we want 
> something like this, not that we want Nitesh's approach. It's just an 
> alternative worth discussing.
> 
> And if you are reworking your patch set now with Mel, we might get 
> another alternative that everybody is pleased with. Nobody is against 
> reviewing your series - that's perfect, it's against picking it up and 
> sending it upstream. That's my concern an Michals concern if I am not wrong.

I agree it is not necessarily ready for upstream yet. Thus why I am
working on a v14. My past experience has been that anything accepted at
this state is going to spend at least a couple months in the mm tree
before it is pushed. However I don't see the issue with it spending some
time in the mm tree and linux-next to get more eyes on it to identify any
potential issues or additional use cases. If anything I welcome the
additional debate, as it allows for additional opportunities for
improvement.



  reply	other threads:[~2019-11-08 17:18 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20191106000547.juQRi83gi%akpm@linux-foundation.org>
2019-11-06 12:16 ` + mm-introduce-reported-pages.patch added to -mm tree Michal Hocko
2019-11-06 14:09   ` David Hildenbrand
2019-11-06 16:35     ` Alexander Duyck
2019-11-06 16:54       ` Michal Hocko
2019-11-06 17:48         ` Alexander Duyck
2019-11-06 22:11           ` Mel Gorman
2019-11-06 23:38             ` David Hildenbrand
2019-11-07  0:20             ` Alexander Duyck
2019-11-07 10:20               ` Mel Gorman
2019-11-07 16:07                 ` Alexander Duyck
2019-11-08  9:43                   ` Mel Gorman
2019-11-08 16:17                     ` Alexander Duyck
2019-11-08 18:41                       ` Mel Gorman
2019-11-08 20:29                         ` Alexander Duyck
2019-11-09 14:57                           ` Mel Gorman
2019-11-10 18:03                             ` Alexander Duyck
2019-11-06 23:33           ` David Hildenbrand
2019-11-07  0:20             ` Dave Hansen
2019-11-07  0:52               ` David Hildenbrand
2019-11-07 17:12                 ` Dave Hansen
2019-11-07 17:46                   ` Michal Hocko
2019-11-07 18:08                     ` Dave Hansen
2019-11-07 18:12                     ` Alexander Duyck
2019-11-08  9:57                       ` Michal Hocko
2019-11-08 16:43                         ` Alexander Duyck
2019-11-07 18:46                   ` Qian Cai
2019-11-07 18:02             ` Alexander Duyck
2019-11-07 19:37               ` Nitesh Narayan Lal
2019-11-07 22:46                 ` Alexander Duyck
2019-11-07 22:43               ` David Hildenbrand
2019-11-08  0:42                 ` Alexander Duyck
2019-11-08  7:06                   ` David Hildenbrand
2019-11-08 17:18                     ` Alexander Duyck [this message]
2019-11-12 13:04                       ` David Hildenbrand
2019-11-12 18:34                         ` Alexander Duyck
2019-11-12 21:05                           ` David Hildenbrand
2019-11-12 22:17                             ` David Hildenbrand
2019-11-12 22:19                             ` Alexander Duyck
2019-11-12 23:10                               ` David Hildenbrand
2019-11-13  0:31                                 ` Alexander Duyck
2019-11-13 18:51                           ` Nitesh Narayan Lal
2019-11-06 16:49   ` Nitesh Narayan Lal
2019-11-11 18:52   ` Nitesh Narayan Lal
2019-11-11 22:00     ` Alexander Duyck
2019-11-12 15:19       ` Nitesh Narayan Lal
2019-11-12 16:18         ` Alexander Duyck
2019-11-13 18:39           ` Nitesh Narayan Lal

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=1d881e86ed58511b20883fd0031623fe6cade480.camel@linux.intel.com \
    --to=alexander.h.duyck@linux.intel.com \
    --cc=aarcange@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=dan.j.williams@intel.com \
    --cc=dave.hansen@intel.com \
    --cc=david@redhat.com \
    --cc=konrad.wilk@oracle.com \
    --cc=lcapitulino@redhat.com \
    --cc=linux-mm@kvack.org \
    --cc=mgorman@techsingularity.net \
    --cc=mhocko@kernel.org \
    --cc=mm-commits@vger.kernel.org \
    --cc=mst@redhat.com \
    --cc=osalvador@suse.de \
    --cc=pagupta@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=riel@surriel.com \
    --cc=vbabka@suse.cz \
    --cc=wei.w.wang@intel.com \
    --cc=willy@infradead.org \
    --cc=yang.zhang.wz@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).