From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.2 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E116DC5519F for ; Sat, 14 Nov 2020 23:06:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 81A6124102 for ; Sat, 14 Nov 2020 23:06:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726140AbgKNXGl (ORCPT ); Sat, 14 Nov 2020 18:06:41 -0500 Received: from mga03.intel.com ([134.134.136.65]:19623 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726136AbgKNXGk (ORCPT ); Sat, 14 Nov 2020 18:06:40 -0500 IronPort-SDR: cFvTtRgtsjI4aVRZPSaziv6UJ7CdkIkhpueuKJ7AY9kyYKFa8c9TQqiEI1Gd99J+JEdyD/qBzy 8kzMHEXpigBQ== X-IronPort-AV: E=McAfee;i="6000,8403,9805"; a="170708488" X-IronPort-AV: E=Sophos;i="5.77,479,1596524400"; d="gz'50?scan'50,208,50";a="170708488" X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Nov 2020 15:06:38 -0800 IronPort-SDR: Ed+4Gdifi0jR4OxH9LJciT0cu8VtZMCYfGZLitO+6HB8TnqS7Tnr6IxbdjseqlIdhQ1fEAsBir s9vjkpZJw+RA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,479,1596524400"; d="gz'50?scan'50,208,50";a="429827785" Received: from lkp-server02.sh.intel.com (HELO 697932c29306) ([10.239.97.151]) by fmsmga001.fm.intel.com with ESMTP; 14 Nov 2020 15:06:35 -0800 Received: from kbuild by 697932c29306 with local (Exim 4.92) (envelope-from ) id 1ke4ct-000110-2v; Sat, 14 Nov 2020 23:06:35 +0000 Date: Sun, 15 Nov 2020 07:06:16 +0800 From: kernel test robot To: Nick Terrell , Herbert Xu Cc: kbuild-all@lists.01.org, linux-crypto@vger.kernel.org, linux-btrfs@vger.kernel.org, squashfs-devel@lists.sourceforge.net, linux-f2fs-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org, Kernel Team , Nick Terrell , Chris Mason , Petr Malat Subject: Re: [PATCH v5 3/9] lib: zstd: Upgrade to latest upstream zstd version 1.4.6 Message-ID: <202011150723.hrwMrugO-lkp@intel.com> References: <20201103060535.8460-4-nickrterrell@gmail.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="SUOF0GtieIMvvwua" Content-Disposition: inline In-Reply-To: <20201103060535.8460-4-nickrterrell@gmail.com> User-Agent: Mutt/1.10.1 (2018-07-13) Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org --SUOF0GtieIMvvwua Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Nick, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on cryptodev/master] [also build test WARNING on kdave/for-next f2fs/dev-test linus/master v5.10-rc3 next-20201113] [cannot apply to crypto/master squashfs/master] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Nick-Terrell/lib-zstd-Add-zstd-compatibility-wrapper/20201103-150617 base: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master config: h8300-randconfig-r033-20201104 (attached as .config) compiler: h8300-linux-gcc (GCC) 9.3.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/0day-ci/linux/commit/667e96565ce79ec24e0ced9ec4093e92647e4163 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Nick-Terrell/lib-zstd-Add-zstd-compatibility-wrapper/20201103-150617 git checkout 667e96565ce79ec24e0ced9ec4093e92647e4163 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=h8300 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All warnings (new ones prefixed by >>): lib/zstd/compress/zstd_double_fast.c: In function 'ZSTD_compressBlock_doubleFast_extDict_generic': >> lib/zstd/compress/zstd_double_fast.c:501:1: warning: the frame size of 1256 bytes is larger than 1024 bytes [-Wframe-larger-than=] 501 | } | ^ lib/zstd/compress/zstd_double_fast.c: In function 'ZSTD_compressBlock_doubleFast': lib/zstd/compress/zstd_double_fast.c:336:1: warning: the frame size of 1224 bytes is larger than 1024 bytes [-Wframe-larger-than=] 336 | } | ^ lib/zstd/compress/zstd_double_fast.c: In function 'ZSTD_compressBlock_doubleFast_dictMatchState': lib/zstd/compress/zstd_double_fast.c:356:1: warning: the frame size of 1320 bytes is larger than 1024 bytes [-Wframe-larger-than=] 356 | } | ^ -- lib/zstd/compress/zstd_fast.c: In function 'ZSTD_compressBlock_fast_extDict_generic': >> lib/zstd/compress/zstd_fast.c:476:1: warning: the frame size of 1156 bytes is larger than 1024 bytes [-Wframe-larger-than=] 476 | } | ^ vim +501 lib/zstd/compress/zstd_double_fast.c 357 358 359 static size_t ZSTD_compressBlock_doubleFast_extDict_generic( 360 ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 361 void const* src, size_t srcSize, 362 U32 const mls /* template */) 363 { 364 ZSTD_compressionParameters const* cParams = &ms->cParams; 365 U32* const hashLong = ms->hashTable; 366 U32 const hBitsL = cParams->hashLog; 367 U32* const hashSmall = ms->chainTable; 368 U32 const hBitsS = cParams->chainLog; 369 const BYTE* const istart = (const BYTE*)src; 370 const BYTE* ip = istart; 371 const BYTE* anchor = istart; 372 const BYTE* const iend = istart + srcSize; 373 const BYTE* const ilimit = iend - 8; 374 const BYTE* const base = ms->window.base; 375 const U32 endIndex = (U32)((size_t)(istart - base) + srcSize); 376 const U32 lowLimit = ZSTD_getLowestMatchIndex(ms, endIndex, cParams->windowLog); 377 const U32 dictStartIndex = lowLimit; 378 const U32 dictLimit = ms->window.dictLimit; 379 const U32 prefixStartIndex = (dictLimit > lowLimit) ? dictLimit : lowLimit; 380 const BYTE* const prefixStart = base + prefixStartIndex; 381 const BYTE* const dictBase = ms->window.dictBase; 382 const BYTE* const dictStart = dictBase + dictStartIndex; 383 const BYTE* const dictEnd = dictBase + prefixStartIndex; 384 U32 offset_1=rep[0], offset_2=rep[1]; 385 386 DEBUGLOG(5, "ZSTD_compressBlock_doubleFast_extDict_generic (srcSize=%zu)", srcSize); 387 388 /* if extDict is invalidated due to maxDistance, switch to "regular" variant */ 389 if (prefixStartIndex == dictStartIndex) 390 return ZSTD_compressBlock_doubleFast_generic(ms, seqStore, rep, src, srcSize, mls, ZSTD_noDict); 391 392 /* Search Loop */ 393 while (ip < ilimit) { /* < instead of <=, because (ip+1) */ 394 const size_t hSmall = ZSTD_hashPtr(ip, hBitsS, mls); 395 const U32 matchIndex = hashSmall[hSmall]; 396 const BYTE* const matchBase = matchIndex < prefixStartIndex ? dictBase : base; 397 const BYTE* match = matchBase + matchIndex; 398 399 const size_t hLong = ZSTD_hashPtr(ip, hBitsL, 8); 400 const U32 matchLongIndex = hashLong[hLong]; 401 const BYTE* const matchLongBase = matchLongIndex < prefixStartIndex ? dictBase : base; 402 const BYTE* matchLong = matchLongBase + matchLongIndex; 403 404 const U32 curr = (U32)(ip-base); 405 const U32 repIndex = curr + 1 - offset_1; /* offset_1 expected <= curr +1 */ 406 const BYTE* const repBase = repIndex < prefixStartIndex ? dictBase : base; 407 const BYTE* const repMatch = repBase + repIndex; 408 size_t mLength; 409 hashSmall[hSmall] = hashLong[hLong] = curr; /* update hash table */ 410 411 if ((((U32)((prefixStartIndex-1) - repIndex) >= 3) /* intentional underflow : ensure repIndex doesn't overlap dict + prefix */ 412 & (repIndex > dictStartIndex)) 413 && (MEM_read32(repMatch) == MEM_read32(ip+1)) ) { 414 const BYTE* repMatchEnd = repIndex < prefixStartIndex ? dictEnd : iend; 415 mLength = ZSTD_count_2segments(ip+1+4, repMatch+4, iend, repMatchEnd, prefixStart) + 4; 416 ip++; 417 ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, 0, mLength-MINMATCH); 418 } else { 419 if ((matchLongIndex > dictStartIndex) && (MEM_read64(matchLong) == MEM_read64(ip))) { 420 const BYTE* const matchEnd = matchLongIndex < prefixStartIndex ? dictEnd : iend; 421 const BYTE* const lowMatchPtr = matchLongIndex < prefixStartIndex ? dictStart : prefixStart; 422 U32 offset; 423 mLength = ZSTD_count_2segments(ip+8, matchLong+8, iend, matchEnd, prefixStart) + 8; 424 offset = curr - matchLongIndex; 425 while (((ip>anchor) & (matchLong>lowMatchPtr)) && (ip[-1] == matchLong[-1])) { ip--; matchLong--; mLength++; } /* catch up */ 426 offset_2 = offset_1; 427 offset_1 = offset; 428 ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, offset + ZSTD_REP_MOVE, mLength-MINMATCH); 429 430 } else if ((matchIndex > dictStartIndex) && (MEM_read32(match) == MEM_read32(ip))) { 431 size_t const h3 = ZSTD_hashPtr(ip+1, hBitsL, 8); 432 U32 const matchIndex3 = hashLong[h3]; 433 const BYTE* const match3Base = matchIndex3 < prefixStartIndex ? dictBase : base; 434 const BYTE* match3 = match3Base + matchIndex3; 435 U32 offset; 436 hashLong[h3] = curr + 1; 437 if ( (matchIndex3 > dictStartIndex) && (MEM_read64(match3) == MEM_read64(ip+1)) ) { 438 const BYTE* const matchEnd = matchIndex3 < prefixStartIndex ? dictEnd : iend; 439 const BYTE* const lowMatchPtr = matchIndex3 < prefixStartIndex ? dictStart : prefixStart; 440 mLength = ZSTD_count_2segments(ip+9, match3+8, iend, matchEnd, prefixStart) + 8; 441 ip++; 442 offset = curr+1 - matchIndex3; 443 while (((ip>anchor) & (match3>lowMatchPtr)) && (ip[-1] == match3[-1])) { ip--; match3--; mLength++; } /* catch up */ 444 } else { 445 const BYTE* const matchEnd = matchIndex < prefixStartIndex ? dictEnd : iend; 446 const BYTE* const lowMatchPtr = matchIndex < prefixStartIndex ? dictStart : prefixStart; 447 mLength = ZSTD_count_2segments(ip+4, match+4, iend, matchEnd, prefixStart) + 4; 448 offset = curr - matchIndex; 449 while (((ip>anchor) & (match>lowMatchPtr)) && (ip[-1] == match[-1])) { ip--; match--; mLength++; } /* catch up */ 450 } 451 offset_2 = offset_1; 452 offset_1 = offset; 453 ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, offset + ZSTD_REP_MOVE, mLength-MINMATCH); 454 455 } else { 456 ip += ((ip-anchor) >> kSearchStrength) + 1; 457 continue; 458 } } 459 460 /* move to next sequence start */ 461 ip += mLength; 462 anchor = ip; 463 464 if (ip <= ilimit) { 465 /* Complementary insertion */ 466 /* done after iLimit test, as candidates could be > iend-8 */ 467 { U32 const indexToInsert = curr+2; 468 hashLong[ZSTD_hashPtr(base+indexToInsert, hBitsL, 8)] = indexToInsert; 469 hashLong[ZSTD_hashPtr(ip-2, hBitsL, 8)] = (U32)(ip-2-base); 470 hashSmall[ZSTD_hashPtr(base+indexToInsert, hBitsS, mls)] = indexToInsert; 471 hashSmall[ZSTD_hashPtr(ip-1, hBitsS, mls)] = (U32)(ip-1-base); 472 } 473 474 /* check immediate repcode */ 475 while (ip <= ilimit) { 476 U32 const current2 = (U32)(ip-base); 477 U32 const repIndex2 = current2 - offset_2; 478 const BYTE* repMatch2 = repIndex2 < prefixStartIndex ? dictBase + repIndex2 : base + repIndex2; 479 if ( (((U32)((prefixStartIndex-1) - repIndex2) >= 3) /* intentional overflow : ensure repIndex2 doesn't overlap dict + prefix */ 480 & (repIndex2 > dictStartIndex)) 481 && (MEM_read32(repMatch2) == MEM_read32(ip)) ) { 482 const BYTE* const repEnd2 = repIndex2 < prefixStartIndex ? dictEnd : iend; 483 size_t const repLength2 = ZSTD_count_2segments(ip+4, repMatch2+4, iend, repEnd2, prefixStart) + 4; 484 U32 const tmpOffset = offset_2; offset_2 = offset_1; offset_1 = tmpOffset; /* swap offset_2 <=> offset_1 */ 485 ZSTD_storeSeq(seqStore, 0, anchor, iend, 0, repLength2-MINMATCH); 486 hashSmall[ZSTD_hashPtr(ip, hBitsS, mls)] = current2; 487 hashLong[ZSTD_hashPtr(ip, hBitsL, 8)] = current2; 488 ip += repLength2; 489 anchor = ip; 490 continue; 491 } 492 break; 493 } } } 494 495 /* save reps for next block */ 496 rep[0] = offset_1; 497 rep[1] = offset_2; 498 499 /* Return the last literals size */ 500 return (size_t)(iend - anchor); > 501 } 502 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org --SUOF0GtieIMvvwua Content-Type: application/gzip Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 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 erSujrOP3rj+P6Wc8/y4WgEA --SUOF0GtieIMvvwua--