diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-21 11:54:28 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-21 11:54:28 +0000 |
commit | e6918187568dbd01842d8d1d2c808ce16a894239 (patch) | |
tree | 64f88b554b444a49f656b6c656111a145cbbaa28 /src/spdk/doc/notify.md | |
parent | Initial commit. (diff) | |
download | ceph-e6918187568dbd01842d8d1d2c808ce16a894239.tar.xz ceph-e6918187568dbd01842d8d1d2c808ce16a894239.zip |
Adding upstream version 18.2.2.upstream/18.2.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/spdk/doc/notify.md')
-rw-r--r-- | src/spdk/doc/notify.md | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/spdk/doc/notify.md b/src/spdk/doc/notify.md new file mode 100644 index 000000000..7c52244e3 --- /dev/null +++ b/src/spdk/doc/notify.md @@ -0,0 +1,40 @@ +# Notify library {#notify} + +The notify library implements an event bus, allowing users to register, generate, +and listen for events. For example, the bdev library may register a new event type +for bdev creation. Any time a bdev is created, it "sends" the event. Consumers of +that event may periodically poll for new events to retrieve them. +The event bus is implemented as a circular ring of fixed size. If event consumers +do not poll frequently enough, events may be lost. All events are identified by a +monotonically increasing integer, so missing events may be detected, although +not recovered. + +# Register event types {#notify_register} + +During initialization the sender library should register its own event types using +`spdk_notify_type_register(const char *type)`. Parameter 'type' is the name of +notification type. + +# Get info about events {#notify_get_info} + +A consumer can get information about the available event types during runtime using +`spdk_notify_foreach_type`, which iterates over registered notification types and +calls a callback on each of them, so that user can produce detailed information +about notification. + +# Get new events {#notify_listen} + +A consumer can get events by calling function `spdk_notify_foreach_event`. +The caller should specify last received event and the maximum number of invocations. +There might be multiple consumers of each event. The event bus is implemented as a +circular buffer, so older events may be overwritten by newer ones. + +# Send events {#notify_send} + +When an event occurs, a library can invoke `spdk_notify_send` with two strings. +One containing the type of the event, like "spdk_bdev_register", second with context, +for example "Nvme0n1" + +# RPC Calls {#rpc_calls} + +See [JSON-RPC documentation](jsonrpc.md/#rpc_notify_get_types) |