Page MenuHomeFreeBSD

getz (Getz Mikalsen)
User

Projects

User does not belong to any projects.

User Details

User Since
May 24 2024, 9:38 PM (25 w, 5 d)

Recent Activity

Fri, Nov 8

getz added inline comments to D46272: lib/libc/aarch64/string: add strlcat SIMD implementation.
Fri, Nov 8, 4:24 PM

Oct 21 2024

getz accepted D46757: lib/libc/aarch64/string: add ASIMD-enhanced timingsafe_bcmp implementation.

Looks good, simple and nice. :-)

Oct 21 2024, 6:10 PM
getz accepted D46758: lib/libc/aarch64/string: add timingsafe_memcmp() assembly implementation.

Looks good

Oct 21 2024, 6:04 PM

Aug 27 2024

getz updated the diff for D46452: share/man/man7/simd.7: document SIMD-enhanced aarch64 functions.

Included one commit too many last time :)

Aug 27 2024, 7:45 PM
getz updated the diff for D46452: share/man/man7/simd.7: document SIMD-enhanced aarch64 functions.

bcopy and bzero are now also SIMDified

Aug 27 2024, 7:45 PM
getz requested review of D46459: lib/libc/aarch64/string: add bcopy & bzero wrapper.
Aug 27 2024, 7:37 PM
getz requested review of D46452: share/man/man7/simd.7: document SIMD-enhanced aarch64 functions.
Aug 27 2024, 11:05 AM

Aug 26 2024

getz updated the diff for D45623: lib/libc/aarch64/string: add strlen SIMD implementation.
  • Revert to previous strlen as the other version failed a test when running entire test suite

I dont think this one is gonna be worth including as I'm unable to comfortably beat the perf of the existing implementation.

Aug 26 2024, 7:53 PM
getz updated the diff for D46272: lib/libc/aarch64/string: add strlcat SIMD implementation.

remove manpage update, lets handle that in a separate commit

Aug 26 2024, 6:07 PM
getz updated the diff for D46292: lib/libc/aarch64/string: add strncat SIMD implementation.
  • fix Makefile
Aug 26 2024, 6:02 PM

Aug 25 2024

getz updated the diff for D45623: lib/libc/aarch64/string: add strlen SIMD implementation.
  • Update based on review
Aug 25 2024, 2:24 PM
getz updated the diff for D45621: lib/libc/aarch64/string: add memcmp SIMD implementation.
  • Use unsigned comparisons for main loop
Aug 25 2024, 12:41 PM

Aug 23 2024

getz updated the diff for D46417: lib/libc/aarch64/string: strcat enable use of SIMD.

strcat in C instead of assembly

Aug 23 2024, 5:38 PM
getz added a comment to D46417: lib/libc/aarch64/string: strcat enable use of SIMD.

alright, that makes sense. I'll replace it.

Aug 23 2024, 2:19 PM
getz retitled D46417: lib/libc/aarch64/string: strcat enable use of SIMD from lib/libc/aarch64/string: enable use of SIMD to lib/libc/aarch64/string: strcat enable use of SIMD.
Aug 23 2024, 11:05 AM
getz updated the diff for D46417: lib/libc/aarch64/string: strcat enable use of SIMD.
  • revert accidental edit of the makefile
Aug 23 2024, 11:05 AM
getz requested review of D46417: lib/libc/aarch64/string: strcat enable use of SIMD.
Aug 23 2024, 11:02 AM
getz updated the diff for D46398: lib/libc/aarch64/string: add strcspn optimized implementation.
  • Update based on review
Aug 23 2024, 10:34 AM

Aug 22 2024

getz updated the diff for D46396: lib/libc/aarch64/string: add strspn optimized implementation.
  • Update based on review
Aug 22 2024, 12:08 PM
getz added inline comments to D46396: lib/libc/aarch64/string: add strspn optimized implementation.
Aug 22 2024, 12:04 PM
getz updated the diff for D46399: lib/libc/aarch64/string: add optimized strpbrk & strsep implementations.
  • amd64 -> aarch64 :)
