Page MenuHomeFreeBSD

Further reorganize pmap_invalidate TLB code.
ClosedPublic

Authored by kib on Sep 21 2018, 8:48 PM.
Tags
None
Referenced Files
F106120912: D17277.id48333.diff
Wed, Dec 25, 6:09 PM
F106097325: D17277.diff
Wed, Dec 25, 8:49 AM
Unknown Object (File)
Thu, Dec 12, 11:05 PM
Unknown Object (File)
Oct 24 2024, 2:06 PM
Unknown Object (File)
Oct 24 2024, 2:05 PM
Unknown Object (File)
Oct 24 2024, 2:04 PM
Unknown Object (File)
Oct 24 2024, 2:04 PM
Unknown Object (File)
Oct 24 2024, 1:46 PM
Subscribers

Details

Summary

Split calculation of mask for shootdown IPI and local invalidation. Reorder IPI before local.

Test Plan

Peter, could you, please, test this, same as D17184.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 19735

Event Timeline

This revision is now accepted and ready to land.Sep 21 2018, 8:53 PM
sys/amd64/amd64/pmap.c
1810

Is there a reason that you're now doing the remote invalidations before the local one? Two of the functions are now doing remote invalidations first, and one is doing local invalidations first.

Move all IPIs before local, as advertised.

This revision now requires review to proceed.Sep 21 2018, 10:09 PM
This revision is now accepted and ready to land.Sep 21 2018, 10:14 PM

I ran tests with vm.pmap.pcid_enabled set to 0 and 1. The tests included all threaded tests and all of the mmap() tests.
No problems seen.

This revision was automatically updated to reflect the committed changes.
mjg added a subscriber: mjg.

I started getting semi-reliable tinderbox failures which I bisected to this change.

The box in question is a 4-socket broadwell with:
vm.pmap.invpcid_works: 1
vm.pmap.pcid_enabled: 1
vm.pmap.pg_ps_enabled: 1
vm.pmap.pat_works: 1

Most of the time the bug can be reproduced while building i386 LINT kernels and manifests itself with objcopy complaining about passed files (objcopy: file format not recognized, files change at random).

head r338993 with this change reverted works fine.

This revision can be closed. (I'd do it, but phabricator doesn't give me the option.)

This revision is now accepted and ready to land.Oct 23 2018, 2:42 PM