ni / niveristand-aim-milStd1553-custom-device

Custom device for AIM MIL-STD-1553 hardware
MIT License
1 stars 2 forks source link

Mark all process VIs and Hardware API calls as reentrant #89

Closed Karl-G1 closed 2 years ago

Karl-G1 commented 2 years ago

What does this Pull Request accomplish?

Why should this Pull Request be merged?

Performance scaling of custom devices based on the Comms Bus Template are struggling when 2+ are used in parallel. This change mirrors others that have shown to markedly increase performance when using multiple custom device instances.

What testing has been done?

The simplest test configuration to see the impact of these changes is 2x BIUs on the same 2Ch 1553 module. When using a configuration with 12x 8-word messages that change based on mappings to a model, the builds from main or dev/performance-improvements-1 are way slower.

These are the execution time and loopback behaviors observed with three different builds:

Build from main ![image](https://user-images.githubusercontent.com/31290917/187790265-20788cb3-3320-42fd-b2d2-0ccecbdef9bb.png)
Build from PR88 / dev/performance-improvements-1 ![image](https://user-images.githubusercontent.com/31290917/187790302-296f5031-d1ba-4034-b6df-0bae365ba63f.png)
Build from this PR ![image](https://user-images.githubusercontent.com/31290917/187790353-fb735931-19ea-4813-b440-269579e87fe3.png)
niveristand-diff-bot commented 2 years ago

Bleep bloop!

LabVIEW Diff Robot here with some diffs served up hot for your pull request.

Notice something funny? Help fix me on my GitHub repo.

AIM MIL-STD-1553 Engine.lvlib--Implementation.lvlib--Execution Unit.lvclass--Read from Hardware.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-08-31/17%3A32%3A20/AIM%20MIL-STD-1553%20Engine.lvlib--Implementation.lvlib--Execution%20Unit.lvclass--Read%20from%20Hardware.vi.png)
AIM MIL-STD-1553 Engine.lvlib--Implementation.lvlib--Execution Unit.lvclass--Write to Hardware.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-08-31/17%3A32%3A20/AIM%20MIL-STD-1553%20Engine.lvlib--Implementation.lvlib--Execution%20Unit.lvclass--Write%20to%20Hardware.vi.png)
AIM MIL-STD-1553 Engine.lvlib--Implementation.lvlib--Logging Execution Unit.lvclass--Read from Hardware.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-08-31/17%3A32%3A20/AIM%20MIL-STD-1553%20Engine.lvlib--Implementation.lvlib--Logging%20Execution%20Unit.lvclass--Read%20from%20Hardware.vi.png)
AIM MIL-STD-1553 Engine.lvlib--Implementation.lvlib--Rx Execution Unit.lvclass--Build Timestamp.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-08-31/17%3A32%3A20/AIM%20MIL-STD-1553%20Engine.lvlib--Implementation.lvlib--Rx%20Execution%20Unit.lvclass--Build%20Timestamp.vi.png)
AIM MIL-STD-1553 Engine.lvlib--Implementation.lvlib--Rx Execution Unit.lvclass--Decode Words to Parameters.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-08-31/17%3A32%3A20/AIM%20MIL-STD-1553%20Engine.lvlib--Implementation.lvlib--Rx%20Execution%20Unit.lvclass--Decode%20Words%20to%20Parameters.vi.png)
AIM MIL-STD-1553 Engine.lvlib--Implementation.lvlib--Rx Execution Unit.lvclass--Read from Hardware.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-08-31/17%3A32%3A20/AIM%20MIL-STD-1553%20Engine.lvlib--Implementation.lvlib--Rx%20Execution%20Unit.lvclass--Read%20from%20Hardware.vi.png)
AIM MIL-STD-1553 Engine.lvlib--Implementation.lvlib--Triggers Execution Unit.lvclass--Read from Hardware.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-08-31/17%3A32%3A20/AIM%20MIL-STD-1553%20Engine.lvlib--Implementation.lvlib--Triggers%20Execution%20Unit.lvclass--Read%20from%20Hardware.vi.png)
AIM MIL-STD-1553 Engine.lvlib--Implementation.lvlib--Triggers Execution Unit.lvclass--Start or Stop Terminals.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-08-31/17%3A32%3A20/AIM%20MIL-STD-1553%20Engine.lvlib--Implementation.lvlib--Triggers%20Execution%20Unit.lvclass--Start%20or%20Stop%20Terminals.vi.png)
AIM MIL-STD-1553 Engine.lvlib--Implementation.lvlib--Triggers Execution Unit.lvclass--Write to Hardware.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-08-31/17%3A32%3A20/AIM%20MIL-STD-1553%20Engine.lvlib--Implementation.lvlib--Triggers%20Execution%20Unit.lvclass--Write%20to%20Hardware.vi.png)
AIM MIL-STD-1553 Engine.lvlib--Implementation.lvlib--Tx Execution Unit.lvclass--Encode Parameters to Words.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-08-31/17%3A32%3A20/AIM%20MIL-STD-1553%20Engine.lvlib--Implementation.lvlib--Tx%20Execution%20Unit.lvclass--Encode%20Parameters%20to%20Words.vi.png)
AIM MIL-STD-1553 Engine.lvlib--Implementation.lvlib--Tx Execution Unit.lvclass--Write to Hardware.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-08-31/17%3A32%3A20/AIM%20MIL-STD-1553%20Engine.lvlib--Implementation.lvlib--Tx%20Execution%20Unit.lvclass--Write%20to%20Hardware.vi.png)
AIM MIL-STD-1553 Engine.lvlib--Interfaces.lvlib--Execution Unit.lvclass--Read from Hardware.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-08-31/17%3A32%3A20/AIM%20MIL-STD-1553%20Engine.lvlib--Interfaces.lvlib--Execution%20Unit.lvclass--Read%20from%20Hardware.vi.png)
AIM MIL-STD-1553 Engine.lvlib--Interfaces.lvlib--Execution Unit.lvclass--Write to Hardware.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-08-31/17%3A32%3A20/AIM%20MIL-STD-1553%20Engine.lvlib--Interfaces.lvlib--Execution%20Unit.lvclass--Write%20to%20Hardware.vi.png)
AIM MIL-STD-1553 Hardware API.lvlib--Check Status.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-08-31/17%3A32%3A20/AIM%20MIL-STD-1553%20Hardware%20API.lvlib--Check%20Status.vi.png)
AIM MIL-STD-1553 Hardware API.lvlib--Disable RT.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-08-31/17%3A32%3A20/AIM%20MIL-STD-1553%20Hardware%20API.lvlib--Disable%20RT.vi.png)
AIM MIL-STD-1553 Hardware API.lvlib--Enable RT.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-08-31/17%3A32%3A20/AIM%20MIL-STD-1553%20Hardware%20API.lvlib--Enable%20RT.vi.png)
AIM MIL-STD-1553 Hardware API.lvlib--Read Buffer.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-08-31/17%3A32%3A20/AIM%20MIL-STD-1553%20Hardware%20API.lvlib--Read%20Buffer.vi.png)
AIM MIL-STD-1553 Hardware API.lvlib--Read Bus Monitor Entries.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-08-31/17%3A32%3A20/AIM%20MIL-STD-1553%20Hardware%20API.lvlib--Read%20Bus%20Monitor%20Entries.vi.png)
AIM MIL-STD-1553 Hardware API.lvlib--Send Acyclic Frames.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-08-31/17%3A32%3A20/AIM%20MIL-STD-1553%20Hardware%20API.lvlib--Send%20Acyclic%20Frames.vi.png)
AIM MIL-STD-1553 Hardware API.lvlib--Start Bus Controller.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-08-31/17%3A32%3A20/AIM%20MIL-STD-1553%20Hardware%20API.lvlib--Start%20Bus%20Controller.vi.png)
AIM MIL-STD-1553 Hardware API.lvlib--Stop Bus Controller.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-08-31/17%3A32%3A20/AIM%20MIL-STD-1553%20Hardware%20API.lvlib--Stop%20Bus%20Controller.vi.png)
AIM MIL-STD-1553 Hardware API.lvlib--Update Buffer Words.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-08-31/17%3A32%3A20/AIM%20MIL-STD-1553%20Hardware%20API.lvlib--Update%20Buffer%20Words.vi.png)
niveristand-diff-bot commented 2 years ago

