• Alexey Brodkin's avatar
    ARCv2: guard SLC DMA ops with spinlock · b607eddd
    Alexey Brodkin authored
    SLC maintenance ops need to be serialized by software as there is no
    inherent buffering / quequing of aux commands. It can silently ignore a
    new aux operation if previous one is still ongoing (SLC_CTRL_BUSY)
    
    So gaurd the SLC op using a spin lock
    
    The spin lock doesn't seem to be contended even in heavy workloads such
    as iperf. On FPGA @ 75 MHz.
    
     [1] Before this change:
     ============================================================
      # iperf -c 10.42.0.1
     ------------------------------------------------------------
     Client connecting to 10.42.0.1, TCP port 5001
     TCP window size: 43.8 KByte (default)
     ------------------------------------------------------------
     [  3] local 10.42.0.110 port 38935 connected with 10.42.0.1 port 5001
     [ ID] Interval       Transfer     Bandwidth
     [  3]  0.0-10.0 sec  48.4 MBytes  40.6 Mbits/sec
     ============================================================
    
     [2] After this change:
     ============================================================
     # iperf -c 10.42.0.1
     ------------------------------------------------------------
     Client connecting to 10.42.0.1, TCP port 5001
     TCP window size: 43.8 KByte (default)
     ------------------------------------------------------------
     [  3] local 10.42.0.243 port 60248 connected with 10.42.0.1 port 5001
     [ ID] Interval       Transfer     Bandwidth
     [  3]  0.0-10.0 sec  47.5 MBytes  39.8 Mbits/sec
     # iperf -c 10.42.0.1
     ------------------------------------------------------------
     Client connecting to 10.42.0.1, TCP port 5001
     TCP window size: 43.8 KByte (default)
     ------------------------------------------------------------
     [  3] local 10.42.0.243 port 60249 connected with 10.42.0.1 port 5001
     [ ID] Interval       Transfer     Bandwidth
     [  3]  0.0-10.0 sec  54.9 MBytes  46.0 Mbits/sec
     ============================================================
    Signed-off-by: default avatarAlexey Brodkin <abrodkin@synopsys.com>
    Cc: arc-linux-dev@synopsys.com
    Signed-off-by: default avatarVineet Gupta <vgupta@synopsys.com>
    b607eddd
cache.c 23 KB