Aug 22 2024, 8:34 AM

Aug 21 2024

getz requested review of D46399: lib/libc/aarch64/string: add optimized strpbrk & strsep implementations.
Aug 21 2024, 4:29 PM
getz requested review of D46398: lib/libc/aarch64/string: add strcspn optimized implementation.
Aug 21 2024, 3:11 PM
getz updated the summary of D46396: lib/libc/aarch64/string: add strspn optimized implementation.
Aug 21 2024, 3:05 PM
getz requested review of D46396: lib/libc/aarch64/string: add strspn optimized implementation.
Aug 21 2024, 12:19 PM

Aug 14 2024

getz requested review of D46292: lib/libc/aarch64/string: add strncat SIMD implementation.
Aug 14 2024, 2:12 PM
getz updated the diff for D45621: lib/libc/aarch64/string: add memcmp SIMD implementation.

Follow __$FUNC convention
ifdef's to simulate bcmp

Aug 14 2024, 1:47 PM
getz updated the diff for D45621: lib/libc/aarch64/string: add memcmp SIMD implementation.

follow __$FUNC convention

Aug 14 2024, 12:11 PM
getz updated the diff for D45839: lib/libc/aarch64/string: add strcmp SIMD implementation.

follow __$FUNC convention

Aug 14 2024, 9:55 AM
getz updated the diff for D45943: lib/libc/aarch64/string: add strncmp SIMD implementation.

Use unsigned comparisons for limit
follow __$FUNC convention

Aug 14 2024, 9:13 AM

Aug 13 2024

getz updated the diff for D46170: lib/libc/aarch64/string: add memccpy SIMD implementation.

Update based on review.

Aug 13 2024, 5:39 PM
getz added inline comments to D46170: lib/libc/aarch64/string: add memccpy SIMD implementation.
Aug 13 2024, 5:38 PM

Aug 12 2024

getz updated the diff for D46243: lib/libc/aarch64/string: add strlcpy SIMD implementation.
  • unsigned comparison for limit (b.mi -> b.lo)
  • label function using __$FUNC convention
Aug 12 2024, 11:57 AM
getz requested review of D46272: lib/libc/aarch64/string: add strlcat SIMD implementation.
Aug 12 2024, 10:46 AM

Aug 9 2024

getz requested review of D46251: lib/libc/aarch64/string: add memcpy SIMD implementation.
Aug 9 2024, 1:18 PM

Aug 8 2024

getz requested review of D46243: lib/libc/aarch64/string: add strlcpy SIMD implementation.
Aug 8 2024, 1:54 PM

Aug 1 2024

getz updated the diff for D45621: lib/libc/aarch64/string: add memcmp SIMD implementation.

Use correct style for SPDX identifier

Aug 1 2024, 10:07 AM
getz updated the diff for D45621: lib/libc/aarch64/string: add memcmp SIMD implementation.

Pad .rodata with -1 and use unsigned comparisons

Aug 1 2024, 10:05 AM
getz updated the diff for D45839: lib/libc/aarch64/string: add strcmp SIMD implementation.

Use unsigned comparisons everywhere

Aug 1 2024, 9:40 AM
getz updated the diff for D45943: lib/libc/aarch64/string: add strncmp SIMD implementation.

Use unsigned comparisons everywhere

Aug 1 2024, 9:13 AM

Jul 31 2024

getz added inline comments to D46170: lib/libc/aarch64/string: add memccpy SIMD implementation.
Jul 31 2024, 7:57 PM
getz updated the diff for D46170: lib/libc/aarch64/string: add memccpy SIMD implementation.

New method for handling short strings based on D46052

Jul 31 2024, 7:56 PM

Jul 29 2024

getz planned changes to D46170: lib/libc/aarch64/string: add memccpy SIMD implementation.

will rebase on D46052 to improve performance for the short case

Jul 29 2024, 12:49 PM
getz accepted D46052: lib/libc/amd64/string: fix overread condition in memccpy.

Looks good, gonna revise the aarch64 port of this to handle it the same way.

Jul 29 2024, 12:20 PM

Jul 27 2024

