Commit a8bb03f
idpf: improve when to set RE bit logic
jira KERNEL-168
commit-author Joshua Hay <joshua.a.hay@intel.com>
commit f2d18e1
upstream-diff |
adjusted context in struct idpf_tx_queue because the order
of the fields is different due to missing
- 5a816aa ("idpf: strictly assert cachelines of queue and queue vector structures")
Track the gap between next_to_use and the last RE index. Set RE again
if the gap is large enough to ensure RE bit is set frequently. This is
critical before removing the stashing mechanisms because the
opportunistic descriptor ring cleaning from the out-of-order completions
will go away. Previously the descriptors would be "cleaned" by both the
descriptor (RE) completion and the out-of-order completions. Without the
latter, we must ensure the RE bit is set more frequently. Otherwise,
it's theoretically possible for the descriptor ring next_to_clean to
never advance. The previous implementation was dependent on the start
of a packet falling on a 64th index in the descriptor ring, which is not
guaranteed with large packets.
Signed-off-by: Luigi Rizzo <lrizzo@google.com>
Signed-off-by: Brian Vazquez <brianvv@google.com>
Signed-off-by: Joshua Hay <joshua.a.hay@intel.com>
Reviewed-by: Madhu Chittim <madhu.chittim@intel.com>
Tested-by: Samuel Salin <Samuel.salin@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
(cherry picked from commit f2d18e1)
Signed-off-by: Roxana Nicolescu <rnicolescu@ciq.com>1 parent 929b426 commit a8bb03f
2 files changed
Lines changed: 23 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
293 | 293 | | |
294 | 294 | | |
295 | 295 | | |
| 296 | + | |
| 297 | + | |
296 | 298 | | |
297 | 299 | | |
298 | 300 | | |
| |||
2791 | 2793 | | |
2792 | 2794 | | |
2793 | 2795 | | |
| 2796 | + | |
| 2797 | + | |
| 2798 | + | |
| 2799 | + | |
| 2800 | + | |
| 2801 | + | |
| 2802 | + | |
| 2803 | + | |
| 2804 | + | |
| 2805 | + | |
| 2806 | + | |
| 2807 | + | |
| 2808 | + | |
| 2809 | + | |
| 2810 | + | |
2794 | 2811 | | |
2795 | 2812 | | |
2796 | 2813 | | |
| |||
2871 | 2888 | | |
2872 | 2889 | | |
2873 | 2890 | | |
2874 | | - | |
| 2891 | + | |
2875 | 2892 | | |
2876 | 2893 | | |
| 2894 | + | |
2877 | 2895 | | |
2878 | 2896 | | |
2879 | 2897 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
672 | 672 | | |
673 | 673 | | |
674 | 674 | | |
| 675 | + | |
| 676 | + | |
675 | 677 | | |
676 | 678 | | |
677 | 679 | | |
| |||
683 | 685 | | |
684 | 686 | | |
685 | 687 | | |
686 | | - | |
687 | 688 | | |
688 | 689 | | |
689 | 690 | | |
| |||
736 | 737 | | |
737 | 738 | | |
738 | 739 | | |
| 740 | + | |
| 741 | + | |
739 | 742 | | |
740 | 743 | | |
741 | 744 | | |
| |||
745 | 748 | | |
746 | 749 | | |
747 | 750 | | |
748 | | - | |
749 | 751 | | |
750 | 752 | | |
751 | 753 | | |
| |||
0 commit comments