]> www.infradead.org Git - users/hch/xfs.git/commit
Merge branch 'word-at-a-time'
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 15 Jul 2024 15:55:10 +0000 (08:55 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 15 Jul 2024 15:55:10 +0000 (08:55 -0700)
commit6a31ffdfed10dc48e6fd1775d50c22429382ab98
treeab78c04fb92e200a8d0182d953bd588cc08e8a58
parenta5819099f601c1af5b86b1f5921a56859e45b19a
parentf915a3e5b0182dd7376f11337e231500a157e1f4
Merge branch 'word-at-a-time'

Merge minor word-at-a-time instruction choice improvements for x86 and
arm64.

This is the second of four branches that came out of me looking at the
code generation for path lookup on arm64.

The word-at-a-time infrastructure is used to do string operations in
chunks of one word both when copying the pathname from user space (in
strncpy_from_user()), and when parsing and hashing the individual path
components (in link_path_walk()).

In particular, the "find the first zero byte" uses various bit tricks to
figure out the end of the string or path component, and get the length
without having to do things one byte at a time.  Both x86-64 and arm64
had less than optimal code choices for that.

The commit message for the arm64 change in particular tries to explain
the exact code flow for the zero byte finding for people who care.  It's
made a bit more complicated by the fact that we support big-endian
hardware too, and so we have some extra abstraction layers to allow
different models for finding the zero byte, quite apart from the issue
of picking specialized instructions.

* word-at-a-time:
  arm64: word-at-a-time: improve byte count calculations for LE
  x86-64: word-at-a-time: improve byte count calculations