Commit Graph

76 Commits

Author SHA1 Message Date
Martin Braun
d542ec41bf uhd: stream: Bring back zero-latency recv() calls
This introduces a behavioural change in recv() (for RFNoC devices; older
devices are unaffected).

The behavioural changes depend on the way recv() was called:

- nsamps_per_buff > 0, timeout == 0: This is the busy-loop, or polling
  use case. This is typically done in application that require best-case
  latency.
  - OLD CODE: Before this change, the streamer would artificially
    increase the timeout value to 1ms (in order to increase the chance
    of catching an overrun or late error).
  - NEW CODE: After this change, the timeout of 0 is applied everywhere.
    This means that if a timeout occurs while calling recv(), it is not
    sufficient to call recv() again with a zero-timeout, zero-nsamps
    value (see next case) to detect what error occurred.
- nsamps_per_buff == 0, timeout == 0: Within niuhd, this was used to
  determine the error code if a regular call to recv() failed to
  receive all expected samples. The assumption was that calling recv()
  ones with these values (all zero) would suffice to figure out what the
  problem was (i.e., if an overrun or other error had occurred). However,
  this behaviour was never documented or declared to be valid!
  - OLD CODE: In the old code, the timeout was artifically increased to
    1ms, even if we would never process any packets. This was used to
    force a short "sleep" of the recv call, which would increase the
    chance that outstanding errors (overruns or lates) would be made
    available to the recv() thread. However, if a timeout would occur,
    then we would report back ERROR_CODE_NONE to the user, because they
    were requesting zero samples anyway.
  - NEW CODE: After the change, the timeout is not increased to 1ms any
    longer, but the timeout-scrubbing behaviour is retained. Because we
    don't artificially let the thread sleep, there is increased risk
    of missing outstanding errors. If the intention was to always catch
    those, call recv() with a non-zero timeout!
- nsamps_per_buff == 0, timeout > 0: This should be the right call to
  "catch" any outstanding errors (overruns, lates) with an arbitrary
  amount of waiting time.
  - OLD CODE: Ironically, before this change, the code would fix the
    timeout to 1ms, even if a bigger timeout was requested.
  - NEW CODE: The desired timeout is applied, even though no packets
    will be processed. This allows the call site, if they don't care
    about latency, to increase the sleep duration to a safe margin.
- nsamps_per_buff > 0, timeout > 0: This is the normal streaming case,
  and this remains unchanged.

On top of the changes to the RX streaming behaviour for RFNoC devices,
the documentation for recv() was made more detailed to better explain
the contract around recv().

Some background:

- In a2f10eed, a change was made to bump the minimum timeout to 1ms to
  increase the chance that errors are propagated back the call site.
  However, there was never a guarantee in the UHD API that recv() with
  zero samples, zero timeout would return all errors.
- This change had the effect that recv() would return with
  ERROR_CODE_TIMEOUT if nothing was available, which is also undesired.
  So in 0382a1c, a change was made to fix the timeout to 1ms for
  nsamps_per_buff == 0, regardless of the desired timeout.
2025-02-18 12:08:39 +01:00
Martin Braun
3909512623 lib: Replace uhd::math::gcd,lcm with std::gcd,lcm
This became possible with the new dependency on C++17, which added std::
gcm() and std::lcm(). The standard library has some advantages over our
version (e.g., constexpr) but most importantly, it allows us to remove
the (version dependent!) Boost dependency in math.hpp.

