Skip to content

Commit 31741ed

Browse files
committed
KVM: s390: selftests: Add regression tests for PFCR subfunctions
JIRA: https://issues.redhat.com/browse/RHEL-113440 commit 7a1f314 Author: Hendrik Brueckner <brueckner@linux.ibm.com> Date: Thu Nov 7 16:23:19 2024 +0100 KVM: s390: selftests: Add regression tests for PFCR subfunctions Check if the PFCR query reported in userspace coincides with the kernel reported function list. Right now we don't mask the functions in the kernel so they have to be the same. Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com> Reviewed-by: Hariharan Mari <hari55@linux.ibm.com> Link: https://lore.kernel.org/r/20241107152319.77816-5-brueckner@linux.ibm.com [frankja@linux.ibm.com: Added commit description] Signed-off-by: Janosch Frank <frankja@linux.ibm.com> Message-ID: <20241107152319.77816-5-brueckner@linux.ibm.com> Conflicts: tools/arch/s390/include/uapi/asm/kvm.h (hunk was already available in downstream) Signed-off-by: Thomas Huth <thuth@redhat.com>
1 parent a6b9dec commit 31741ed

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

tools/testing/selftests/kvm/s390/cpumodel_subfuncs_test.c

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,19 @@ static void test_dfltcc_asm_block(u8 (*query)[32])
214214
: "cc", "0", "1");
215215
}
216216

217+
/*
218+
* Testing Perform Function with Concurrent Results (PFCR)
219+
* CPU subfunctions's ASM block
220+
*/
221+
static void test_pfcr_asm_block(u8 (*query)[16])
222+
{
223+
asm volatile(" lghi 0,0\n"
224+
" .insn rsy,0xeb0000000016,0,0,%[query]\n"
225+
: [query] "=QS" (*query)
226+
:
227+
: "cc", "0");
228+
}
229+
217230
typedef void (*testfunc_t)(u8 (*array)[]);
218231

219232
struct testdef {
@@ -249,6 +262,8 @@ struct testdef {
249262
{ "SORTL", cpu_subfunc.sortl, sizeof(cpu_subfunc.sortl), test_sortl_asm_block, 150 },
250263
/* DFLTCC - Facility bit 151 */
251264
{ "DFLTCC", cpu_subfunc.dfltcc, sizeof(cpu_subfunc.dfltcc), test_dfltcc_asm_block, 151 },
265+
/* Concurrent-function facility - Facility bit 201 */
266+
{ "PFCR", cpu_subfunc.pfcr, sizeof(cpu_subfunc.pfcr), test_pfcr_asm_block, 201 },
252267
};
253268

254269
int main(int argc, char *argv[])

0 commit comments

Comments
 (0)