From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Thu, 13 Aug 2015 12:45:06 -0600 From: Jens Axboe Subject: Re: [PATCH] arch-ppc.h: Add ilog2 implementation for ppc64 Message-ID: <20150813184506.GB21417@kernel.dk> References: <1439286086-7822-1-git-send-email-chandan@linux.vnet.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1439286086-7822-1-git-send-email-chandan@linux.vnet.ibm.com> To: Chandan Rajendra Cc: fio@vger.kernel.org, david@gibson.dropbear.id.au, chandan@mykolab.com List-ID: On Tue, Aug 11 2015, Chandan Rajendra wrote: > On a ppc64 machine, when fio is invoked with the following configuration file > (generated by fstests' generic/300 test), it loops indefinitely. > > [global] > directory=/mnt/btrfs-xfstest-scratch > filesize=536870912 > size=999G > continue_on_error=write > ignore_error=,ENOSPC > error_dump=0 > > create_on_open=1 > fallocate=none > exitall=1 > > [direct_aio_raicer] > ioengine=libaio > iodepth=128*1 > bs=128k > direct=1 > numjobs=4 > rw=randwrite > runtime=100*1 > time_based > filename=racer > > [falloc_raicer] > ioengine=falloc > runtime=100*1 > iodepth=1 > bssplit=128k/80:512k/10:32k/10 > rw=randwrite > numjobs=1 > filename=racer > > [punch_hole_raicer] > ioengine=falloc > runtime=100*1 > bs=4k > time_based=10 > rw=randtrim > numjobs=2 > filename=racer > time_based > > [aio-dio-verifier] > ioengine=libaio > iodepth=128*1 > numjobs=1 > verify=crc32c-intel > verify_fatal=1 > verify_dump=1 > verify_backlog=1024 > verify_async=4 > verifysort=1 > direct=1 > bs=4k > rw=randwrite > filename=aio-dio-verifier > > This is because arch_ffz() ends up invoking the 32-bit version of __ilog2() > which always returns a bit number in the range 0 - 31. This can cause > "overlap" variable in axmap_set_fn() to never becomes zero. > > To fix this the commit adds a 64-bit version of __ilog2() (obtained from the > Linux kernel's arch/powerpc/include/asm/bitops.h). Awesome, thanks! This resolves an issue that someone reported a while back that only happened on ppc, and this explains it. -- Jens Axboe