[roll] Roll fuchsia [kernel][policy] Change EnforceBasicPolicy to use thread signals

Prior to this change EnforceBasicPolicy might directly call
ProcessDispatcher::Kill, which acquires one or more mutexes, which
meant it could not be used in contexts where blocking was not allowed
(e.g. while holding a spinlock).

This commit changes EnforceBasicPolicy to use the thread signal
infrastructure to call Kill at a "safe-point".  Now,
EnforceBasicPolicy can be called even when holding a spinlock.

Add a new thread signal, THREAD_SIGNAL_POLICY_KILL, similar to
THREAD_SIGNAL_POLICY_EXCEPTION.  EnforceBasicPolicy now raise this
signal.  Once the thread has returned out to a "safe-point",
ProcessPendingSignals will terminate the process.

Original-Original-Bug: b/511571339
Original-Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1618269
Original-Original-Revision: 6df812a3a5a16c7f2d8a8fb3fad1379303ae459e
GitOrigin-RevId: 124b717ef48a0203ca02ecb4993dd4c9774301af
Change-Id: I700d03ebc1b15e0c3596d0f1faf7ae032a4f2a6f
Reviewed-on: https://fuchsia-review.googlesource.com/c/integration/+/1620480
Cr-Commit-Position: refs/heads/main@{#193297}
1 file changed
tree: 786fdbcbb9095586ceee9fa81ac8406a4ae538f6
  1. ctf/
  2. git-hooks/
  3. infra/
  4. third_party/
  5. cobalt
  6. flower
  7. jiri.lock
  8. MILESTONE
  9. minimal
  10. prebuilts
  11. README.md
  12. stem
  13. test_durations
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 in one of the communication channels documented at get involved.

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.