hayodea
94982d50b9
IoUringAssmEngn: map StagingBuff w/mmap; reg w/io_uring; add eventFd
...
StagingBuffer:
We now allocate memory with mmap(MAP_ANONYMOUS) so that we can be
sure it can be pinned with io_uring_register_buffers(). This
ensures that if DMA is possible, it should be usable.
IoUringAssemblyEngine:
We now register an eventfd with io_uring so that we can listen
for CQEs with boost::asio.
2025-11-05 15:34:23 -04:00
hayodea
0503705a13
PcloudStimBuff: invoke IOUringAsmEngn::setup/stop in start()
2025-11-04 15:33:55 -04:00
hayodea
ef9eef2bc3
PCloudStimBuff: Add useful dbg msg for thread affinity rigour
2025-11-04 00:56:46 -04:00
hayodea
2b3b318abe
Formatting
2025-11-04 00:49:15 -04:00
hayodea
f3a4c69597
StimBuff: DevAttSpec should be a sh_ptr, not a plain ref
2025-11-04 00:47:01 -04:00
hayodea
032e9ef8d5
DevMgt: Update comments on bg daemon thread selection
2025-11-04 00:33:43 -04:00
hayodea
4a1bcb1516
TODO: update
2025-11-04 00:32:39 -04:00
hayodea
d6e1e7ebc0
DevMgmt: StimBuffApi bg tasks should execute on body thread
2025-11-04 00:32:14 -04:00
hayodea
9a4f80a9d6
libAttachmentSupport: convert into shared lib
...
This ensures that the support routines in this library will be
exposed at the same vaddr to each object in the vaddrspace.
2025-11-04 00:22:25 -04:00
hayodea
7a55a65589
LivoxProto1: Rename pcloudDataSocketDesc=>pcloudDataFdDesc
2025-11-03 23:22:50 -04:00
hayodea
14b97a52ed
IoUringAsmEngn: Use pcloudDataSocket from UdpCmdDemux
2025-11-03 23:10:24 -04:00
hayodea
5845f1a41d
Bug:Boost: Use shlibs instead of header-only for call_stack::top_
...
This symbol is defined as a static member object inside of a
boost detail header. When boost headers are used in a project
that uses Boost in both the main binary as well as dlopen()'d
shlibs, the top_ symbol gets duplicated and the metadata gets
partitioned.
We use the Boost shlib to unify both the main binary and the
shlibs to use the same memory address for top_.
This involves marking the templated object call_stack::top_ as
"extern" and then declaring to Boost that we intend to use the
shlibs.
2025-11-03 22:59:52 -04:00
hayodea
6ea90c2dae
Squash: into "make use of pcloudDataFdDesc"
2025-11-03 22:12:43 -04:00
hayodea
121b7db045
CMake:attachmentSupport: Don't link against Boost_LIBRARIES
2025-11-03 21:09:55 -04:00
hayodea
d88dd2cf44
livoxGen1: Make use of livoxProto1_getPcloudDataFdDesc
2025-11-02 19:16:22 -04:00
hayodea
b3bf0e2cb9
StimBuff,commonLibs: Add libattachmentSupport, move fnptrs into .cpp files
...
We move the methods in StimulusBuffer whose addresses are taken during
program execution into a separate static lib. This guarantees that
they'll have their own, single vaddr at runtime, at least within
each independent code module.
2025-11-02 19:12:28 -04:00
hayodea
45ad5c83ee
livoxProto1: Open pcloudDataSocket in UdpCmdDemux
...
The pcloudData socket is now opened by UdpCommandDemuxer, when
libLivoxProto1 is initialized. We can now just pick up the socket
and be certain it'll be there if the lib is being executed.
2025-11-01 22:41:58 -04:00
hayodea
10e615e75e
StimBuff: make start/stop virtual;
...
We can now have the derived StimBuff class implement its own
start()/stop() preamble and epilogue.
2025-11-01 22:05:52 -04:00
hayodea
05515743c5
Put continuation near frontend func
2025-11-01 21:33:35 -04:00
hayodea
b2c73f6bed
IoUringAssmEngine: Add skeleton setup/finalize
...
Also add dependency on liburing.
This patch adds basic io_uring_queue_init and io_uring_exit
support and calls.
2025-11-01 21:30:47 -04:00
hayodea
797a95e6a1
IoUringAssmEngine: formatting/indentation
2025-11-01 20:21:49 -04:00
hayodea
972979cc10
IoUringAssmEngine: Remove dead wood
2025-11-01 20:18:05 -04:00
hayodea
ba955ef633
PcloudStimBuff: Add skeleton assembleAndProduceStimulusFrameReq impl
2025-11-01 04:14:07 -04:00
hayodea
a32b4f05d1
livoxGen1: call PcloudStimulusBuffer::start/stop
...
We now call start()/stop() in attach/detachDeviceReq.
2025-11-01 03:32:05 -04:00
hayodea
c8474edad7
livox: rename handshakeTimeoutMs=>commandTimeoutMs
2025-11-01 02:45:24 -04:00
hayodea
58e9b09995
livoxGen1: Use RAII to close dlopen handle
2025-11-01 01:54:49 -04:00
hayodea
c2c6d409dd
DAPSpec: QualeIfaceApiParams: Add histbuffMs
2025-11-01 01:35:29 -04:00
hayodea
8dba0fdfc4
Todo: update
2025-11-01 01:26:51 -04:00
hayodea
67af9f02da
DAPSpecs: Update parseRequiredParamAsInt to support all param lists
2025-11-01 01:11:34 -04:00
hayodea
e824685c19
DAPSpec: Add params to quale-iface-api
...
We add params to the quale iface (soon to be renamed to cologex-api).
This allows us to eventually set the history length for stimbuffs.
2025-11-01 00:57:04 -04:00
hayodea
9cf1398f5c
PcloudStimBuff: specify that openCl constraints are for input
2025-11-01 00:19:06 -04:00
hayodea
f76f718e80
PcloudStimBuff: make OpenCL constraints explicit
2025-11-01 00:17:10 -04:00
hayodea
cdade17905
Add SpMcRingBuffer to base class StimulusBuffer
...
This will hopefully genericise the interface for Stimbuffs.
2025-11-01 00:09:53 -04:00
hayodea
5af7e531b6
Style: use modern C++ style
2025-11-01 00:05:43 -04:00
hayodea
018c1f1e1d
SpMcRingBuffer: Added this new class
...
This will be the foundation for all StimulusBuffers. We can most
likely add this generically to the StimulusBuffer base class rather
than adding it only to StimulusBuffer's derived classes.
2025-10-31 22:58:18 -04:00
hayodea
5e522178d8
SequenceLock: Newly added
...
What can I say? It's a very portable primitive that allows us to
create many RCU-type data structures with many readers and one
writer, locklessly.
2025-10-31 22:12:23 -04:00
hayodea
7574f3f59a
StimBuff: customize stop() delay; add stimFrameProductionTimesliceInd
2025-10-31 13:54:50 -04:00
hayodea
0de031c74b
Formatting: move big inlines out of class def
2025-10-31 13:47:00 -04:00
hayodea
ebbb2b1345
StimBuff: Add skeleton common impl with rate limiting
2025-10-31 13:43:23 -04:00
hayodea
3bf8146ca3
CMake: STIMBUFF_FRAME_RETRY_PERIOD_MS 3=>1
2025-10-31 12:34:34 -04:00
hayodea
f32a472c5d
PcloudStimBuff: Add skeleton daemon; frame rate limiting
...
Basic implementation of the stimbuff mechanism's frame rate
limiting behaviour.
2025-10-31 12:22:07 -04:00
hayodea
7994c2f6e2
CMake,config.h: Add -DSTIMBUFF_FRAME_RETRY_DELAY_MS
...
This determines how long a stimbuff should wait before retrying
to produce a stimframe, if the previous stimframe is still being
produced.
2025-10-31 12:08:40 -04:00
hayodea
9ab155560a
livoxGen1:ioUringAssmEngine: Fix build
2025-10-31 11:49:56 -04:00
hayodea
720babd39d
CMake,config.h: Add -DSTIMBUFF_FRAME_PERIOD_MS
...
This determines the maximum rate at which stimbuffs will be refreshed
with data from their device.
A device may refresh less frequently than this, but not more
frequently. The goal here is to give us control over the max
rate at which a device produces data.
2025-10-31 11:31:04 -04:00
hayodea
5c3bc6c324
livoxGen1: Reduce nDgramsPerFrame 500=>30 ~86400 points/sec
2025-10-31 11:27:43 -04:00
hayodea
b53ef42124
livoxGen1: documentation and formatting
2025-10-31 08:57:37 -04:00
hayodea
babfda4d0f
livoxGen1: Reduce handshakeTimeoutMs default to 5ms
...
We have no real reason to set it as high as 300.
2025-10-31 08:57:37 -04:00
hayodea
88dd872c95
Todo: Add async bridging idea as sync wait mechanism
2025-10-31 08:57:37 -04:00
hayodea
b8255234de
Todo: add idea for dealing with late timeouts
2025-10-31 08:57:37 -04:00
hayodea
1a4f7f97bd
BUG: Late-timeout during finalize
...
This adds a script which reproduces this bug after a lot of
iterations in gdb and lets us get a backtrace
2025-10-31 08:57:37 -04:00