[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20180815182538.GB9709@xo-6d-61-c0.localdomain>
Date: Wed, 15 Aug 2018 20:31:34 +0200
From: Pavel Machek <pavel@....cz>
To: Jeff Lien <jeff.lien@....com>
Cc: linux-kernel@...r.kernel.org, linux-crypto@...r.kernel.org,
linux-block@...r.kernel.org, linux-scsi@...r.kernel.org,
herbert@...dor.apana.org.au, tim.c.chen@...ux.intel.com,
martin.petersen@...cle.com, david.darrington@....com,
jeff.furlong@....com
Subject: Re: [PATCH] Performance Improvement in CRC16 Calculations.
Hi!
> This patch provides a performance improvement for the CRC16 calculations done in read/write
> workloads using the T10 Type 1/2/3 guard field. For example, today with sequential write
> workloads (one thread/CPU of IO) we consume 100% of the CPU because of the CRC16 computation
> bottleneck. Today's block devices are considerably faster, but the CRC16 calculation prevents
> folks from utilizing the throughput of such devices. To speed up this calculation and expose
> the block device throughput, we slice the old single byte for loop into a 16 byte for loop,
> with a larger CRC table to match. The result has shown 5x performance improvements on various
> big endian and little endian systems running the 4.18.0 kernel version.
Well, 8K table fits in cache easily, and when running benchmark, table will be cached so it is
a win... Is it also win on non-benchmark workloads and smaller systems?
Pavel
Powered by blists - more mailing lists