Working on a vbdev that maintains some global state and underlying data
structures, I decided to explore an SPDKish alternative to the traditional
synchronization, that of the single-threaded semantics where global data
structures are being maintained by a dedicated thread, with requests being
served by message passing to/from that thread.
Coding such a thread against the spdk_allocate_thread() guidelines proved
to be quite straightforward, and I've got it up and running. At the same
time, I'm still unclear as to why I should be essentially duplicating the
features of the pinned SPDK thread, with my gut feeling being that the very
same single-threaded semantics could have been easily achieved by pinning
my execution context to some randomly or round-robin chose pinned thread of
the configured allowed cores mask.
If that gut feeling doesn't fool me, I will appreciate a pointer to any
docs and/or examples showing how one can pin an arbitrary execution context
inside a vbdev to an SPDK native thread (similar to app_start and friends,
I believe), and do polling on that thread/ messaging to/from that thread
similar to what a POSIX thread equipped with spdk thread envelope could do.
Thanks in advance,