[roll] Roll fuchsia [kernel][riscv] sfence.vma when mapping pages Synchronize hardware when mapping a page in addition to unmap/protect. It appears that some hardware has some sort of one entry cache of sorts that causes a page fault loop when mapping a page as a result of a fault. According to the architecture this is correct, since the sfence.vma instruction description is vague enough to cover additional synchronization that may be needed other than simple TLB flushes. To avoid a full cross-cpu shootdown on mapping, only shootdown when updating kernel entries and locally TLB flush when mapping user pages, which are the vast majority of mappings. Since it's possible another cpu can spuriously fault on this mapping, add a sfence.vma to the top of the page fault handler to try to avoid the secondary cpu getting into a page fault loop. Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/940164 Original-Revision: fcf1f9187789ecff536fbfa270047a6453833458 GitOrigin-RevId: 2f402c6dd181f1cea3bf80b41c24752fcdb90c50 Change-Id: I10698d289cf22bc1cdf2c02ae686e7006ae974c2
This repository contains Fuchsia's Global Integration manifest files.
All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.
Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia on Freenode.
First install Jiri.
Next run:
$ jiri init $ jiri import minimal https://fuchsia.googlesource.com/integration $ jiri update
Third party projects should have their own subdirectory in ./third_party.