[roll] Roll fuchsia [superproject] Roll fuchsia [f2fs] Prepare for using paged_vmo

This CL makes FileCache run on paged vmo for regular files.
Other types of vnodes continue to use discardable vmos for
their FileCache until a way to pin pages in paged_vmo is ready.
It adds support for paged_vmo in the vmo manager and mmap
handling, and makes some changes as below.

. It changes the way to protect Vnode members that used
Vnode:mutex_ which is used to protect paged vmo. Instead of
Vnode:mutex, it protects them by using std::atomic and
a separate lock. This way helps the page fault logic simple.

. It keeps LRU-like list to track vnodes having dirty data
pages. Once f2fs begins using writeback APIs, the f2fs
writeback will flush dirty pages of vnodes fetched from
the front of the list.

Original-Bug: 118028, 111605

Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/777724
Original-Revision: 57b59555bfad323b5d9031c0d841f7422cb04196
GitOrigin-RevId: 616eebe8b0814d0b507779550473eafb557aebee
Roller-URL: https://ci.chromium.org/b/8792876544917748001
CQ-Do-Not-Cancel-Tryjobs: true
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/785944
Original-Revision: 9beb930391dcdc45cf8729051b0ab6f4f43477a4
Change-Id: I6c7510c5087dd3c12c62a4631bf6762cd68df7f5
1 file changed
tree: 5f13da5eb89e92ef21358b3fb3a6ca54d26d94a5
  1. git-hooks/
  2. infra/
  3. third_party/
  4. cts
  5. firmware
  6. flower
  7. jiri.lock
  8. minimal
  9. prebuilts
  10. README.md
  11. stem
  12. test_durations
  13. toolchain
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

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.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.