Bleep bloop!

LabVIEW Diff Robot here with some diffs served up hot for your pull request.

Notice something funny? Help fix me on my GitHub repo.

AIM MIL-STD-1553 Engine.lvlib--Implementation.lvlib--Execution Unit.lvclass--Read from Hardware.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-09-01/11%3A29%3A29/AIM%20MIL-STD-1553%20Engine.lvlib--Implementation.lvlib--Execution%20Unit.lvclass--Read%20from%20Hardware.vi.png)
AIM MIL-STD-1553 Engine.lvlib--Implementation.lvlib--Execution Unit.lvclass--Write to Hardware.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-09-01/11%3A29%3A29/AIM%20MIL-STD-1553%20Engine.lvlib--Implementation.lvlib--Execution%20Unit.lvclass--Write%20to%20Hardware.vi.png)
AIM MIL-STD-1553 Engine.lvlib--Implementation.lvlib--Logging Execution Unit.lvclass--Read from Hardware.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-09-01/11%3A29%3A29/AIM%20MIL-STD-1553%20Engine.lvlib--Implementation.lvlib--Logging%20Execution%20Unit.lvclass--Read%20from%20Hardware.vi.png)
AIM MIL-STD-1553 Engine.lvlib--Implementation.lvlib--Rx Execution Unit.lvclass--Build Timestamp.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-09-01/11%3A29%3A29/AIM%20MIL-STD-1553%20Engine.lvlib--Implementation.lvlib--Rx%20Execution%20Unit.lvclass--Build%20Timestamp.vi.png)
AIM MIL-STD-1553 Engine.lvlib--Implementation.lvlib--Rx Execution Unit.lvclass--Decode Words to Parameters.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-09-01/11%3A29%3A29/AIM%20MIL-STD-1553%20Engine.lvlib--Implementation.lvlib--Rx%20Execution%20Unit.lvclass--Decode%20Words%20to%20Parameters.vi.png)
AIM MIL-STD-1553 Engine.lvlib--Implementation.lvlib--Rx Execution Unit.lvclass--Read from Hardware.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-09-01/11%3A29%3A29/AIM%20MIL-STD-1553%20Engine.lvlib--Implementation.lvlib--Rx%20Execution%20Unit.lvclass--Read%20from%20Hardware.vi.png)
AIM MIL-STD-1553 Engine.lvlib--Implementation.lvlib--Triggers Execution Unit.lvclass--Read from Hardware.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-09-01/11%3A29%3A29/AIM%20MIL-STD-1553%20Engine.lvlib--Implementation.lvlib--Triggers%20Execution%20Unit.lvclass--Read%20from%20Hardware.vi.png)
AIM MIL-STD-1553 Engine.lvlib--Implementation.lvlib--Triggers Execution Unit.lvclass--Start or Stop Terminals.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-09-01/11%3A29%3A29/AIM%20MIL-STD-1553%20Engine.lvlib--Implementation.lvlib--Triggers%20Execution%20Unit.lvclass--Start%20or%20Stop%20Terminals.vi.png)
AIM MIL-STD-1553 Engine.lvlib--Implementation.lvlib--Triggers Execution Unit.lvclass--Write to Hardware.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-09-01/11%3A29%3A29/AIM%20MIL-STD-1553%20Engine.lvlib--Implementation.lvlib--Triggers%20Execution%20Unit.lvclass--Write%20to%20Hardware.vi.png)
AIM MIL-STD-1553 Engine.lvlib--Implementation.lvlib--Tx Execution Unit.lvclass--Encode Parameters to Words.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-09-01/11%3A29%3A29/AIM%20MIL-STD-1553%20Engine.lvlib--Implementation.lvlib--Tx%20Execution%20Unit.lvclass--Encode%20Parameters%20to%20Words.vi.png)
AIM MIL-STD-1553 Engine.lvlib--Implementation.lvlib--Tx Execution Unit.lvclass--Write to Hardware.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-09-01/11%3A29%3A29/AIM%20MIL-STD-1553%20Engine.lvlib--Implementation.lvlib--Tx%20Execution%20Unit.lvclass--Write%20to%20Hardware.vi.png)
AIM MIL-STD-1553 Engine.lvlib--Interfaces.lvlib--Execution Unit.lvclass--Read from Hardware.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-09-01/11%3A29%3A29/AIM%20MIL-STD-1553%20Engine.lvlib--Interfaces.lvlib--Execution%20Unit.lvclass--Read%20from%20Hardware.vi.png)
AIM MIL-STD-1553 Engine.lvlib--Interfaces.lvlib--Execution Unit.lvclass--Write to Hardware.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-09-01/11%3A29%3A29/AIM%20MIL-STD-1553%20Engine.lvlib--Interfaces.lvlib--Execution%20Unit.lvclass--Write%20to%20Hardware.vi.png)
AIM MIL-STD-1553 Hardware API.lvlib--Check Status.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-09-01/11%3A29%3A29/AIM%20MIL-STD-1553%20Hardware%20API.lvlib--Check%20Status.vi.png)
AIM MIL-STD-1553 Hardware API.lvlib--Disable RT.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-09-01/11%3A29%3A29/AIM%20MIL-STD-1553%20Hardware%20API.lvlib--Disable%20RT.vi.png)
AIM MIL-STD-1553 Hardware API.lvlib--Enable RT.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-09-01/11%3A29%3A29/AIM%20MIL-STD-1553%20Hardware%20API.lvlib--Enable%20RT.vi.png)
AIM MIL-STD-1553 Hardware API.lvlib--Read Buffer.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-09-01/11%3A29%3A29/AIM%20MIL-STD-1553%20Hardware%20API.lvlib--Read%20Buffer.vi.png)
AIM MIL-STD-1553 Hardware API.lvlib--Read Bus Monitor Entries.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-09-01/11%3A29%3A29/AIM%20MIL-STD-1553%20Hardware%20API.lvlib--Read%20Bus%20Monitor%20Entries.vi.png)
AIM MIL-STD-1553 Hardware API.lvlib--Send Acyclic Frames.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-09-01/11%3A29%3A29/AIM%20MIL-STD-1553%20Hardware%20API.lvlib--Send%20Acyclic%20Frames.vi.png)
AIM MIL-STD-1553 Hardware API.lvlib--Start Bus Controller.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-09-01/11%3A29%3A29/AIM%20MIL-STD-1553%20Hardware%20API.lvlib--Start%20Bus%20Controller.vi.png)
AIM MIL-STD-1553 Hardware API.lvlib--Stop Bus Controller.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-09-01/11%3A29%3A29/AIM%20MIL-STD-1553%20Hardware%20API.lvlib--Stop%20Bus%20Controller.vi.png)
AIM MIL-STD-1553 Hardware API.lvlib--Update Buffer Words.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-aim-milStd1553-custom-device/PR-89/2022-09-01/11%3A29%3A29/AIM%20MIL-STD-1553%20Hardware%20API.lvlib--Update%20Buffer%20Words.vi.png)