Re: [PATCH-tip 0/2] locking/rwsem: Rwsem rearchitecture part 2 follow-up patches

From: Ingo Molnar
Date: Wed Apr 17 2019 - 01:57:52 EST



* Waiman Long <longman@xxxxxxxxxx> wrote:

> On 04/16/2019 01:37 PM, Peter Zijlstra wrote:
> > On Tue, Apr 16, 2019 at 01:03:10PM -0400, Waiman Long wrote:
> >> On 04/16/2019 10:17 AM, Peter Zijlstra wrote:
> >>> On Tue, Apr 16, 2019 at 09:18:50AM -0400, Waiman Long wrote:
> >>>> On 04/16/2019 09:10 AM, Peter Zijlstra wrote:
> >>>>> On Mon, Apr 15, 2019 at 04:58:27PM -0400, Waiman Long wrote:
> >>>>>> This series contain 2 follow-up patches to alleviate the performance
> >>>>>> regression found in the page_fault1 test of the will-it-scale benchmark.
> >>>>>> This does not recover all the lost performance, but reclaim a sizeable
> >>>>>> portion of it.
> >>>>>>
> >>>>>> The regression was found on an Intel system. I have run the test on
> >>>>>> an AMD system. The regression wasn't seen there. There are only minor
> >>>>>> variations in performance. Perhaps the page fault path is quite different
> >>>>>> between Intel and AMD systems.
> >>>>> Can you please just fold this back into the appropriate patches? Trying
> >>>>> to review all the back and forth is painful.
> >>>> I will send out an update part 2 patch with patch 1 of this series
> >>>> merged into the writer spinning on reader patch. Patch 2 of this series
> >>>> will be a standalone one.
> >>> Hmm, in that case I can fold it back too. So hold off on sending it.
> >>>
> >>> I thought #2 was a fixup for an earlier patch as well.
> >> #2 is a performance fix.
> > Of this patch?
> >
> > 206038 N T Apr 13 Waiman Long (7.5K) ââ>[PATCH v4 11/16] locking/rwsem: Enable readers spinning on writer
> >
> > Fixes should have a Fixes: tag. And if the patch it fixes isn't a commit
> > yet, the patch should be refreshed to not need a fix.
>
> The original patch isn't wrong. This patch just introduce another idea
> to make it better. That is why I would still like to separate it as a
> distinct patch.

Yeah, I think it's better to have it in two separate patches. Basically
patch #1 has a downside for certain workloads, which the heuristics in
patch #2 improve. That's the only connection between the two patches.

If we find some other worst-case workload then the split of the commits
would allow more finegrained examination of the effects of these
performance tunings.

Thanks,

Ingo