Compare commits

..

1 Commits

Author SHA1 Message Date
b8e577b5bb Porting IO Ring to linux by implementing io_uring 2026-04-15 23:15:00 +01:00
3 changed files with 7 additions and 9 deletions

View File

@@ -18,9 +18,9 @@ gcc -g -O0 file_hasher.c xxh_x86dispatch.c -o file_hasher
### Linux:
#### Release:
clang -O3 -pthread file_hasher.c xxh_x86dispatch.c -o file_hasher
gcc -O3 -pthread file_hasher.c xxh_x86dispatch.c -o file_hasher
clang -O3 file_hasher.c xxhash.c xxh_x86dispatch.c -pthread -luring -o file_hasher
gcc -O3 file_hasher.c xxhash.c xxh_x86dispatch.c -pthread -luring -o file_hasher
#### Debug:
clang -g -O0 -pthread file_hasher.c xxh_x86dispatch.c -o file_hasher
gcc -g -O0 -pthread file_hasher.c xxh_x86dispatch.c -o file_hasher
clang -g -O0 file_hasher.c xxhash.c xxh_x86dispatch.c -pthread -luring -o file_hasher
gcc -g -O0 file_hasher.c xxhash.c xxh_x86dispatch.c -pthread -luring -o file_hasher

View File

@@ -50,7 +50,7 @@ Fixing user prompt parsing
Reorganising the code
Improving the scan function
5.0: Implementing the IO Ring instead of buffered hashing, huge performance gains. The IO Ring is event driven, thread local, uses DMA and direct disk I/O, bypassing the OS cash completely, it supports bashing multiple submissions and can handle multiple files at the same time.
5.0: Implementing the IO Ring for windows and ui_uring for linux instead of buffered hashing, huge performance gains. The IO Ring is event driven, thread local, uses DMA and direct disk I/O, bypassing the OS cash completely, registred buffers, it supports bashing multiple submissions and can handle multiple files at the same time.
Hashing small files using XXH3_128bits() instead of the streaming pipeline(XXH3_128bits_reset(), XXH3_128bits_update(), XXH3_128bits_digest()), this reduses the overhead of creating a state and digest, coupled with the IO Ring it improves the hashing of small files whose size is inferior to the size of IO Ring buffers
fixing the xxh_x86dispatch warnings
Updating the progress printing function

View File

@@ -989,9 +989,7 @@ typedef struct ThreadIoContext {
int num_submissions;
int active_files;
#if defined(__linux__)
int use_registered_buffers;
#endif
} ThreadIoContext;
typedef struct {