getz requested review of D46170: lib/libc/aarch64/string: add memccpy SIMD implementation.
Jul 27 2024, 7:57 PM

Jul 15 2024

getz updated the summary of D45943: lib/libc/aarch64/string: add strncmp SIMD implementation.
Jul 15 2024, 2:16 PM
getz updated the diff for D45943: lib/libc/aarch64/string: add strncmp SIMD implementation.

Introduces a null "match" when limit is reached for short strings near a page boundary

Jul 15 2024, 1:01 PM

Jul 14 2024

getz updated the diff for D45943: lib/libc/aarch64/string: add strncmp SIMD implementation.
  • Revert to complicated handling of short string near a page boundary

I extended the unit tests and it was failing for short unaligned strings near a page boundary.

Jul 14 2024, 2:45 PM

Jul 12 2024

getz updated the diff for D45839: lib/libc/aarch64/string: add strcmp SIMD implementation.
  • Revert last commit, it wasn't unnecessary :)
Jul 12 2024, 9:46 PM

Jul 11 2024

getz added a comment to D45839: lib/libc/aarch64/string: add strcmp SIMD implementation.
In D45839#1047448, @fuz wrote:

Assuming this passes the test suite now, I'd say LGTM.

Jul 11 2024, 3:33 PM
getz updated the diff for D45839: lib/libc/aarch64/string: add strcmp SIMD implementation.
  • Remove unnecessary mov, from strncmp review
Jul 11 2024, 3:27 PM
getz updated the diff for D45943: lib/libc/aarch64/string: add strncmp SIMD implementation.

Updated based on review

Jul 11 2024, 3:15 PM
getz added inline comments to D45943: lib/libc/aarch64/string: add strncmp SIMD implementation.
Jul 11 2024, 3:15 PM
getz updated the diff for D45839: lib/libc/aarch64/string: add strcmp SIMD implementation.
  • Use correct offset for the loop in the normal case
Jul 11 2024, 12:28 PM
getz updated the diff for D45943: lib/libc/aarch64/string: add strncmp SIMD implementation.
  • Updated based on review
Jul 11 2024, 11:21 AM
getz added a comment to D45943: lib/libc/aarch64/string: add strncmp SIMD implementation.

Thanks for review! Changes appear to increase performance by a percent or two.

Jul 11 2024, 11:20 AM

Jul 10 2024

getz added inline comments to D45943: lib/libc/aarch64/string: add strncmp SIMD implementation.
Jul 10 2024, 9:44 PM
getz updated the summary of D45943: lib/libc/aarch64/string: add strncmp SIMD implementation.
Jul 10 2024, 9:43 PM
getz updated the diff for D45943: lib/libc/aarch64/string: add strncmp SIMD implementation.

Fixes the page crossing for tails.

Jul 10 2024, 9:42 PM
getz abandoned D45942: lib/libc/tests/string: extend strncmp unit test with bounds check.

I'll write a proper new test instead testing more cases for the bounds

Jul 10 2024, 4:15 PM
getz requested review of D45943: lib/libc/aarch64/string: add strncmp SIMD implementation.
Jul 10 2024, 4:10 PM
getz updated the summary of D45942: lib/libc/tests/string: extend strncmp unit test with bounds check.
Jul 10 2024, 10:56 AM
getz requested review of D45942: lib/libc/tests/string: extend strncmp unit test with bounds check.
Jul 10 2024, 10:55 AM

Jul 9 2024

getz updated the diff for D45839: lib/libc/aarch64/string: add strcmp SIMD implementation.
  • Revert to branched handling of strings near the end of a page.
Jul 9 2024, 6:32 PM
getz planned changes to D45839: lib/libc/aarch64/string: add strcmp SIMD implementation.

Hit the submit button too early, removing the branches for the tbl maneuver didn't work as I had hoped.

Jul 9 2024, 5:42 PM
getz updated the summary of D45839: lib/libc/aarch64/string: add strcmp SIMD implementation.
Jul 9 2024, 4:28 PM
getz updated the diff for D45839: lib/libc/aarch64/string: add strcmp SIMD implementation.

