Whamcloud - gitweb
LU-794 llite: allow larger O_DIRECT read/write RPC
authorAndreas Dilger <adilger@whamcloud.com>
Thu, 27 Oct 2011 00:59:15 +0000 (18:59 -0600)
committerOleg Drokin <green@whamcloud.com>
Wed, 14 Dec 2011 13:01:24 +0000 (08:01 -0500)
commit6025034aa9c692d92d7c2361785503b90b49cee9
tree0ae8833a7eeff0ec674e15feeea195dac48dfd7a
parentc958412e42d3e1529a40b78e96f36e6d15608517
LU-794 llite: allow larger O_DIRECT read/write RPC

The O_DIRECT read/write RPC size limit was formerly constrained by
the maximum kmalloc() size, and would fall back to smaller kmalloc()
allocations until they succeeded.  This constrained the number of
concurrent O_DIRECT RPCs, which can significantly affect performance.

Newer code uses OBD_ALLOC_LARGE()  vmalloc() for allocations larger
than a page, so the maximum RPC limit can be increased.  Currently
the limit is arbitrarily set to KMALLOC_MAX_SIZE (which is just a
proxy for what is a reasonably large allocation is for the system).

This increases the maximum O_DIRECT limit to about 682MB, which will
allow sending 8 concurrent RPCs on an 85-stripe file with a single
write() or combination thereof.  This could be increased if needed.

Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Change-Id: Ic12e6536cebed94c3a3b56acbea0f0940cdafec9
Reviewed-on: http://review.whamcloud.com/1617
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Jinshan Xiong <jinshan.xiong@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/llite/rw26.c