From: "Martin K. Petersen" Subject: Re: [PATCH] Performance Improvement in CRC16 Calculations. Date: Fri, 24 Aug 2018 18:12:39 -0400 Message-ID: References: <1533928331-21303-1-git-send-email-jeff.lien@wdc.com> <20180822062016.GA10356@infradead.org> Mime-Version: 1.0 Content-Type: text/plain Cc: "Martin K. Petersen" , Jeffrey Lien , Christoph Hellwig , "linux-kernel\@vger.kernel.org" , "linux-crypto\@vger.kernel.org" , "linux-block\@vger.kernel.org" , "linux-scsi\@vger.kernel.org" , "herbert\@gondor.apana.org.au" , "tim.c.chen\@linux.intel.com" , David Darrington , Jeff Furlong To: Ard Biesheuvel Return-path: In-Reply-To: (Ard Biesheuvel's message of "Fri, 24 Aug 2018 22:54:26 +0100") Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-crypto.vger.kernel.org Ard, > This looks like it should work, yes. It does rely on the module name > to start with 'crct10dif' but I guess that is reasonable, and matches > the current state on all architectures. Yep, I verified the module names on ARM and Power. There really wasn't much I could key off of other than the name string. > Anyone care to boot test this? Jeffrey? Did some quick tests on my end with both scsi_debug and FC hardware. I verified that performance went up as I loaded crct10dif-pclmul while the test was running: [ 23.488059] CRC T10 DIF calculated using crypto hash crct10dif-generic [ 156.922455] sd 0:0:0:0: [sda] Enabling DIX T10-DIF-TYPE1-CRC protection [ 221.577731] CRC T10 DIF calculated using crypto hash crct10dif-pclmul R 63.60 MB/s, W 61.00 MB/s, IOPS 486 | Ops 4460, Rec 0, Err 0 R 61.80 MB/s, W 62.00 MB/s, IOPS 493 | Ops 6926, Rec 0, Err 0 R 62.60 MB/s, W 60.80 MB/s, IOPS 494 | Ops 9396, Rec 0, Err 0 R 59.40 MB/s, W 58.80 MB/s, IOPS 482 | Ops 11804, Rec 0, Err 0 R 151.40 MB/s, W 155.40 MB/s, IOPS 1216 | Ops 17883, Rec 0, Err 0 R 165.00 MB/s, W 166.40 MB/s, IOPS 1327 | Ops 24520, Rec 0, Err 0 R 175.00 MB/s, W 177.40 MB/s, IOPS 1417 | Ops 31604, Rec 0, Err 0 R 185.80 MB/s, W 188.60 MB/s, IOPS 1507 | Ops 39137, Rec 0, Err 0 R 200.60 MB/s, W 203.00 MB/s, IOPS 1629 | Ops 47284, Rec 0, Err 0 Note that in this case the CRC is calculated twice per I/O (block layer and scsi_debug). I'll do some more testing over the weekend... -- Martin K. Petersen Oracle Linux Engineering