Remove branching for tbl maneuver.
Applies suggested microoptimizations for arithmetic.

Jul 9 2024, 4:25 PM

Jul 5 2024

getz updated the diff for D45839: lib/libc/aarch64/string: add strcmp SIMD implementation.
  • Remove unnecessary mov
Jul 5 2024, 11:06 AM

Jul 2 2024

getz requested review of D45839: lib/libc/aarch64/string: add strcmp SIMD implementation.
Jul 2 2024, 7:04 PM

Jun 24 2024

getz updated the summary of D45621: lib/libc/aarch64/string: add memcmp SIMD implementation.
Jun 24 2024, 3:44 PM
getz updated the summary of D45621: lib/libc/aarch64/string: add memcmp SIMD implementation.
Jun 24 2024, 10:07 AM

Jun 21 2024

getz updated the test plan for D45621: lib/libc/aarch64/string: add memcmp SIMD implementation.
Jun 21 2024, 7:54 PM
getz updated the summary of D45621: lib/libc/aarch64/string: add memcmp SIMD implementation.
Jun 21 2024, 7:53 PM
getz updated the diff for D45621: lib/libc/aarch64/string: add memcmp SIMD implementation.
  • Avoid page crossing into unmapped pages

Passes all tests, need to extend memcmp tests to verify correct
behaviour for small buffers at page boundaries.

Jun 21 2024, 7:33 PM

Jun 19 2024

getz updated the diff for D45621: lib/libc/aarch64/string: add memcmp SIMD implementation.
  • Address comments

interleaves independent instructions for paralellism.
finds the offset in a branch free manner after a match.
simplifies the code for avoiding overreads in the main loop

Jun 19 2024, 1:08 PM

Jun 18 2024

getz updated the diff for D45621: lib/libc/aarch64/string: add memcmp SIMD implementation.
  • Avoid overreads in main loop

We re-compare some of the bytes we already compared to avoid crossing
over into an unmapped page.

Jun 18 2024, 1:45 PM
getz added a comment to D45621: lib/libc/aarch64/string: add memcmp SIMD implementation.

I'm working on solving that right now, I mentioned it in the description.
The problem is that a buffer less than 32 bytes can be placed at the end of a page causing an overread.
I'll update it later today. I was mostly looking for some feedback at first.

Jun 18 2024, 1:23 PM

Jun 17 2024

getz requested review of D45623: lib/libc/aarch64/string: add strlen SIMD implementation.
Jun 17 2024, 7:52 PM
getz added inline comments to D45621: lib/libc/aarch64/string: add memcmp SIMD implementation.
Jun 17 2024, 3:46 PM
getz updated the summary of D45621: lib/libc/aarch64/string: add memcmp SIMD implementation.
Jun 17 2024, 3:44 PM
getz added inline comments to D45621: lib/libc/aarch64/string: add memcmp SIMD implementation.
Jun 17 2024, 3:31 PM
getz requested review of D45621: lib/libc/aarch64/string: add memcmp SIMD implementation.
Jun 17 2024, 3:26 PM

Jun 7 2024

getz updated the diff for D45523: simd(7): add missing aarch64 SIMD functions.
  • simd(7): also mention (NEON)
Jun 7 2024, 3:37 PM
getz added inline comments to D45523: simd(7): add missing aarch64 SIMD functions.
Jun 7 2024, 3:31 PM
getz updated the summary of D45523: simd(7): add missing aarch64 SIMD functions.
Jun 7 2024, 1:57 PM
getz added inline comments to D45523: simd(7): add missing aarch64 SIMD functions.
Jun 7 2024, 1:08 PM
getz updated the diff for D45523: simd(7): add missing aarch64 SIMD functions.
  • simd(7): ASIMD instead of Neon
Jun 7 2024, 1:06 PM
getz added reviewers for D45523: simd(7): add missing aarch64 SIMD functions: fuz, emaste.
Jun 7 2024, 12:00 PM
getz requested review of D45523: simd(7): add missing aarch64 SIMD functions.
Jun 7 2024, 12:00 PM