Page MenuHomeFreeBSD

Revert r329254
ClosedPublic

Authored by alc on Jul 17 2018, 4:58 PM.

Details

Summary

Revert r329254. The effect of r329254 was to perform COW faults as two page faults, not one. The first fault updated the mapped physical address, but mapped the new physical page with read-only access, and the second fault added write access. Over the past few weeks, we have reviewed and updated the various pmap implementation so that this extra fault wasn't necessary.

Diff Detail

Repository
rS FreeBSD src repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

alc created this revision.Jul 17 2018, 4:58 PM

Does Peter have a test that reproduces the mapping inconsistency that led to r329254?

kib accepted this revision.Jul 17 2018, 5:15 PM
In D16301#345952, @alc wrote:

Does Peter have a test that reproduces the mapping inconsistency that led to r329254?

No. When I asked the reporter about test case, all he had was some instrumentation which added delays in specific points, and even then the reproduction took long time.

This revision is now accepted and ready to land.Jul 17 2018, 5:15 PM
markj accepted this revision.Jul 17 2018, 5:17 PM
In D16301#345963, @kib wrote:
In D16301#345952, @alc wrote:

Does Peter have a test that reproduces the mapping inconsistency that led to r329254?

No. When I asked the reporter about test case, all he had was some instrumentation which added delays in specific points, and even then the reproduction took long time.

IIRC the bug was also responsible for occasional poudriere run failures on Ryzen.

alc added a comment.Jul 17 2018, 5:19 PM

How should I proceed?

markj added a subscriber: truckman.Jul 17 2018, 5:35 PM
In D16301#345968, @alc wrote:

How should I proceed?

How about asking @truckman to try a poudriere run on Ryzen with this change? He had reported that some port build failures stopped occurring with r329254.

In D16301#345968, @alc wrote:

How should I proceed?

How about asking @truckman to try a poudriere run on Ryzen with this change? He had reported that some port build failures stopped occurring with r329254.

I did a poudriere run to build my usual set of ports on r336438 with this patch and didn't observe any unexpected fallout. In particular lang/ghc and lang/go both built successfully, which almost always failed prior to the original fix. This was on amd64, so I can't say anything about other arches.

alc added a comment.Jul 18 2018, 5:13 PM
In D16301#345968, @alc wrote:

How should I proceed?

How about asking @truckman to try a poudriere run on Ryzen with this change? He had reported that some port build failures stopped occurring with r329254.

I did a poudriere run to build my usual set of ports on r336438 with this patch and didn't observe any unexpected fallout. In particular lang/ghc and lang/go both built successfully, which almost always failed prior to the original fix. This was on amd64, so I can't say anything about other arches.

Thank you!

This revision was automatically updated to reflect the committed changes.