CNB97: unroll: add generic loop unroll helpers

JIRA: https://issues.redhat.com/browse/RHEL-92670

commit c6594d64271704b335378e7b74c39fe4d4fcc777
Author: Alexander Lobakin <aleksander.lobakin@intel.com>
Date:   Thu Feb 6 19:26:26 2025 +0100

    unroll: add generic loop unroll helpers
    
    There are cases when we need to explicitly unroll loops. For example,
    cache operations, filling DMA descriptors on very high speeds etc.
    Add compiler-specific attribute macros to give the compiler a hint
    that we'd like to unroll a loop.
    Example usage:
    
     #define UNROLL_BATCH 8
    
            unrolled_count(UNROLL_BATCH)
            for (u32 i = 0; i < UNROLL_BATCH; i++)
                    op(priv, i);
    
    Note that sometimes the compilers won't unroll loops if they think this
    would have worse optimization and perf than without unrolling, and that
    unroll attributes are available only starting GCC 8. For older compiler
    versions, no hints/attributes will be applied.
    For better unrolling/parallelization, don't have any variables that
    interfere between iterations except for the iterator itself.
    
    Co-developed-by: Jose E. Marchesi <jose.marchesi@oracle.com> # pragmas
    Signed-off-by: Jose E. Marchesi <jose.marchesi@oracle.com>
    Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
    Signed-off-by: Alexander Lobakin <aleksander.lobakin@intel.com>
    Link: https://patch.msgid.link/20250206182630.3914318-2-aleksander.lobakin@intel.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>

Signed-off-by: CKI Backport Bot cki-ci-bot+cki-gitlab-backport-bot@redhat.com


Created 2025-05-20 12:16 UTC by backporter - KWF FAQ - Slack #team-kernel-workflow - Source - Documentation - Report an issue

Merge request reports

Loading