[PATCH][CFT] dcache-ac6-D - dcache threading

From: kumon@flab.fujitsu.co.jp
Date: Thu Jun 01 2000 - 06:58:32 EST


Alexander Viro writes:
> On Tue, 30 May 2000, Alexander Viro wrote:
> New stuff: big lock taken out of the normal path in close_filp() and
> _fput() - looks like it seriously cuts down on the contention (at least
> does in the tests I've run here). Testing on assorted loads is needed.
>
> > Please, give it a beating. It's on ftp.math.psu.edu/pub/viro/dcache-ac6-B.gz
> > (against -ac6, indeed).
>
> ... and new variant in the same place, name is dcache-ac6-D.gz

I measured viro's ac6-D patch with WebBench on 4cpu
Xeon system. I applied to 2.4.0-test1 not ac6.

The patch reduced 50% of stext_lock time and 4% of the total OS
time. d_lookup is increased but not so significant.

csum_partial_copy_generic time is also reduced 8% perhaps by the
reduction of bus-contentions. The function will be optimized 20% more
by the prefetch optimization. I'll post again if someone need.

(The unit is us / web-transaction)
test1 test1-D
986.8 982.3 TOTAL
 79.3 110.4 default_idle
 30.3 42.6 cpu_idle

 97.2 90.6 csum_partial_copy_generic
 73.6 35.8 stext_lock
 33.0 35.2 schedule
 32.9 31.1 speedo_interrupt
 24.4 23.6 speedo_rx
 22.9 22.2 kmalloc
 22.2 20.5 kfree
 20.3 18.3 speedo_start_xmit
 19.3 18.5 tcp_v4_rcv
 18.3 17.6 __kfree_skb
 17.4 17.7 __wake_up
 11.6 11.4 speedo_tx_buffer_gc
 11.1 11.0 do_IRQ
 10.1 9.1 path_walk
  9.9 8.8 tcp_transmit_skb
  9.6 9.2 ip_queue_xmit
  9.4 8.7 kfree_skbmem
  9.2 8.4 tcp_ack
  9.0 8.2 ip_route_input
  8.7 8.6 __generic_copy_from_user
  8.7 8.4 tcp_sendmsg
  8.1 15.0 d_lookup
  8.1 7.9 tcp_rcv_state_process
  7.9 7.7 net_rx_action

The stext_lock breakdown is as follows.
The patch reduces the contention of kernel_flag in various functions.

TEST1 stext_lock breakdown (unit is us/transaction)
        73.60 TOTAL
        14.09 do_close+144 kernel_flag
        11.86 schedule+1684 kernel_flag
        9.90 sys_fcntl+142 kernel_flag
        7.08 old_mmap+309 kernel_flag
        7.06 _fput+27 kernel_flag
        7.01 sys_newstat+30 kernel_flag
        6.84 sys_open+72 kernel_flag
        3.73 tcp_v4_rcv+610 0x2c(%ebx)
        1.35 tcp_accept+38 0x2c(%esi)
        1.00 wait_for_connect+704 0x2c(%ebx)
        0.64 schedule+195 runqueue_lock
        0.45 __wake_up+302 runqueue_lock

test1-D stext_lock breakdown(unit is us/transaction)
        35.80 TOTAL Lock Var
        7.52 schedule+1684 kernel_flag
        4.64 __fput+49 kernel_flag
        3.52 tcp_v4_rcv+610 0x2c(%ebx)
        2.86 dentry_open+264 kernel_flag
        2.63 dput+19 dcache_lock
        2.57 sys_fcntl+142 kernel_flag
        2.41 d_lookup+91 dcache_lock
        1.40 old_mmap+309 kernel_flag
        1.12 sock_close+137 kernel_flag
        1.11 wait_for_connect+704 0x2c(%ebx)
        1.07 tcp_accept+38 0x2c(%esi)
        0.67 schedule+195 runqueue_lock
        0.58 __wake_up+302 runqueue_lock

--
Computer Systems Laboratory, Fujitsu Labs.
kumon@flab.fujitsu.co.jp

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Wed Jun 07 2000 - 21:00:12 EST