From 5218c243f45646a66e8014e751d189df27a765b0 Mon Sep 17 00:00:00 2001 From: Finn Callies Date: Mon, 12 Aug 2024 09:19:30 +0200 Subject: [PATCH] cpacfstats: add MSA 10 and MSA 11 counters MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit MSA 10 and MSA 11 introduce new function codes containing Full XTS functions for KM instruction and HMAC functions for KMAC instruction. Additional Full XTS and HMAC for PCKMO instruction is introduced. Signed-off-by: Finn Callies Reviewed-by: Harald Freudenberger Reviewed-by: Ingo Franzki Signed-off-by: Jan Höppner --- cpacfstats/cpacfstats.h | 2 +- cpacfstats/cpacfstats_common.c | 22 +++++++++++++++++++++- cpacfstats/cpacfstatsd.c | 8 +++++--- 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/cpacfstats/cpacfstats.h b/cpacfstats/cpacfstats.h index 171efc69..a5514b8c 100644 --- a/cpacfstats/cpacfstats.h +++ b/cpacfstats/cpacfstats.h @@ -23,7 +23,7 @@ * Number of PAI counters. Contains all counters regardless of kernel or user * space */ -#define MAX_NUM_PAI 156 +#define MAX_NUM_PAI 172 /* * This is the sysfs directory from which cpacfstatsd daemon application loads diff --git a/cpacfstats/cpacfstats_common.c b/cpacfstats/cpacfstats_common.c index f8c5dc60..2d9ef7dd 100644 --- a/cpacfstats/cpacfstats_common.c +++ b/cpacfstats/cpacfstats_common.c @@ -192,7 +192,27 @@ const struct pai_counter pai[] = { [152] = {"PCKMO ECC Ed25519", KERNEL_ONLY_COUNTER}, [153] = {"PCKMO ECC Ed448", KERNEL_ONLY_COUNTER}, [154] = {"Reserved 1", KERNEL_ONLY_COUNTER}, - [155] = {"Reserved 2", KERNEL_ONLY_COUNTER} + [155] = {"Reserved 2", KERNEL_ONLY_COUNTER}, + [156] = {"KM AES-XTS (full) 128bit", KERNEL_AND_USER_COUNTER}, + [157] = {"KM AES-XTS (full) 256bit", KERNEL_AND_USER_COUNTER}, + [158] = {"KM AES-XTS (full) 128bit protected key", + KERNEL_AND_USER_COUNTER}, + [159] = {"KM AES-XTS (full) 256bit protected key", + KERNEL_AND_USER_COUNTER}, + [160] = {"KMAC HMAC SHA 224", KERNEL_AND_USER_COUNTER}, + [161] = {"KMAC HMAC SHA 256", KERNEL_AND_USER_COUNTER}, + [162] = {"KMAC HMAC SHA 384", KERNEL_AND_USER_COUNTER}, + [163] = {"KMAC HMAC SHA 512", KERNEL_AND_USER_COUNTER}, + [164] = {"KMAC HMAC SHA 224 protected key", KERNEL_AND_USER_COUNTER}, + [165] = {"KMAC HMAC SHA 256 protected key", KERNEL_AND_USER_COUNTER}, + [166] = {"KMAC HMAC SHA 384 protected key", KERNEL_AND_USER_COUNTER}, + [167] = {"KMAC HMAC SHA 512 protected key", KERNEL_AND_USER_COUNTER}, + [168] = {"PCKMO HMAC 512 protected key", KERNEL_ONLY_COUNTER}, + [169] = {"PCKMO HMAC 1024 protected key", KERNEL_ONLY_COUNTER}, + [170] = {"PCKMO AES-XTS 128bit double key protected key", + KERNEL_ONLY_COUNTER}, + [171] = {"PCKMO AES-XTS 256bit double key protected key", + KERNEL_ONLY_COUNTER} }; /* diff --git a/cpacfstats/cpacfstatsd.c b/cpacfstats/cpacfstatsd.c index 68507500..ed57d0d1 100644 --- a/cpacfstats/cpacfstatsd.c +++ b/cpacfstats/cpacfstatsd.c @@ -39,7 +39,8 @@ static volatile int stopsig; */ static const unsigned int pai_idx[] = { // KM - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 156, 157, 158, + 159, // KMC 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, // KMA @@ -55,7 +56,8 @@ static const unsigned int pai_idx[] = { // KLMD 81, 82, 83, 84, 85, 86, 87, 88, 89, // KMAC - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 160, 161, 162, 163, + 164, 165, 166, 167, // PCC 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, @@ -65,7 +67,7 @@ static const unsigned int pai_idx[] = { 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, // PCKMO - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 168, 169, 170, 171, // Reserved 154, 155 };