This breaks the public API: `uhd::math::{gcd,lcm}` were defined in the
public header uhd/utils/math.hpp.
2025-02-07 11:00:36 +01:00
Marian Koop
1e4d0a7d56 doc: Appended changelog for UHD 4.8 release
Added mention for bug fix of usrp_update_fs utility.
2025-01-23 20:42:29 +01:00
Marian Koop
3a629f8549 Updated CHANGELOG 2025-01-13 22:35:01 +01:00
Martin Braun
9fc242122e Update CHANGELOG
Co-authored-by: Lars Amsel <lars.amsel@emerson.com>
Co-authored-by: Martin Anderseck <martin.anderseck@emerson.com>
Co-authored-by: Wade Fife <wade.fife@emerson.com>
Co-authored-by: Jörg Hofrichter <joerg.hofrichter@emerson.com>
Co-authored-by: Grant Meyerhoff <grant.meyerhoff@emerson.com>
2024-11-27 12:20:22 +01:00
Marian Koop
b60c459ea1 doc: Corrected errors in release CHANGELOGs for UHD 4.7.0.0
- Corrected tested Fedora versions to 37, 38 (was 34, 35, 36)
- Removed duplicate changelog for 4.7.0.0 in debian changelog
2024-07-01 13:02:03 +02:00
Marian Koop
a5ed1872be 4.7.0.0 Release 2024-06-28 15:31:02 +02:00
Marian Koop
3752ed83fa docs: CHANGELOG: Added change log for UHD 4.7.0.0 2024-06-18 17:11:49 +02:00
Aki Tomita
50fa3baa2e 4.6.0.0 Release 2023-11-13 09:22:00 -06:00
mkoop
e547a6bba3 doc: x440: Highlight new X440 features and replay block behavior changes 2023-11-09 07:55:58 -06:00
Aki Tomita
0c4637aba8 Update to changelogs 2023-11-06 18:20:00 -06:00
Aki Tomita
c2dd6c1d99 Prepare for 4.6.0.0 release
- Updated version string
- Updated CHANGELOG
- Updated Debian-related files
- Updated images package
2023-10-30 21:50:18 -05:00
Aki Tomita
471af98f6b 4.5.0.0 Release 2023-09-11 14:12:35 -05:00
Aki Tomita
9fb9d79d85 Prepare for 4.5.0.0 release
- Updated version string
- Updated CHANGELOG
- Updated Debian-related files
- Updated manifest
2023-08-31 17:04:08 -05:00
Aki Tomita
1877db8f7f uhd: Update changelog with 4.1.0.x releases 2023-05-03 10:16:20 -07:00
michael-west
5fac246bc1 UHD 4.4.0.0 Release
Signed-off-by: michael-west <michael.west@ettus.com>
2023-01-27 13:17:39 -08:00
michael-west
cea9b945bc Prepare branch for 4.4.0.0 release
- Updated version string
- Updated CHANGELOG
- Updated Debian-related files
- Updated images

Signed-off-by: michael-west <michael.west@ettus.com>
2023-01-23 23:13:06 -08:00
Steven Koo
1f8fd3457d uhd: Prepare branch for 4.3.0.0 release
- Updated CHANGELOG
 - Updated Debian-related files
 - Updated images package

Signed-off-by: Steven Koo <steven.koo@ni.com>
2022-09-14 09:19:33 -05:00
Steven Koo
fbcc8a642e Prepare branch for 4.3.0.0-rc2 release
- Updated CHANGELOG
 - Updated Debian-related files
 - Updated images package

Signed-off-by: Steven Koo <steven.koo@ni.com>
2022-09-12 17:27:49 -05:00
Steven Koo
2c96e57f1f uhd: Prepare for 4.3.0.0-rc1 release
- images: update manifest
- uhd: update changelog and version string
- debian: update changelog and installer version

Signed-off-by: Steven Koo <steven.koo@ni.com>
2022-09-06 15:09:25 -05:00
Steven Koo
7313d28b2b changelog: forward port 4.2.0.1 changes 2022-09-06 15:09:25 -05:00
Aaron Rossetto
40feef74a8 uhd: Prepare for 4.2.0.0 release
- Updated CHANGELOG
- Updated Debian changelog
2022-04-19 12:51:57 -07:00
Aaron Rossetto
197cdc4f66 uhd: Prepare for 4.2.0.0-rc1 release
- images: Updated manifest
- uhd: Updated changelog and version string
- debian: Updated changelog
2022-04-08 06:12:07 -07:00
Aaron Rossetto
8038727d59 uhd: Update version, manifest, and changelogs
Recently, we released UHD v4.1.0.1, which addressed some bugs that found
their way into the UHD v4.1.0.0 release. While the changes that
addressed those bugs were made in the master branch, they were
cherry-picked into the UHD-4.1 branch, and the v4.1.0.1 release was made
from that branch. However, the version, manifest, and changelogs were
updated only in the UHD-4.1 branch, not in master. The effect of that is
that the current master (a.k.a. the absolute latest, perhaps unstable,
use-at-your-own-risk code) branch's version, manifest, and changelogs
still reflect the v4.1.0.0 release. Furthermore, the UHD documentation
refers to the manifest file in the master branch as the way to get (at
least) the most recent filesystem and FPGA artifacts. Not updating the
manifest in master renders that documentation inaccurate.

This commit updates those details in master to reflect the latest
v4.1.0.1 release artifacts, and updates the version of master to
4.2.0-git.
2021-07-21 14:29:44 -05:00
Aaron Rossetto
d21735d543 uhd: Prepare branch for 4.1.0.0 release
uhd: Update CHANGELOG
debian: Update changelog
images: change filesystem version to v4.1

