[zircon] Port ipc limit exception

This change
- Aligns port with channel when the ipc limit is exceeded
  which is to raise an exception, not a return code in
  this case it was ZX_ERR_SHOULD_WAIT
- Ups the packet limit per port (and systemwide) to 4096
  expecting that the dart flake goes away, see bug below
- Adds documentation about the limit and why we
  don't want to return "retry" codes.
- Updates the existing syscalls to point to the limit
- Minor cleanup of crasher tool
- Removes tests that expect ZX_ERR_SHOULD_WAIT

BUG: 53762
BUG: 55375

TEST
The custom with these changes like
https://fuchsia-review.googlesource.com/c/fuchsia/+/369103
Is to not create an automated test because it can create
futher OOM flakes, instead to enhance `crasher` with a
manual test. In this case new 'portq', when run the terminal
should display:

$ crasher portq
=@ crasher @=
doing : overflow a port with packets .............
> KERN: port (67314) has 4097 packets (crasher). Raising exception
 crashsvc: exception received, processing
 <== fatal : process crasher[67247] thread initial-thread[67249]
 <== policy error, PC at 0x41a74a477e27
  CS:                   0 RIP:     0x41a74a477e27 EFL:              0x202
  RAX: 0xffffffffffffffea RBX:             0x1001 RCX:     0x41a74a477e27
  RSI:                  0 RDI:                  0 RBP:      0x3ebd066df80
   R8:                  0  R9:                  0 R10:                  0
  R12:      0x1d66fe48f40 R13: 0xbe1f91937be2a866 R14:      0x1d66fe48f08
  fs.base:      0x2e758d0ab28 gs.base:                  0
  errc:                 0
 bottom of user stack:
 0x000003ebd066df48: 10d11b20 00000217 6fe48f38 000001d6 | .......8..o....|
 0x000003ebd066df58: 10d13120 00000217 6c0d9f68 000040a8 | 1......h..l.@..|
 0x000003ebd066df68: 00000002 00000000 6c0d9e8c 000040a8 |...........l.@..|
 0x000003ebd066df78: 5f9dfeb8 00004199 d066dfa0 000003eb |..._.A....f.....|
 0x000003ebd066df88: 10d11c78 00000217 6fe48f40 000001d6 |x.......@..o....|
 0x000003ebd066df98: 6fe48fa0 000001d6 d066dff0 000003eb |...o......f.....|
 0x000003ebd066dfa8: 5f9942cb 00004199 00000002 00000000 |.B._.A..........|
 0x000003ebd066dfb8: 00000000 2b76e1e3 0000000b 00000000 |......v+........|
 0x000003ebd066dfc8: 6c0d9dc0 000040a8 6c0d9fa0 000040a8 |...l.@.....l.@..|
 0x000003ebd066dfd8: 00000000 00000000 2a36e0e3 00000000 |..........6*....|
 0x000003ebd066dfe8: 6c0d9f10 000040a8 6c0d9fd0 000040a8 |...l.@.....l.@..|
 0x000003ebd066dff8: 00000000 00000000                   |................|
 arch: x86_64
 dso: id=bf64c9f2cd0879f8 base=0x41a74a470000 name=<vDSO>
 dso: id=066b8d4cbb1b1f0d base=0x41995f932000 name=libc.so
 dso: id=a5f4709b440b951e base=0x353ae0a1000 name=libc++abi.so.1
 dso: id=f0859e1ce39d0113 base=0x322646e0000 name=libc++.so.2
 dso: id=dc66c3d80e22e1eb base=0x2b941453000 name=libunwind.so.1
 dso: id=de8a4f904c3e2fde base=0x266cf273000 name=libfdio.so
 dso: id=01ed3cd5dd757c7a base=0x21710d0f000 name=app:crasher
 {{{reset}}}

Change-Id: Ic3576a6ab27de2a5ed9c33119d326f1902833980
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/403494
Commit-Queue: Carlos Pizano <cpu@google.com>
Reviewed-by: Carlos Pizano <cpu@google.com>
Reviewed-by: George Kulakowski <kulakowski@google.com>
Reviewed-by: Ian McKellar <ianloic@google.com>
Testability-Review: George Kulakowski <kulakowski@google.com>
9 files changed
tree: 329acbf9a591f6c81a980e4a5a4157fa1465148f
  1. boards/
  2. build/
  3. bundles/
  4. cts/
  5. docs/
  6. examples/
  7. garnet/
  8. products/
  9. scripts/
  10. sdk/
  11. src/
  12. third_party/
  13. tools/
  14. zircon/
  15. .clang-format
  16. .clang-tidy
  17. .gitattributes
  18. .gitignore
  19. .gn
  20. .style.yapf
  21. AUTHORS
  22. BUILD.gn
  23. CODE_OF_CONDUCT.md
  24. CONTRIBUTING.md
  25. LICENSE
  26. OWNERS
  27. PATENTS
  28. README.md
  29. rustfmt.toml
README.md

Fuchsia

Pink + Purple == Fuchsia (a new operating system)

What is Fuchsia?

Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors.

Fuchsia is an open source project with a code of conduct that we expect everyone who interacts with the project to respect.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See fuchsia.dev.