History log of /fuchsia/zircon/kernel/object/pinned_memory_token_dispatcher.cpp
Revision Date Author Comments
# 41e17576 28-Jun-2018 David Stevens <stevensd@google.com>

[syscalls][bti] Add a flag for contiguous mappings

Add a ZX_BTI_CONTIGUOUS flag to zx_bti_pin to make it more convenient
to pin vmos allocated with zx_vmo_create_contiguous.

Test: Launch zircon_guest after migrating various callers to new flag
Change-Id: Ie3c8600a2eff0aea3aff62d2087a727febcdddcf


# 36320886 19-Jul-2018 Corey Tabaka <eieio@google.com>

[kernel] Dispatchers and most kernel objects lockdep instrumented.

- Convert SoloDispatcher to a CRTP template type similar to
PeerDispatcher. This makes the lock classes for different solo
dispatchers distinct.
- Instrument the locks for all dispatchers.
- Instrument the locks for all kernel objects except those that
lock the thread_lock.

Bug: ZX-23
Test: k ut all and system/test/* pass + manual stress testing.

Change-Id: I8106c04911e47ea15ccce8e7abd5fbd62adfa6fe


# 56f58526 10-Apr-2018 Todd Eisenberger <teisenbe@google.com>

[kernel][pmt] Use MapContiguous in PMT IOMMU interaction

This propagates the need for a contiguous mapping into the IOMMU map
routine, which can use that information to properly fulfill the
remapping request.

Change-Id: Ic87e143896c1b678e92c5590cbcdb1cd3a50c633


# 6e4df1f8 09-Apr-2018 Todd Eisenberger <teisenbe@google.com>

[kernel][pmt] Fix panic during failed creation

Previously this code would panic from recursive lock acquisition when
RemovePmo was called in the dtor during an early-return caused by IOMMU
mapping failure.

Change-Id: Iad37ea0ff67b4d30a4cb66c84c9df43481dbc745


# a3688d5b 27-Mar-2018 Todd Eisenberger <teisenbe@google.com>

[kernel][bti] Implement quarantine semantics

If a PMT is closed without pmt_unpin being called on it, the memory will
be moved to a quarantine list in the BTI. If the last handle to the BTI
is closed, the contents of the quarantine will be leaked rather than
released, to prevent stray DMA.

Change-Id: Ic60623fd818e60c8b0679b07f1d36cf03874bb36


# 286261a3 14-Mar-2018 Todd Eisenberger <teisenbe@google.com>

[syscalls][bti] Introduce Pinned Memory Tokens

This introduces two system calls:
1) zx_bti_pin_new: This will replace zx_bti_pin (and be renamed to
zx_bti_pin). It is identical to zx_bti_pin, except it additionally
returns a handle to a new type of object, a Pinned Memory Token.
When this object is destroyed using zx_pmt_unpin(), the memory
pinned by zx_bti_pin_new() is unpinned.
2) zx_pmt_unpin: This will replace zx_bti_unpin. In the current
implementation, it is no different than zx_handle_close. However, in
a subsequent diff it will be used to create a quarantine for DMA
targets in the event of driver process crash.

ZX-1936 #comment Introduce the new syscalls

Change-Id: I39d9bd8ce3582cd54b323246df286bba03a54a1c