advLigoRTS issueshttps://git.ligo.org/cds/software/advligorts/-/issues2023-02-14T18:28:19Zhttps://git.ligo.org/cds/software/advligorts/-/issues/538RCG: add feature for checking the source has changed for a model2023-02-14T18:28:19ZErik von ReisRCG: add feature for checking the source has changed for a modelShow which file has changed. Don't actually build model. Something we could run nightly on all models to show which models are different.Show which file has changed. Don't actually build model. Something we could run nightly on all models to show which models are different.https://git.ligo.org/cds/software/advligorts/-/issues/536The SDF table could use better visuals around the data type of the channel.2023-03-15T15:12:47ZEzekiel DohmenThe SDF table could use better visuals around the data type of the channel.List of things that look weird:
1. Filter modules with no bit set, in table and EPICS, appear with empty setpoints and EPICS values. This can cause some confusion because that empty column functionality looks like the channels are NOT FO...List of things that look weird:
1. Filter modules with no bit set, in table and EPICS, appear with empty setpoints and EPICS values. This can cause some confusion because that empty column functionality looks like the channels are NOT FOUND.
2. CHANS NOT FOUND are channels in the SDF that are not found in the EPICS DB. This is caused by removing parts with associated initialized channels. Setpoint and EPICS are empty, but we do have a "setpoint". Maybe consider displaying <NOT FOUND> in EPICS column.
3. Empty strings have the same issue that filter modules with no control bits set.
Maybe communicating type information on the SDF table would also be useful.advligorts 5.2.0https://git.ligo.org/cds/software/advligorts/-/issues/532IOP: Some housekeeping runs "clock_div" times when it should only run once.2023-03-15T21:22:37ZErik von ReisIOP: Some housekeeping runs "clock_div" times when it should only run once.Daniel points out duotone in controllerIOP doesn't check usloop, so runs every subcycle.
He also suggests pulling housekeeping out of the subcycle loop.Daniel points out duotone in controllerIOP doesn't check usloop, so runs every subcycle.
He also suggests pulling housekeeping out of the subcycle loop.https://git.ligo.org/cds/software/advligorts/-/issues/529rcg package should depend on pyepics2023-02-08T18:08:37ZErik von Reisrcg package should depend on pyepicssdffiltmon.py requires itsdffiltmon.py requires ithttps://git.ligo.org/cds/software/advligorts/-/issues/5274x decimation filter has zeros on the right side of the plane2023-02-06T23:59:58ZErik von Reis4x decimation filter has zeros on the right side of the planeWe should consider negating these zeros. See Daniel's alog post here.
https://alog.ligo-wa.caltech.edu/aLOG/index.php?callRep=67245We should consider negating these zeros. See Daniel's alog post here.
https://alog.ligo-wa.caltech.edu/aLOG/index.php?callRep=67245advligorts 5.2.0https://git.ligo.org/cds/software/advligorts/-/issues/526Consolidate /burt directory expected permissions between LHO and LLO2023-02-10T21:23:34ZEzekiel DohmenConsolidate /burt directory expected permissions between LHO and LLOLHO uses advligorts group, but this might not be the best solution.
Controls group appears to be the better solution as that is the group the is propagated to other systems. The EPICS process can still run as advligorts, but needs to ha...LHO uses advligorts group, but this might not be the best solution.
Controls group appears to be the better solution as that is the group the is propagated to other systems. The EPICS process can still run as advligorts, but needs to have a primary group of `controls`.
This will allow scientists to be added to the `controls` group (current functionality) own files in userapps and the EPICS process can save files through the shared controls group.
We also need to have a solution that works with CYMACs. The expectation is that CYMACs might have a non-controls user running rtcds. Advligorts is also not in the controls group as default, this might need to be changed.
# Purposed Solution
Group `controls` for files that multiple people should be able to edit.
Group `advligorts` for EPICS process files that should not be changed by scientists in the controls group.
The installer should force the group to `controls` where acceptable.
CYMAC installs need to add advligorts to the controls group so the EPICS process can write logs/snap filesadvligorts 5.2.0Ezekiel DohmenEzekiel Dohmenhttps://git.ligo.org/cds/software/advligorts/-/issues/525RTS time_shift=1 can cause timing error on the next ADC2023-02-01T22:58:00ZErik von ReisRTS time_shift=1 can cause timing error on the next ADCwith two 16 bit ADCs, when the first ADC has `time_shift=1`, the second will having it's timing error indicator active on the IOP_IO_STATUS screen, and the ADC error will be indicated on the status line on the GDS_TP screen.
Possible so...with two 16 bit ADCs, when the first ADC has `time_shift=1`, the second will having it's timing error indicator active on the IOP_IO_STATUS screen, and the ADC error will be indicated on the status line on the GDS_TP screen.
Possible solution is to read time_shifted 16 bit cards last.https://git.ligo.org/cds/software/advligorts/-/issues/524On SDF load, generate EPICS DB difference file.2023-01-31T22:19:11ZEzekiel DohmenOn SDF load, generate EPICS DB difference file.When reloading a snap file, the SDF could create a diff file, showing EPICS DB values that where changed by the reload.When reloading a snap file, the SDF could create a diff file, showing EPICS DB values that where changed by the reload.https://git.ligo.org/cds/software/advligorts/-/issues/519h1susauxh56 crashed when opening test points2023-01-23T18:37:52ZErik von Reish1susauxh56 crashed when opening test pointsDave opened 8, then 16, then 32 testpoints on h1susauxh56. At 32, the front end hard locked. The console showed no errors and the front end could not be reached by network. We rebooted it without finding any more information on the ca...Dave opened 8, then 16, then 32 testpoints on h1susauxh56. At 32, the front end hard locked. The console showed no errors and the front end could not be reached by network. We rebooted it without finding any more information on the cause the crash.
I've since opened 64 testpoints on x2seib1 without issue.
I also opened 32 testpoints on x2sush56 without issue. Opening 64 testpoints crashes ndscope. This could be due to hitting the 4 MB limit on test points, but opening 48 also crashes ndscope.https://git.ligo.org/cds/software/advligorts/-/issues/518cps_xmit and recv send too many headers which inflates the required bandwidth2023-02-09T18:19:47ZJonathan Hankscps_xmit and recv send too many headers which inflates the required bandwidthWe send 256 dcu_header_t structures for everything, this is ~256k per transmission. FE computers typically send 5-10 dcus, so it is a lot of wasted space.We send 256 dcu_header_t structures for everything, this is ~256k per transmission. FE computers typically send 5-10 dcus, so it is a lot of wasted space.advligorts 5.2.0Jonathan HanksJonathan Hankshttps://git.ligo.org/cds/software/advligorts/-/issues/515Add the natrual logarithm calculation as a CDS part.2023-01-13T18:47:37ZEzekiel DohmenAdd the natrual logarithm calculation as a CDS part.## Open Questions
Can we use inline assembly or do we need a c lib style calculation for latency?## Open Questions
Can we use inline assembly or do we need a c lib style calculation for latency?https://git.ligo.org/cds/software/advligorts/-/issues/511dix xmit should be able to build for px2023-01-07T18:33:26ZErik von Reisdix xmit should be able to build for pxdix xmit requires the ligo-dolphin-dev package, but ligo-dolphin-dev requires specific ix packages.
There is a ligo-dolphin-px-dev. I've got the package now so it can build off either.
We either need to determine that it doesn't mat...dix xmit requires the ligo-dolphin-dev package, but ligo-dolphin-dev requires specific ix packages.
There is a ligo-dolphin-px-dev. I've got the package now so it can build off either.
We either need to determine that it doesn't matter what package it is built off of, then take the IX dependencies out of ligo-dolphin-dev (or generalize them), or maybe build separate ix and px dix_xmit packages, or a dpx_xmit package.
@jonathan-hankshttps://git.ligo.org/cds/software/advligorts/-/issues/510local_dc process should be robust against no data2023-01-04T17:52:35ZJameson Rollinsjameson.rollins@ligo.orglocal_dc process should be robust against no dataIt would be nice if the local_dc process could not die if there is no data flowing, and just report the lack of data as a warning, if possible.It would be nice if the local_dc process could not die if there is no data flowing, and just report the lack of data as a warning, if possible.https://git.ligo.org/cds/software/advligorts/-/issues/509local_dc should report why it's dying2023-01-04T17:48:23ZJameson Rollinsjameson.rollins@ligo.orglocal_dc should report why it's dyingcurrently local_dc will die if there's no data in mbuf, but it doesn't report why it's dying, which results in extra time debugging why the process is dying.currently local_dc will die if there's no data in mbuf, but it doesn't report why it's dying, which results in extra time debugging why the process is dying.https://git.ligo.org/cds/software/advligorts/-/issues/507cps_recv should do better logging about dropped packets2023-01-03T21:59:24ZJonathan Hankscps_recv should do better logging about dropped packetsIn addition to epics outputs, cps_recv should give periodic log updates of dropped packages, late messages, ...
Also, the EPICS dropped message counters should be updated for messages that get filtered out for wild GPS times or inconsis...In addition to epics outputs, cps_recv should give periodic log updates of dropped packages, late messages, ...
Also, the EPICS dropped message counters should be updated for messages that get filtered out for wild GPS times or inconsistent internal structure.Jonathan HanksJonathan Hankshttps://git.ligo.org/cds/software/advligorts/-/issues/505Have module parts return epics variables as a data structure2022-12-30T08:15:55ZErik von ReisHave module parts return epics variables as a data structureCurrently they parts write directly to the files, which is pretty buggy and hard to maintain. IPCx part now returns a data structure. If all parts did, header and EPICS file generation could all be based on one long list of EpicsVariab...Currently they parts write directly to the files, which is pretty buggy and hard to maintain. IPCx part now returns a data structure. If all parts did, header and EPICS file generation could all be based on one long list of EpicsVariable data structures.https://git.ligo.org/cds/software/advligorts/-/issues/503timing at LLO mid station hampered by long cable to IOC2023-03-24T19:09:34ZErik von Reistiming at LLO mid station hampered by long cable to IOCTiming card at mid is in the IOC, but server is still in the corner stations, so the long cable causes a large delay when reading the timing card, resulting in a "time 0" that's in error.
Suggested fix: add parameter to IOP for timing...Timing card at mid is in the IOC, but server is still in the corner stations, so the long cable causes a large delay when reading the timing card, resulting in a "time 0" that's in error.
Suggested fix: add parameter to IOP for timing delay. Subtract the timing delay from the received value, so we get the time when requested from the server, not when received by the timing card. We can get a close enough estimate by looking at the delay in the timing system, even though it's a different fiber.
Note, this is a one way delay that will be about 10 microseconds, since the returned time is not added to the value.https://git.ligo.org/cds/software/advligorts/-/issues/500Inline c code should have a common method of reporting usage/runtime errors.2023-01-30T19:00:16ZEzekiel DohmenInline c code should have a common method of reporting usage/runtime errors.A few ideas:
Global error reporting function provided by the RCG.
Have an error flag output that gets sent to an epics variable.
If we rewrote how we did inline functions, replacing the nested functions with a context orien...A few ideas:
Global error reporting function provided by the RCG.
Have an error flag output that gets sent to an epics variable.
If we rewrote how we did inline functions, replacing the nested functions with a context oriented interface, maybe that context would have a signalling method.https://git.ligo.org/cds/software/advligorts/-/issues/498Spectral Leakage in Demod Rotation parts2023-08-04T17:46:14ZErik von ReisSpectral Leakage in Demod Rotation partsDemod rotation parts show increased spectral leakage with frequency difference between signal and demod frequency. There's no similar effect for DemodDecimation parts or DemodBand parts.
To recreate, build src/librts/models/x1demod.mdl...Demod rotation parts show increased spectral leakage with frequency difference between signal and demod frequency. There's no similar effect for DemodDecimation parts or DemodBand parts.
To recreate, build src/librts/models/x1demod.mdl and run src/librts/tests/demod/test_demod.py
Peak ratio drops to almost 5.0, meaning there's about a 20% leakage.advligorts 5.2.0https://git.ligo.org/cds/software/advligorts/-/issues/497error building rts-cpu-isolator module on latest debian kernel 6.0.0-42022-12-16T22:09:48ZJameson Rollinsjameson.rollins@ligo.orgerror building rts-cpu-isolator module on latest debian kernel 6.0.0-4```
Setting up advligorts-cpu-isolator-dkms (5.0.6~dev1+deb11-1) ...
Removing old rts-cpu-isolator-5.0.6~dev1+deb11 DKMS files...
Deleting module rts-cpu-isolator-5.0.6~dev1+deb11 completely from the DKMS tree.
Loading new rts-cpu-isolat...```
Setting up advligorts-cpu-isolator-dkms (5.0.6~dev1+deb11-1) ...
Removing old rts-cpu-isolator-5.0.6~dev1+deb11 DKMS files...
Deleting module rts-cpu-isolator-5.0.6~dev1+deb11 completely from the DKMS tree.
Loading new rts-cpu-isolator-5.0.6~dev1+deb11 DKMS files...
Building for 6.0.0-4-amd64 6.0.0-5-amd64
Building initial module for 6.0.0-4-amd64
Error! Bad return status for module build on kernel: 6.0.0-4-amd64 (x86_64)
Consult /var/lib/dkms/rts-cpu-isolator/5.0.6~dev1+deb11/build/make.log for more information.
dpkg: error processing package advligorts-cpu-isolator-dkms (--configure):
installed advligorts-cpu-isolator-dkms package post-installation script subprocess returned error exit status 10
dpkg: dependency problems prevent configuration of advligorts-rcg:
advligorts-rcg depends on advligorts-cpu-isolator-dkms; however:
Package advligorts-cpu-isolator-dkms is not configured yet.
dpkg: error processing package advligorts-rcg (--configure):
dependency problems - leaving unconfigured
Errors were encountered while processing:
advligorts-cpu-isolator-dkms
advligorts-rcg
needrestart is being skipped since dpkg has failed
E: Sub-process /usr/bin/dpkg returned an error code (1)
```
```
servo:~ 0$ cat /var/lib/dkms/rts-cpu-isolator/5.0.6~dev1+deb11/build/make.log
DKMS make.log for rts-cpu-isolator-5.0.6~dev1+deb11 for kernel 6.0.0-4-amd64 (x86_64)
Fri Dec 16 02:06:55 PM PST 2022
make: Entering directory '/usr/src/linux-headers-6.0.0-4-amd64'
CC [M] /var/lib/dkms/rts-cpu-isolator/5.0.6~dev1+deb11/build/rts-cpu-isolator.o
/var/lib/dkms/rts-cpu-isolator/5.0.6~dev1+deb11/build/rts-cpu-isolator.c: In function ‘store_isolated_cpus’:
/var/lib/dkms/rts-cpu-isolator/5.0.6~dev1+deb11/build/rts-cpu-isolator.c:98:37: error: ‘HK_FLAG_DOMAIN’ undeclared (first use in this function); did you mean ‘HK_TYPE_DOMAIN’?
98 | housekeeping_cpumask(HK_FLAG_DOMAIN));
| ^~~~~~~~~~~~~~
| HK_TYPE_DOMAIN
/var/lib/dkms/rts-cpu-isolator/5.0.6~dev1+deb11/build/rts-cpu-isolator.c:98:37: note: each undeclared identifier is reported only once for each function it appears in
make[1]: *** [/usr/src/linux-headers-6.0.0-4-common/scripts/Makefile.build:254: /var/lib/dkms/rts-cpu-isolator/5.0.6~dev1+deb11/build/rts-cpu-isolator.o] Error 1
make: *** [/usr/src/linux-headers-6.0.0-4-common/Makefile:1876: /var/lib/dkms/rts-cpu-isolator/5.0.6~dev1+deb11/build] Error 2
make: Leaving directory '/usr/src/linux-headers-6.0.0-4-amd64'
servo:~ 0$
```