History log of /freebsd-current/sys/dev/safexcel/safexcel_var.h
Revision Date Author Comments
# 95ee2897 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

sys: Remove $FreeBSD$: two-line .h pattern

Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/


# 4d846d26 10-May-2023 Warner Losh <imp@FreeBSD.org>

spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD

The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch
up to that fact and revert to their recommended match of BSD-2-Clause.

Discussed with: pfg
MFC After: 3 days
Sponsored by: Netflix


# 5bdb8b27 18-Jan-2021 Mark Johnston <markj@FreeBSD.org>

safexcel: Maintain per-session context records

The context record contains key material precomputed by the driver at
session creation time. Rather than storing various components of the
context record in each session, go a bit further and store the full
context record image so that safexcel_process() can simply copy the
image into each request submitted to the hardware. This simplifies the
data path and eliminates a bunch of unnecessary conditional logic that
was getting executed for each request.

MFC after: 1 week
Sponsored by: Rubicon Communications, LLC (Netgate)


# 1a6ffed5 18-Jan-2021 Mark Johnston <markj@FreeBSD.org>

safexcel: Simplify request allocation

Rather than preallocating a set of requests and moving them between
queues during state transitions, maintain a shadow of the command
descriptor ring to track the driver context of each request. This is
simpler and requires less synchronization between safexcel_process() and
the ring interrupt handler.

MFC after: 1 week
Sponsored by: Rubicon Communications, LLC (Netgate)


# 0371c3fa 18-Jan-2021 Mark Johnston <markj@FreeBSD.org>

safexcel: Add counters for some resource exhaustion conditions

This is useful when analyzing performance problems.

MFC after: 1 week
Sponsored by: Rubicon Communications, LLC (Netgate)


# e934d455 18-Jan-2021 Mark Johnston <markj@FreeBSD.org>

safexcel: Dispatch requests to the current CPU's ring

This gives better performance in some tests than the previous policy of
statically binding each session to a ring.

MFC after: 1 week
Sponsored by: Rubicon Communications, LLC (Netgate)


# 092cf8d6 08-Jan-2021 Mark Johnston <markj@FreeBSD.org>

safexcel: Fix a race around unblocking of crypto ops

safexcel_ring_intr() could fail to observed that sc_blocked is set after
completing all outstanding ops for a ring, in which case blocked ops
would be deferred forever.

Request structures are managed by individual rings, so move the
"blocked" flag into the per-ring state block and use the ring lock to
synchronize with safexcel_process(). Remove sc_mtx since it is now
unused.

MFC after: 3 days
Sponsored by: Rubicon Communications, LLC (Netgate)


# 8ba6acbb 08-Jan-2021 Mark Johnston <markj@FreeBSD.org>

safexcel: Stop using a stack buffer for the ring lock name

mtx_init() does not make a copy of the name so the buffer must be valid
for the lifetime of the driver instance. Store each ring's lock's name
in the ring structure.

MFC after: 3 days
Sponsored by: Rubicon Communications, LLC (Netgate)


# b356ddf0 14-Jul-2020 Mark Johnston <markj@FreeBSD.org>

Add a driver for the SafeXcel EIP-97.

The EIP-97 is a packet processing module found on the ESPRESSObin. This
commit adds a crypto(9) driver for the crypto and hash engine in this
device. An initial skeleton driver that could attach and submit
requests was written by loos and others at Netgate, and the driver was
finished by me.

Support for separate AAD and output buffers will be added in a separate
commit, to simplify merging to stable/12 (where those features don't
exist).

Reviewed by: gnn, jhb
Feedback from: andrew, cem, manu
MFC after: 1 week
Sponsored by: Rubicon Communications, LLC (Netgate)
Differential Revision: https://reviews.freebsd.org/D25417