advLigoRTS merge requestshttps://git.ligo.org/cds/software/advligorts/-/merge_requests2020-07-31T18:43:41Zhttps://git.ligo.org/cds/software/advligorts/-/merge_requests/145Creating the 4.0.0 release for Debian.2020-07-31T18:43:41ZJonathan HanksCreating the 4.0.0 release for Debian.* Initial release for production
* Breaks out the awgtpman, local_dc, and edc programs into seperate packages to facilitate future upgrades in production with minimal impact.* Initial release for production
* Breaks out the awgtpman, local_dc, and edc programs into seperate packages to facilitate future upgrades in production with minimal impact.4.0.0Erik von ReisErik von Reishttps://git.ligo.org/cds/software/advligorts/-/merge_requests/143Rtcds enable option2020-07-30T15:15:40ZErik von ReisRtcds enable optionALLOW_MODEL_ENABLE can now be set to false to block rtcds from trying to "systemctl enable" a model. If ALLOW_MODEL_ENABLE is not defined, then enabling is allowed.ALLOW_MODEL_ENABLE can now be set to false to block rtcds from trying to "systemctl enable" a model. If ALLOW_MODEL_ENABLE is not defined, then enabling is allowed.4.0.0Jameson Rollinsjameson.rollins@ligo.orgJameson Rollinsjameson.rollins@ligo.orghttps://git.ligo.org/cds/software/advligorts/-/merge_requests/136Update rtcds to work with latest code2020-07-30T01:04:29ZErik von ReisUpdate rtcds to work with latest codertcds lsmod now checks local_dc and cps_xmit processes.
Also checks all dolphin modules. Closes #122
rtcds start and stop no longer require a model to be enabled,
since we don't use "enabled" systemd units to start models at boot.
Ins...rtcds lsmod now checks local_dc and cps_xmit processes.
Also checks all dolphin modules. Closes #122
rtcds start and stop no longer require a model to be enabled,
since we don't use "enabled" systemd units to start models at boot.
Instead rtcds start and rtcds stop check to see if the model is active or not.
rtcds start now has a sleep between starts. This puts a gap between IOP starts and user model starts,
sidestepping a race condition.
Also ignores errors when building every model, allowing for expected errors such as channels
missing from the channels file. Closes #1344.0.0Jameson Rollinsjameson.rollins@ligo.orgJameson Rollinsjameson.rollins@ligo.orghttps://git.ligo.org/cds/software/advligorts/-/merge_requests/141Standalone edc timing2020-07-29T23:26:04ZJonathan HanksStandalone edc timingAllow the standalone edc to start writing data before the 16hz mark so that it can be ready in time for local_dc to read it.Allow the standalone edc to start writing data before the 16hz mark so that it can be ready in time for local_dc to read it.4.0.0Erik von ReisErik von Reishttps://git.ligo.org/cds/software/advligorts/-/merge_requests/140Shorten the standalone_edc's epics variable names2020-07-28T19:53:12ZJonathan HanksShorten the standalone_edc's epics variable namesAdjusting the suffixes/names for the edcu epics variables to keep them managable.
Do not broadcast epics information if a prefix is not given.Adjusting the suffixes/names for the edcu epics variables to keep them managable.
Do not broadcast epics information if a prefix is not given.4.0.0Erik von ReisErik von Reishttps://git.ligo.org/cds/software/advligorts/-/merge_requests/139Fix connection variable suffix in EzCaRead.pm2020-07-28T16:50:32ZKeith ThorneFix connection variable suffix in EzCaRead.pmClose issue #141 - correct suffix of EPICS connection variable to _CONN in latter part of EzCaRead.pm to match value of header structure of same fileClose issue #141 - correct suffix of EPICS connection variable to _CONN in latter part of EzCaRead.pm to match value of header structure of same file4.0.0Rolf BorkRolf Borkhttps://git.ligo.org/cds/software/advligorts/-/merge_requests/138Standalone edc epic cas issues2020-07-23T22:54:37ZJonathan HanksStandalone edc epic cas issuesUpdate the standalone_edc to export the EPICS variables that it claimed to export.
* <prefix>EDCU_CHAN_CONN
* <prefix>EDCU_CHAN_NOCON
* <prefix>EDCU_CHAN_CNT
This puts the epics cas loop in the background diagnostics/json thread...Update the standalone_edc to export the EPICS variables that it claimed to export.
* <prefix>EDCU_CHAN_CONN
* <prefix>EDCU_CHAN_NOCON
* <prefix>EDCU_CHAN_CNT
This puts the epics cas loop in the background diagnostics/json thread so that it does not impact the main data collection. It also runs the epics cas at ~8hz (though the data is updated at 1H rate) so that the epics networking is fluid enough.
Closes #139 4.0.0Erik von ReisErik von Reishttps://git.ligo.org/cds/software/advligorts/-/merge_requests/129Minor updates to the daq_wiper script2020-07-16T18:13:44ZJonathan HanksMinor updates to the daq_wiper script* Convert to using os.path instead of manual path creation
* Estimate the number of TB of data per day and use that as a default amount of free space to hold to.* Convert to using os.path instead of manual path creation
* Estimate the number of TB of data per day and use that as a default amount of free space to hold to.4.0.0David BarkerDavid Barkerhttps://git.ligo.org/cds/software/advligorts/-/merge_requests/135Update local_dc to better support running a standalone edc.2020-07-16T17:55:11ZJonathan HanksUpdate local_dc to better support running a standalone edc.Standalone edc's don't need a par file. We use par files to get dcuid's and model rates. This update expands local_dc to allow specifying a dcuid & rate on the command line.
Added some unit testing code to local_dc
Updated the stan...Standalone edc's don't need a par file. We use par files to get dcuid's and model rates. This update expands local_dc to allow specifying a dcuid & rate on the command line.
Added some unit testing code to local_dc
Updated the standalone edc test to use inline dcuid notation
Converted local_dc to use the arg library
Closes #136 4.0.0Erik von ReisErik von Reishttps://git.ligo.org/cds/software/advligorts/-/merge_requests/134Cleanups and fixes for the standalone_edc2020-07-15T20:58:02ZJonathan HanksCleanups and fixes for the standalone_edc* fix the systemd unit to use the corect argument for the listen interface 'l' instead of 'I'
* convert the standalone_edc to use the args library, and update the documentation
* add a '_daq' to the end of the edc's mbuf name, so that ...* fix the systemd unit to use the corect argument for the listen interface 'l' instead of 'I'
* convert the standalone_edc to use the args library, and update the documentation
* add a '_daq' to the end of the edc's mbuf name, so that it is similar to the models
* Note this is transparent to the user, the '_daq' should not be added on (either to the name passed into the edc or to local_dc)
* Updated the edc test to not specify '_daq' anywhere.
Closes #1354.0.0Erik von ReisErik von Reishttps://git.ligo.org/cds/software/advligorts/-/merge_requests/133Closes #133, Fix for a stack smash in standalone_edc.2020-07-15T07:22:57ZJonathan HanksCloses #133, Fix for a stack smash in standalone_edc.The boost spsc queue has a suprising api. Change the pop call to give a specific maximum to the number of items popped.The boost spsc queue has a suprising api. Change the pop call to give a specific maximum to the number of items popped.4.0.0Erik von ReisErik von Reishttps://git.ligo.org/cds/software/advligorts/-/merge_requests/132Minor tweaks to the sphinx gitlabci setup to make it work2020-07-14T17:20:38ZJonathan HanksMinor tweaks to the sphinx gitlabci setup to make it workFix paths in the .gitlabciFix paths in the .gitlabci4.0.0Jonathan HanksJonathan Hankshttps://git.ligo.org/cds/software/advligorts/-/merge_requests/131Have the cmake install process install a frame wiper and daq ini file archiver.2020-07-14T00:52:26ZJonathan HanksHave the cmake install process install a frame wiper and daq ini file archiver.These are utility scripts used when running the daqd.
checkdaqconfig - freezes the config, archiving it by time & contents
daq_wiper - this deletes old frames to keep disks from filling on a frame writerThese are utility scripts used when running the daqd.
checkdaqconfig - freezes the config, archiving it by time & contents
daq_wiper - this deletes old frames to keep disks from filling on a frame writer4.0.0Jameson Rollinsjameson.rollins@ligo.orgJameson Rollinsjameson.rollins@ligo.orghttps://git.ligo.org/cds/software/advligorts/-/merge_requests/130Request that services start after remote-fs.target is reached.2020-07-14T00:51:52ZJonathan HanksRequest that services start after remote-fs.target is reached.Done for:
* daqd
* nds
* local_dc
* edc
This is to help with daqd starting too soon (before /opt/rtcds is read) and thus not starting on a clean boot of a system.Done for:
* daqd
* nds
* local_dc
* edc
This is to help with daqd starting too soon (before /opt/rtcds is read) and thus not starting on a clean boot of a system.4.0.0Jameson Rollinsjameson.rollins@ligo.orgJameson Rollinsjameson.rollins@ligo.orghttps://git.ligo.org/cds/software/advligorts/-/merge_requests/127Adding more epics diagnostics to the daqd2020-06-25T21:36:27ZJonathan HanksAdding more epics diagnostics to the daqdPRDCR_UNIQUE_DCU_REPORTED_PER_S -> the number of dcus that reported at least once in the last second
PRDCR_TOTAL_DCU_REPORTED_PER_S -> the count of dcus that reported in the last second. In good conditions this should be 16*PRDCR_UNIQUE...PRDCR_UNIQUE_DCU_REPORTED_PER_S -> the number of dcus that reported at least once in the last second
PRDCR_TOTAL_DCU_REPORTED_PER_S -> the count of dcus that reported in the last second. In good conditions this should be 16*PRDCR_UNIQUE_DCU_REPORTED_PER_S
PRDCR_TOTAL_DATA_RATE_KB_PER_S -> the total data rate over the last second in kb (excludes < 1kb of headers a second)
PRDCR_TP_DATA_RATE_KB_PER_S -> the data rate of test point data over the last second in kb
PRDCR_MODEL_DATA_RATE_KB_PER_S -> the data rate of the regular model data over the last second in kb
PRDCR_OPEN_TP_COUNT -> the count of test points opened sampled once per second4.0.0Erik von ReisErik von Reishttps://git.ligo.org/cds/software/advligorts/-/merge_requests/124Will not install modules with dcuid >= 256.2020-06-22T20:24:04ZErik von ReisWill not install modules with dcuid >= 256.Closes #125Closes #1254.0.0Jonathan HanksJonathan Hankshttps://git.ligo.org/cds/software/advligorts/-/merge_requests/123Closes #128, the daqd exits if a gds broadcast list is specified with channel...2020-06-18T21:02:40ZJonathan HanksCloses #128, the daqd exits if a gds broadcast list is specified with channels that do not exist.When processing channel lists require that each entry in the broadcast list (if specified) be an active non TP channel in the channel list, otherwise raise an exception and terminate.When processing channel lists require that each entry in the broadcast list (if specified) be an active non TP channel in the channel list, otherwise raise an exception and terminate.4.0.0Erik von ReisErik von Reishttps://git.ligo.org/cds/software/advligorts/-/merge_requests/121More work on #96. Correctly set the trender stop flag when stopping the tren...2020-06-17T20:24:06ZJonathan HanksMore work on #96. Correctly set the trender stop flag when stopping the trender.The stopping_now_ flag should be set to true to signal trender threads to stop.
Also move some stack based variable sized arrays onto the heap in std::vectors to remove a place that the stack can be overflowed.
Added a test to ensure t...The stopping_now_ flag should be set to true to signal trender threads to stop.
Also move some stack based variable sized arrays onto the heap in std::vectors to remove a place that the stack can be overflowed.
Added a test to ensure the daqd stops when there is a jump in the data, and updated the live test daqdrc to start the trender thread to highlight issues with stopping.4.0.0Erik von ReisErik von Reishttps://git.ligo.org/cds/software/advligorts/-/merge_requests/122Changed heartbeat loop to eliminate race condition at end of second2020-06-17T17:35:42ZErik von ReisChanged heartbeat loop to eliminate race condition at end of secondchanged heartbeat loop to eliminate race condition where end-of-epoch test for epoch 15 might succeed immediately, triggering rapid heartbeats every 10 ms for the next 60+ ms.changed heartbeat loop to eliminate race condition where end-of-epoch test for epoch 15 might succeed immediately, triggering rapid heartbeats every 10 ms for the next 60+ ms.4.0.0Rolf BorkRolf Borkhttps://git.ligo.org/cds/software/advligorts/-/merge_requests/119Make gds broadcasts work2020-06-15T22:11:19ZJonathan HanksMake gds broadcasts workHistorically, there have been two main types of broadcasts in daqd, the DC data stream (the 10Gb udp broadcast) and the GDS frame transfer. When DATA_CONCENTRATOR was defined only the DC data stream is used. This mode has been removed ...Historically, there have been two main types of broadcasts in daqd, the DC data stream (the 10Gb udp broadcast) and the GDS frame transfer. When DATA_CONCENTRATOR was defined only the DC data stream is used. This mode has been removed from the daq architecture. So the only remaining broadcast mode should be the GDS frame transfer.
The big difference between the two broadcast methods is the data source. For the DC stream the source is the main circular buffer. For the GDS the data source is a frame file that the framer_io function mmaps and pushes as a block of memory.
There were several modes of operation for the daqd, and DATA_CONCENTRATOR was picked when collapsing the daqd down to one binary. So remove support for the DC data stream.
* Removes support for broadcasting testpoints
* Removes the udp broadcast logic for the DC stream
* Removes a number of #if DATA_CONCENTOR macro guards
* Removes a number of #if GDS_TESTPOINT macro guards
The final flow of the broadcast data is now as follows:
the parser sees the request for the net-writer with a broadcast address.
This triggers a net writer to be created, a producer thread to start, a circular buffer to be created. The producer copies data from the main circular buffer and unlocks the main circular buffer it puts into the new circular buffer with a nowait put operation (which is allowed to fail). Nothing has ever emptied this, so a consumer thread is not launched (it didn't do anything anyways).4.0.0Erik von ReisErik von Reis