Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DMA network deadlock potential #15

Open
zarubaf opened this issue Apr 29, 2021 · 0 comments
Open

DMA network deadlock potential #15

zarubaf opened this issue Apr 29, 2021 · 0 comments
Labels
bug Something isn't working

Comments

@zarubaf
Copy link
Contributor

zarubaf commented Apr 29, 2021

Due to the handling of atomics, there is a potential of deadlocking the DMA network if the DMA can't issue any more writes because the reads are stalled on axi_demux.

https://github.com/pulp-platform/axi/blob/dda3876318dbf67305e2820ef47524bfa94b67bc/src/axi_demux.sv#L200

Since we have two dedicated networks, a narrow one (usually single core requests) and a wide one (burst-type transfers) we do not necessarily need atomic support on the wide network. With atomics disabled, the axi_demux can drop the dependency between read and write channels.

pulp-platform/snitch#116 as a reference where this happened + short-term mitigation by increasing the transaction buffers.

@zarubaf zarubaf added the bug Something isn't working label Apr 29, 2021
zarubaf referenced this issue in pulp-platform/snitch Sep 2, 2021
Update code from upstream repository https://github.com/pulp-
platform/common_cells.git to revision
06e519abc4b2324287194519bce2f2ed9d262476

* sync: Parameterize reset value (#122) (Florian Zaruba)
* isochronous_4phase_handshake: Add implementation (#100) (Florian
  Zaruba)
* src/id_queue.sv: Enables simultaneous input and output (#106)
  (Flavien Solt)
* Add `cc_onehot` module (#121) (Florian Zaruba)
* Release v1.22.1 (Florian Zaruba)
* Fix port list copy paste bug (#120) (Manuel Eggimann)
* Release v1.22.0 (Florian Zaruba)
* Add `flushable_spill_register` (#119) (Florian Zaruba)
* registers: Optionally disable synopsys macros (#118) (Florian
  Zaruba)

Signed-off-by: Florian Zaruba <zarubaf@iis.ee.ethz.ch>
zarubaf referenced this issue in pulp-platform/snitch Sep 2, 2021
* Remove common_cells patches

* Update pulp_platform_common_cells to 06e519a

Update code from upstream repository https://github.com/pulp-
platform/common_cells.git to revision
06e519abc4b2324287194519bce2f2ed9d262476

* sync: Parameterize reset value (#122) (Florian Zaruba)
* isochronous_4phase_handshake: Add implementation (#100) (Florian
  Zaruba)
* src/id_queue.sv: Enables simultaneous input and output (#106)
  (Flavien Solt)
* Add `cc_onehot` module (#121) (Florian Zaruba)
* Release v1.22.1 (Florian Zaruba)
* Fix port list copy paste bug (#120) (Manuel Eggimann)
* Release v1.22.0 (Florian Zaruba)
* Add `flushable_spill_register` (#119) (Florian Zaruba)
* registers: Optionally disable synopsys macros (#118) (Florian
  Zaruba)

Signed-off-by: Florian Zaruba <zarubaf@iis.ee.ethz.ch>

* Re-name `onehot` to `cc_onehot`
paulsc96 referenced this issue Jul 11, 2023
* Remove common_cells patches

* Update pulp_platform_common_cells to 06e519a

Update code from upstream repository https://github.com/pulp-
platform/common_cells.git to revision
06e519abc4b2324287194519bce2f2ed9d262476

* sync: Parameterize reset value (pulp-platform/snitch#122) (Florian Zaruba)
* isochronous_4phase_handshake: Add implementation (pulp-platform/snitch#100) (Florian
  Zaruba)
* src/id_queue.sv: Enables simultaneous input and output (pulp-platform/snitch#106)
  (Flavien Solt)
* Add `cc_onehot` module (pulp-platform/snitch#121) (Florian Zaruba)
* Release v1.22.1 (Florian Zaruba)
* Fix port list copy paste bug (pulp-platform/snitch#120) (Manuel Eggimann)
* Release v1.22.0 (Florian Zaruba)
* Add `flushable_spill_register` (pulp-platform/snitch#119) (Florian Zaruba)
* registers: Optionally disable synopsys macros (pulp-platform/snitch#118) (Florian
  Zaruba)

Signed-off-by: Florian Zaruba <zarubaf@iis.ee.ethz.ch>

* Re-name `onehot` to `cc_onehot`
paulsc96 referenced this issue Jul 11, 2023
* Remove common_cells patches

* Update pulp_platform_common_cells to 06e519a

Update code from upstream repository https://github.com/pulp-
platform/common_cells.git to revision
06e519abc4b2324287194519bce2f2ed9d262476

* sync: Parameterize reset value ([pulp-platform/snitch#122](#122s)) (Florian Zaruba)
* isochronous_4phase_handshake: Add implementation ([pulp-platform/snitch#100](#100s)) (Florian
  Zaruba)
* src/id_queue.sv: Enables simultaneous input and output ([pulp-platform/snitch#106](#106s))
  (Flavien Solt)
* Add `cc_onehot` module ([pulp-platform/snitch#121](#121s)) (Florian Zaruba)
* Release v1.22.1 (Florian Zaruba)
* Fix port list copy paste bug ([pulp-platform/snitch#120](#120s)) (Manuel Eggimann)
* Release v1.22.0 (Florian Zaruba)
* Add `flushable_spill_register` ([pulp-platform/snitch#119](#119s)) (Florian Zaruba)
* registers: Optionally disable synopsys macros ([pulp-platform/snitch#118](#118s)) (Florian
  Zaruba)

Signed-off-by: Florian Zaruba <zarubaf@iis.ee.ethz.ch>

* Re-name `onehot` to `cc_onehot`
paulsc96 referenced this issue Jul 11, 2023
* Remove common_cells patches

* Update pulp_platform_common_cells to 06e519a

Update code from upstream repository https://github.com/pulp-
platform/common_cells.git to revision
06e519abc4b2324287194519bce2f2ed9d262476

* sync: Parameterize reset value (pulp-platform/snitch#122) (Florian Zaruba)
* isochronous_4phase_handshake: Add implementation (pulp-platform/snitch#100) (Florian
  Zaruba)
* src/id_queue.sv: Enables simultaneous input and output (pulp-platform/snitch#106)
  (Flavien Solt)
* Add `cc_onehot` module (pulp-platform/snitch#121) (Florian Zaruba)
* Release v1.22.1 (Florian Zaruba)
* Fix port list copy paste bug (pulp-platform/snitch#120) (Manuel Eggimann)
* Release v1.22.0 (Florian Zaruba)
* Add `flushable_spill_register` (pulp-platform/snitch#119) (Florian Zaruba)
* registers: Optionally disable synopsys macros (pulp-platform/snitch#118) (Florian
  Zaruba)

Signed-off-by: Florian Zaruba <zarubaf@iis.ee.ethz.ch>

* Re-name `onehot` to `cc_onehot`
colluca referenced this issue Jul 11, 2023
* Remove common_cells patches

* Update pulp_platform_common_cells to 06e519a

Update code from upstream repository https://github.com/pulp-
platform/common_cells.git to revision
06e519abc4b2324287194519bce2f2ed9d262476

* sync: Parameterize reset value (pulp-platform/snitch#122) (Florian Zaruba)
* isochronous_4phase_handshake: Add implementation (pulp-platform/snitch#100) (Florian
  Zaruba)
* src/id_queue.sv: Enables simultaneous input and output (pulp-platform/snitch#106)
  (Flavien Solt)
* Add `cc_onehot` module (pulp-platform/snitch#121) (Florian Zaruba)
* Release v1.22.1 (Florian Zaruba)
* Fix port list copy paste bug (pulp-platform/snitch#120) (Manuel Eggimann)
* Release v1.22.0 (Florian Zaruba)
* Add `flushable_spill_register` (pulp-platform/snitch#119) (Florian Zaruba)
* registers: Optionally disable synopsys macros (pulp-platform/snitch#118) (Florian
  Zaruba)

Signed-off-by: Florian Zaruba <zarubaf@iis.ee.ethz.ch>

* Re-name `onehot` to `cc_onehot`
paulsc96 referenced this issue Jul 11, 2023
* Remove common_cells patches

* Update pulp_platform_common_cells to 06e519a

Update code from upstream repository https://github.com/pulp-
platform/common_cells.git to revision
06e519abc4b2324287194519bce2f2ed9d262476

* sync: Parameterize reset value (pulp-platform/snitch#122) (Florian Zaruba)
* isochronous_4phase_handshake: Add implementation (pulp-platform/snitch#100) (Florian
  Zaruba)
* src/id_queue.sv: Enables simultaneous input and output (pulp-platform/snitch#106)
  (Flavien Solt)
* Add `cc_onehot` module (pulp-platform/snitch#121) (Florian Zaruba)
* Release v1.22.1 (Florian Zaruba)
* Fix port list copy paste bug (pulp-platform/snitch#120) (Manuel Eggimann)
* Release v1.22.0 (Florian Zaruba)
* Add `flushable_spill_register` (pulp-platform/snitch#119) (Florian Zaruba)
* registers: Optionally disable synopsys macros (pulp-platform/snitch#118) (Florian
  Zaruba)

Signed-off-by: Florian Zaruba <zarubaf@iis.ee.ethz.ch>

* Re-name `onehot` to `cc_onehot`
paulsc96 referenced this issue Jul 11, 2023
* Remove common_cells patches

* Update pulp_platform_common_cells to 06e519a

Update code from upstream repository https://github.com/pulp-
platform/common_cells.git to revision
06e519abc4b2324287194519bce2f2ed9d262476

* sync: Parameterize reset value (pulp-platform/snitch#122) (Florian Zaruba)
* isochronous_4phase_handshake: Add implementation (pulp-platform/snitch#100) (Florian
  Zaruba)
* src/id_queue.sv: Enables simultaneous input and output (pulp-platform/snitch#106)
  (Flavien Solt)
* Add `cc_onehot` module (pulp-platform/snitch#121) (Florian Zaruba)
* Release v1.22.1 (Florian Zaruba)
* Fix port list copy paste bug (pulp-platform/snitch#120) (Manuel Eggimann)
* Release v1.22.0 (Florian Zaruba)
* Add `flushable_spill_register` (pulp-platform/snitch#119) (Florian Zaruba)
* registers: Optionally disable synopsys macros (pulp-platform/snitch#118) (Florian
  Zaruba)

Signed-off-by: Florian Zaruba <zarubaf@iis.ee.ethz.ch>

* Re-name `onehot` to `cc_onehot`
@paulsc96 paulsc96 transferred this issue from pulp-platform/snitch Jul 11, 2023
JosseVanDelm pushed a commit to JosseVanDelm/snitch_cluster that referenced this issue Dec 11, 2023
* sw: Add snax-mac.c test

* sw: Add data for snax-mac test

* Add Makefile for compiling snax-mac

* sw: Add snax-mac to list of to-compile builds

* sw: Re-align data for lint

* sw: Fix lint for snax-mac.c

* lint: Exclude SNAX tests from license checking

* sw: Swap snrt.h and data.h positions

* sw: Fix lint for data.h

* sw: Fix lint for snax-mac.c

* sw: Code cleaning and fix comments for clarity

* tests: Add snax-mac to snax-run.yaml

* Revert "tests: Add snax-mac to snax-run.yaml"

This reverts commit 150b91a.

* sw: Fix comments for snax-mac

* Add snax-rum.yaml for the application test list.

* ci: Modify test in CI to use snax-run.yaml for the apps side
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant