From: David Laight <david.laight.linux@gmail.com>
To: "Theodore Ts'o" <tytso@mit.edu>
Cc: Eric Biggers <ebiggers@kernel.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org,
Ard Biesheuvel <ardb@kernel.org>, Chao Yu <chao@kernel.org>,
"Darrick J. Wong" <djwong@kernel.org>,
Geert Uytterhoeven <geert@linux-m68k.org>,
Kent Overstreet <kent.overstreet@linux.dev>,
"Martin K. Petersen" <martin.petersen@oracle.com>,
Michael Ellerman <mpe@ellerman.id.au>,
Vinicius Peixoto <vpeixoto@lkcamp.dev>,
WangYuli
<wangyuli@grjsls0nwwnnilyahiblcmlmlcaoki5s.yundunwaf1.com>
Subject: Re: [GIT PULL] CRC updates for 6.14
Date: Thu, 23 Jan 2025 20:58:10 +0000 [thread overview]
Message-ID: <20250123205810.744c8823@pumpkin> (raw)
In-Reply-To: <20250123140744.GB3875121@mit.edu>
On Thu, 23 Jan 2025 09:07:44 -0500
"Theodore Ts'o" <tytso@mit.edu> wrote:
> On Wed, Jan 22, 2025 at 11:46:18PM -0800, Eric Biggers wrote:
> >
> > Actually, I'm tempted to just provide slice-by-1 (a.k.a. byte-by-byte) as the
> > only generic CRC32 implementation. The generic code has become increasingly
> > irrelevant due to the arch-optimized code existing. The arch-optimized code
> > tends to be 10 to 100 times faster on long messages.
>
> Yeah, that's my intuition as well; I would think the CPU's that
> don't have a CRC32 optimization instruction(s) would probably be the
> most sensitive to dcache thrashing.
>
> But given that Geert ran into this on m68k (I assume), maybe we could
> have him benchmark the various crc32 generic implementation to see if
> we is the best for him? That is, assuming that he cares (which he
> might not. :-).
The difference between the clock speed and main memory speed on an m68k will
be a lot less than on anything more recent.
So I suspect the effect of cache misses is much less (or more likely it is
pretty much always getting a cache miss).
Brain wakes up, does the m68k even have a D-cache?
Checks the m68k user manual section 6 - it only has a I-cache (64 32-bit words).
So the important thing is probably keeping the loop small.
A cpu board might have an external data cache.
For a small memory footprint it might be worth considering 4 bits at a time.
So a 16 word (64 byte) lookup table.
Thinks....
You can xor a data byte onto the crc 'accumulator' and then do two separate
table lookups for each of the high nibbles and xor both onto it before the rotate.
That is probably a reasonable compromise.
David
next prev parent reply other threads:[~2025-01-23 20:58 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-19 22:51 [GIT PULL] CRC updates for 6.14 Eric Biggers
2025-01-23 4:13 ` Linus Torvalds
2025-01-23 5:16 ` Eric Biggers
2025-01-23 7:46 ` Eric Biggers
2025-01-23 14:07 ` Theodore Ts'o
2025-01-23 18:18 ` Eric Biggers
2025-01-23 20:52 ` Linus Torvalds
2025-01-23 21:13 ` Eric Biggers
2025-01-23 21:16 ` Linus Torvalds
2025-01-23 21:22 ` Eric Biggers
2025-01-23 20:58 ` David Laight [this message]
2025-01-23 21:16 ` Eric Biggers
2025-01-23 23:17 ` David Laight
2025-01-23 22:36 ` Kent Overstreet
2025-01-23 23:42 ` Eric Biggers
2025-01-24 0:32 ` Kent Overstreet
2025-01-23 8:16 ` Geert Uytterhoeven
2025-01-23 8:19 ` Geert Uytterhoeven
2025-01-23 8:26 ` Eric Biggers
2025-01-23 8:22 ` Eric Biggers
2025-01-23 4:49 ` pr-tracker-bot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250123205810.744c8823@pumpkin \
--to=david.laight.linux@gmail.com \
--cc=ardb@kernel.org \
--cc=chao@kernel.org \
--cc=djwong@kernel.org \
--cc=ebiggers@kernel.org \
--cc=geert@linux-m68k.org \
--cc=kent.overstreet@linux.dev \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=mpe@ellerman.id.au \
--cc=torvalds@linux-foundation.org \
--cc=tytso@mit.edu \
--cc=vpeixoto@lkcamp.dev \
--cc=wangyuli@grjsls0nwwnnilyahiblcmlmlcaoki5s.yundunwaf1.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox