Split calculation of mask for shootdown IPI and local invalidation. Reorder IPI before local.
Details
- Reviewers
alc markj kib - Commits
- rS338891: Further reorganize pmap_invalidate TLB code.
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
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. |
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.
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.)