[ 
https://issues.apache.org/jira/browse/DISPATCH-1372?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16882739#comment-16882739
 ] 

ASF GitHub Bot commented on DISPATCH-1372:
------------------------------------------

codecov-io commented on issue #525: DISPATCH-1372 alloc_pool intrusive linked 
list can be replaced by a linked stack
URL: https://github.com/apache/qpid-dispatch/pull/525#issuecomment-504422052
 
 
   # 
[Codecov](https://codecov.io/gh/apache/qpid-dispatch/pull/525?src=pr&el=h1) 
Report
   > Merging 
[#525](https://codecov.io/gh/apache/qpid-dispatch/pull/525?src=pr&el=desc) into 
[master](https://codecov.io/gh/apache/qpid-dispatch/commit/f22766996be12f5a0d6b388d04be6d7ccad1eb80?src=pr&el=desc)
 will **decrease** coverage by `0.04%`.
   > The diff coverage is `98.85%`.
   
   [![Impacted file tree 
graph](https://codecov.io/gh/apache/qpid-dispatch/pull/525/graphs/tree.svg?width=650&token=rk2Cgd27pP&height=150&src=pr)](https://codecov.io/gh/apache/qpid-dispatch/pull/525?src=pr&el=tree)
   
   ```diff
   @@            Coverage Diff             @@
   ##           master     #525      +/-   ##
   ==========================================
   - Coverage   86.91%   86.86%   -0.05%     
   ==========================================
     Files          87       87              
     Lines       19521    19578      +57     
   ==========================================
   + Hits        16967    17007      +40     
   - Misses       2554     2571      +17
   ```
   
   
   | [Impacted 
Files](https://codecov.io/gh/apache/qpid-dispatch/pull/525?src=pr&el=tree) | 
Coverage Δ | |
   |---|---|---|
   | 
[src/alloc\_pool.c](https://codecov.io/gh/apache/qpid-dispatch/pull/525/diff?src=pr&el=tree#diff-c3JjL2FsbG9jX3Bvb2wuYw==)
 | `98.27% <98.85%> (+0.02%)` | :arrow_up: |
   | 
[src/parse.c](https://codecov.io/gh/apache/qpid-dispatch/pull/525/diff?src=pr&el=tree#diff-c3JjL3BhcnNlLmM=)
 | `85% <0%> (-1.4%)` | :arrow_down: |
   | 
[...core/modules/address\_lookup\_client/lookup\_client.c](https://codecov.io/gh/apache/qpid-dispatch/pull/525/diff?src=pr&el=tree#diff-c3JjL3JvdXRlcl9jb3JlL21vZHVsZXMvYWRkcmVzc19sb29rdXBfY2xpZW50L2xvb2t1cF9jbGllbnQuYw==)
 | `91.63% <0%> (-1.05%)` | :arrow_down: |
   | 
[src/router\_core/forwarder.c](https://codecov.io/gh/apache/qpid-dispatch/pull/525/diff?src=pr&el=tree#diff-c3JjL3JvdXRlcl9jb3JlL2ZvcndhcmRlci5j)
 | `93.1% <0%> (-0.69%)` | :arrow_down: |
   | 
[src/router\_core/agent\_link.c](https://codecov.io/gh/apache/qpid-dispatch/pull/525/diff?src=pr&el=tree#diff-c3JjL3JvdXRlcl9jb3JlL2FnZW50X2xpbmsuYw==)
 | `67.52% <0%> (-0.52%)` | :arrow_down: |
   | 
[src/container.c](https://codecov.io/gh/apache/qpid-dispatch/pull/525/diff?src=pr&el=tree#diff-c3JjL2NvbnRhaW5lci5j)
 | `79.41% <0%> (-0.23%)` | :arrow_down: |
   | 
[src/iterator.c](https://codecov.io/gh/apache/qpid-dispatch/pull/525/diff?src=pr&el=tree#diff-c3JjL2l0ZXJhdG9yLmM=)
 | `89.03% <0%> (-0.2%)` | :arrow_down: |
   | 
[src/router\_core/router\_core.c](https://codecov.io/gh/apache/qpid-dispatch/pull/525/diff?src=pr&el=tree#diff-c3JjL3JvdXRlcl9jb3JlL3JvdXRlcl9jb3JlLmM=)
 | `86.53% <0%> (-0.2%)` | :arrow_down: |
   | 
[src/router\_node.c](https://codecov.io/gh/apache/qpid-dispatch/pull/525/diff?src=pr&el=tree#diff-c3JjL3JvdXRlcl9ub2RlLmM=)
 | `93.69% <0%> (-0.13%)` | :arrow_down: |
   | 
[src/router\_core/transfer.c](https://codecov.io/gh/apache/qpid-dispatch/pull/525/diff?src=pr&el=tree#diff-c3JjL3JvdXRlcl9jb3JlL3RyYW5zZmVyLmM=)
 | `95.37% <0%> (-0.03%)` | :arrow_down: |
   | ... and [3 
more](https://codecov.io/gh/apache/qpid-dispatch/pull/525/diff?src=pr&el=tree-more)
 | |
   
   ------
   
   [Continue to review full report at 
Codecov](https://codecov.io/gh/apache/qpid-dispatch/pull/525?src=pr&el=continue).
   > **Legend** - [Click here to learn 
more](https://docs.codecov.io/docs/codecov-delta)
   > `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
   > Powered by 
[Codecov](https://codecov.io/gh/apache/qpid-dispatch/pull/525?src=pr&el=footer).
 Last update 
[f227669...124b292](https://codecov.io/gh/apache/qpid-dispatch/pull/525?src=pr&el=lastupdated).
 Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).
   
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> alloc_pool intrusive linked list can be replaced by a linked stack
> ------------------------------------------------------------------
>
>                 Key: DISPATCH-1372
>                 URL: https://issues.apache.org/jira/browse/DISPATCH-1372
>             Project: Qpid Dispatch
>          Issue Type: Improvement
>          Components: Routing Engine
>    Affects Versions: 1.8.0
>            Reporter: Francesco Nigro
>            Priority: Major
>         Attachments: DOOM-3-BFG-Technical-Note.pdf, 
> image-2019-06-21-11-08-17-015.png, image-2019-06-21-11-09-02-228.png, 
> linked_list_misses.svg, stack_list_misses.svg
>
>
> alloc_pool is currently using a intrusive linked list approach to reduce the 
> need of external data structures to hold data, saving expensive pointer 
> chasing, but on modern architectures the data dependency between a current 
> node and next/prev prevent the CPU prefetcher to stream nodes speculatively.
> There are different approaches that could benefit of prefetcing, but need to 
> decouple the data stored from its container eg a linked stack.
> A linked stack is composed by doubly-linked chunks (allocated lazily) that 
> make possible for the CPU to prefetch next/prev pointers given that those are 
> already contained in the current chunk (if any).
> Although it seems counter-intuitive (given that introduce 1 more hop to reach 
> the data), such data-structure is much more cache-friendly on modern 
> architectures: I will attach some cache misses analysis to show it.
>  



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to