Signed-off-by: Aaron Rossetto <aaron.rossetto@ni.com>
Signed-off-by: Steven Koo <steven.koo@ni.com>
2021-06-30 11:54:42 -05:00
Aaron Rossetto
f3d3b071fd uhd: Prepare branch for 4.1.0.0-rc1 release
uhd: Update changelog for 4.1 RC
images: Update manifest
debian: Update changelog
debian: Update control and copyright
installers: automatic version handling for dsc

Signed-off-by: Aaron Rossetto <aaron.rossetto@ni.com>
Signed-off-by: Steven Koo <steven.koo@ni.com>
2021-06-25 17:56:54 -05:00
michael-west
90ce6062b6 Prepare branch for release
- Update CHANGELOG
- Update debian files

Signed-off-by: michael-west <michael.west@ettus.com>
2020-09-13 12:14:04 -07:00
Aaron Rossetto
4c8ba57752 Update CHANGELOG 2020-08-19 19:30:58 -05:00
Aaron Rossetto
495eca8832 Prepare branch for 4.0.0.0-rc1 release
- Updated CHANGELOG
- Updated manifest
2020-08-17 16:25:43 -05:00
Martin Braun
be183dae7a Update branch for upcoming 3.15 release
- Update submodule pointer
- Update CHANGELOG to incorporate latest changes
2019-10-15 16:30:49 -07:00
Martin Braun
0408f47b23 Prepare branch for upcoming UHD 3.15 release
- Update CHANGELOG
- Change UHD version to 3.15.0.0 / stable
2019-10-14 11:03:07 -07:00
Martin Braun
8d02bc138a Update CHANGELOG for the upcoming 3.15 release 2019-10-11 11:00:01 -07:00
michael-west
abf0db4ef3 Preparing branch for 3.14.0.0 Release
- Updated CHANGELOG
- Updated fpga-src submodule
- Updated version info
- Updated manifest
2019-02-01 18:40:54 -08:00
Martin Braun
f4ec291d9b CHANGELOG: Cherry-pick changes from UHD-3.13 branch 2019-01-09 17:41:18 -08:00
Martin Braun
d4ebf85e28 Import changelog from UHD-3.13 branch 2018-09-13 17:30:13 -07:00
Martin Braun
5a488d5ed4 Preparing for 3.13.0.0 Release
- Updated CHANGELOG
- Updated UHD version to non-devel
2018-07-19 10:31:40 -07:00
Martin Braun
ec786351c7 Update CHANGELOG and manifest.txt for 3.12.0.0 release 2018-06-05 17:48:43 -07:00
Martin Braun
9591c93dd5 Prepare branch for 3.12.0.0 release
- Updated version string
- Updated CHANGELOG
2018-05-17 12:12:53 -07:00
michael-west
4b75fcbcb3 Debian: Fix formatting of CHANGELOG to work better with convert_changelog.py tool 2018-05-16 15:15:39 -07:00
Martin Braun
e8d5bbe7cb Update CHANGELOG 2018-05-14 19:03:22 -07:00
Martin Braun
74d4fdeaba CHANGELOG: Merge 3.11.1.0 log from maint 2018-05-10 09:50:48 -07:00
michael-west
01d92699eb Debian: Clean up CHANGELOG for clean Debian parsing. 2018-03-29 12:23:18 -07:00
Martin Braun
9f67f624ad Preparing branch for 3.11.0.0 release
- Updated version string
- Updated CHANGELOG
2018-02-22 14:11:29 -08:00
Martin Braun
e75c7d6f56 Preparing branch for 3.10.2.0 release.
- Updated version string
 - Updated fpga-src submodule
 - Updated CHANGELOG
 - Updated images package
2017-07-18 15:25:22 -07:00
Martin Braun
6ff5cd4f8c CHANGELOG: Imported overlap from 3.9.LTS branch 2017-07-07 10:17:43 -07:00
Derek Kozel
68d272d38b Fix release number and product ID in changelog 2017-01-12 17:56:09 -08:00
Martin Braun
d9edfc57a7 Preparing branch for 3.10.1.1 release.
- Updated version string
- Updated fpga-src submodule
- Updated CHANGELOG
- Updated images package
2017-01-12 15:15:56 -08:00
Derek Kozel
945fd65309 Preparing branch for 3.10.1.0 release
- Updated CHANGELOG
    - Updated fpga-src submodule pointer
    - Updated images package
2016-10-27 17:45:50 -07:00
Martin Braun
3660cc42cc Preparing branch for 3.10.1.0 release
- Updated CHANGELOG
- Updated fpga-src submodule pointer
- Updated images package
- Updated version string
2016-10-18 14:35:00 -07:00
Martin Braun
e864711eb8 Merge branch 'UHD-3.9.LTS' into maint 2016-08-22 14:43:22 -07:00