StagingBuff: support both Mlock & IOUring pin; Use in IoUAssmEngn
We use io_uring_register_buffers() for IoUringAssemblyEngine instead of using mlock(). This __appears__ to have reduced CPU utilization on the Dell laptop. Could also be that we recently upgraded total RAM from 8GiB to 32GiB.
This commit is contained in:
@@ -52,11 +52,11 @@ public:
|
||||
|
||||
~PcloudStimulusProducer() = default;
|
||||
|
||||
// Non-copyable, movable
|
||||
// Non-copyable, non-movable: pinners hold buffer instance references
|
||||
PcloudStimulusProducer(const PcloudStimulusProducer&) = delete;
|
||||
PcloudStimulusProducer& operator=(const PcloudStimulusProducer&) = delete;
|
||||
PcloudStimulusProducer(PcloudStimulusProducer&&) = default;
|
||||
PcloudStimulusProducer& operator=(PcloudStimulusProducer&&) = default;
|
||||
PcloudStimulusProducer(PcloudStimulusProducer&&) = delete;
|
||||
PcloudStimulusProducer& operator=(PcloudStimulusProducer&&) = delete;
|
||||
|
||||
// Control methods
|
||||
void start() override;
|
||||
@@ -94,7 +94,10 @@ public:
|
||||
StagingBuffer assemblyBuffer;
|
||||
IoUringAssemblyEngine ioUringAssemblyEngine;
|
||||
StagingBuffer collationBuffer;
|
||||
std::unique_ptr<StagingBuffer::MlockPinner> collationBufferMlockPinner;
|
||||
StagingBuffer averageIntensityBuffer;
|
||||
std::unique_ptr<StagingBuffer::MlockPinner>
|
||||
averageIntensityBufferMlockPinner;
|
||||
size_t tempStimulusFrameMem;
|
||||
StimulusFrame tempStimulusFrame;
|
||||
std::atomic<std::shared_ptr<MeshStimulusBuffer>> meshStimulusBuffer;
|
||||
|
||||
Reference in New Issue
Block a user