[roll] Roll fuchsia [fdio] Do not rewind on closing a directory

When closing a directory, fdio unconditionally rewinds the directory
iterator before terminating for remote connections as part of the
destructor path. For large directory traversals, this has a large impact
on performance since it must make a channel call and wait for a
response.

Instead, only rewind the directory if this is being explicitly
requested.

Original-Fixed: 118601

fuchsia.storage: WalkDirectoryTreeCold/Files3/Dirs2/Depth5/fxfs   faster  0.881-0.926  8015756 +/- 119374 ns  7243081 +/- 72817 ns
fuchsia.storage: WalkDirectoryTreeCold/Files3/Dirs2/Depth5/memfs  faster  0.844-0.902  3809061 +/- 75727 ns   3323363 +/- 44736 ns
fuchsia.storage: WalkDirectoryTreeWarm/Files3/Dirs2/Depth5/f2fs   faster  0.842-0.918  4186910 +/- 151305 ns  3678573 +/- 26692 ns
fuchsia.storage: WalkDirectoryTreeWarm/Files3/Dirs2/Depth5/fxfs   faster  0.880-0.928  7654353 +/- 121392 ns  6918605 +/- 75749 ns
fuchsia.storage: WalkDirectoryTreeWarm/Files3/Dirs2/Depth5/memfs  faster  0.844-0.900  3810967 +/- 42238 ns   3322146 +/- 71521 ns
fuchsia.storage: WalkDirectoryTreeWarm/Files3/Dirs2/Depth5/minfs  faster  0.860-0.958  5666955 +/- 172000 ns  5142037 +/- 121461 ns

Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/784582
Original-Revision: 8283207d1196734e8d05c31d866ca086988cf978
GitOrigin-RevId: 4fdb0d4e11d74cc939531c3481f169b4dfe053db
Change-Id: Ie3eb2bdd8866d87aa16ccbb0dabb55a8d8bf9c34
1 file changed
tree: a6ca49851cbc3b450cc6f174a25e23bbf4306461
  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.