btrfs-progs: crypto: add common function for accelerated initialization
Prepare a single location that will detect or set accelerated versions of hash algorithms. Right now it's the crc32c, blake2 and sha256 do an if-else switch while crc32c sets a function pointer. Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
7fba4bf4db
commit
24ec095295
8
btrfs.c
8
btrfs.c
|
@ -22,7 +22,8 @@
|
|||
#include <stdbool.h>
|
||||
#include <strings.h>
|
||||
#include "kernel-shared/volumes.h"
|
||||
#include "crypto/crc32c.h"
|
||||
#include "crypto/hash.h"
|
||||
#include "common/cpu-utils.h"
|
||||
#include "common/utils.h"
|
||||
#include "common/string-utils.h"
|
||||
#include "common/help.h"
|
||||
|
@ -403,9 +404,8 @@ int main(int argc, char **argv)
|
|||
cmd = parse_command_token(argv[0], &btrfs_cmd_group);
|
||||
|
||||
handle_help_options_next_level(cmd, argc, argv);
|
||||
|
||||
crc32c_optimization_init();
|
||||
|
||||
cpu_detect_flags();
|
||||
hash_init_accel();
|
||||
fixup_argv0(argv, cmd->token);
|
||||
|
||||
ret = cmd_execute(cmd, argc, argv);
|
||||
|
|
|
@ -99,10 +99,11 @@
|
|||
#include "kernel-shared/disk-io.h"
|
||||
#include "kernel-shared/volumes.h"
|
||||
#include "kernel-shared/transaction.h"
|
||||
#include "crypto/crc32c.h"
|
||||
#include "crypto/hash.h"
|
||||
#include "common/defs.h"
|
||||
#include "common/extent-cache.h"
|
||||
#include "common/internal.h"
|
||||
#include "common/cpu-utils.h"
|
||||
#include "common/messages.h"
|
||||
#include "common/task-utils.h"
|
||||
#include "common/path-utils.h"
|
||||
|
@ -1834,7 +1835,8 @@ int BOX_MAIN(convert)(int argc, char *argv[])
|
|||
u32 copy_fsid = 0;
|
||||
char fsid[BTRFS_UUID_UNPARSED_SIZE] = {0};
|
||||
|
||||
crc32c_optimization_init();
|
||||
cpu_detect_flags();
|
||||
hash_init_accel();
|
||||
btrfs_assert_feature_buf_size();
|
||||
printf("btrfs-convert from %s\n\n", PACKAGE_STRING);
|
||||
|
||||
|
|
|
@ -203,6 +203,7 @@ int main(int argc, char **argv) {
|
|||
|
||||
cpu_detect_flags();
|
||||
cpu_print_flags();
|
||||
hash_init_accel();
|
||||
|
||||
optind = 0;
|
||||
while (1) {
|
||||
|
@ -248,7 +249,6 @@ int main(int argc, char **argv) {
|
|||
iterations = 1;
|
||||
}
|
||||
|
||||
crc32c_optimization_init();
|
||||
memset(buf, 0, 4096);
|
||||
|
||||
printf("Block size: %d\n", blocksize);
|
||||
|
|
|
@ -20,6 +20,11 @@
|
|||
#include "crypto/sha.h"
|
||||
#include "crypto/blake2.h"
|
||||
|
||||
void hash_init_accel(void)
|
||||
{
|
||||
crc32c_optimization_init();
|
||||
}
|
||||
|
||||
/*
|
||||
* Default builtin implementations
|
||||
*/
|
||||
|
|
|
@ -26,4 +26,6 @@ int hash_xxhash(const u8 *buf, size_t length, u8 *out);
|
|||
int hash_sha256(const u8 *buf, size_t length, u8 *out);
|
||||
int hash_blake2b(const u8 *buf, size_t length, u8 *out);
|
||||
|
||||
void hash_init_accel(void);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -40,8 +40,10 @@
|
|||
#include "kernel-shared/volumes.h"
|
||||
#include "kernel-shared/extent_io.h"
|
||||
#include "crypto/crc32c.h"
|
||||
#include "crypto/hash.h"
|
||||
#include "common/internal.h"
|
||||
#include "common/messages.h"
|
||||
#include "common/cpu-utils.h"
|
||||
#include "common/box.h"
|
||||
#include "common/utils.h"
|
||||
#include "common/extent-cache.h"
|
||||
|
@ -494,9 +496,6 @@ static int metadump_init(struct metadump_struct *md, struct btrfs_root *root,
|
|||
md->pending_start = (u64)-1;
|
||||
md->compress_level = compress_level;
|
||||
md->sanitize_names = sanitize_names;
|
||||
if (sanitize_names == SANITIZE_COLLISIONS)
|
||||
crc32c_optimization_init();
|
||||
|
||||
md->name_tree.rb_node = NULL;
|
||||
md->num_threads = num_threads;
|
||||
pthread_cond_init(&md->cond, NULL);
|
||||
|
@ -3074,6 +3073,9 @@ int BOX_MAIN(image)(int argc, char *argv[])
|
|||
int usage_error = 0;
|
||||
FILE *out;
|
||||
|
||||
cpu_detect_flags();
|
||||
hash_init_accel();
|
||||
|
||||
while (1) {
|
||||
static const struct option long_options[] = {
|
||||
{ "help", no_argument, NULL, GETOPT_VAL_HELP},
|
||||
|
|
|
@ -38,10 +38,11 @@
|
|||
#include "kernel-shared/volumes.h"
|
||||
#include "kernel-shared/transaction.h"
|
||||
#include "kernel-shared/zoned.h"
|
||||
#include "crypto/crc32c.h"
|
||||
#include "crypto/hash.h"
|
||||
#include "common/defs.h"
|
||||
#include "common/internal.h"
|
||||
#include "common/messages.h"
|
||||
#include "common/cpu-utils.h"
|
||||
#include "common/utils.h"
|
||||
#include "common/path-utils.h"
|
||||
#include "common/device-utils.h"
|
||||
|
@ -1034,7 +1035,8 @@ int BOX_MAIN(mkfs)(int argc, char **argv)
|
|||
char *source_dir = NULL;
|
||||
bool source_dir_set = false;
|
||||
|
||||
crc32c_optimization_init();
|
||||
cpu_detect_flags();
|
||||
hash_init_accel();
|
||||
btrfs_config_init();
|
||||
btrfs_assert_feature_buf_size();
|
||||
|
||||
|
|
Loading…
Reference in New Issue