We tests the update of the Mesurement Block (MB) format 0 and format 1 using a serie of senseid requests. *Warning*: One of the tests for format-1 will unexpectedly fail for QEMU elf unless the QEMU patch "css: SCHIB measurement block origin must be aligned" is applied. With Protected Virtualization, the PGM is correctly recognized. The MB format 1 is only provided if the Extended mesurement Block feature is available. This feature is exposed by the CSS characteristics general features stored by the Store Channel Subsystem Characteristics CHSC command, consequently, we implement the CHSC instruction call and the SCSC CHSC command. In order to ease the writing of new tests using: - interrupt - enablement of a subchannel - multiple I/O on a subchannel We do the following simplifications: - we create a CSS initialization routine - we register the I/O interrupt handler on CSS initialization - we do not enable or disable a subchannel in the senseid test, assuming this test is done after the enable test, this allows to create traffic using the SSCH used by senseid. - failures not part of the feature under test will stop the tests. - we add a css_enabled() function to test if a subchannel is enabled. *note*: I rearranged the use of the senseid for the tests, by not modifying the existing test and having a dedicated senseid() function for the purpose of the tests. I think that it is in the rigght way so I kept the RB and ACK on the simplification, there are less changes, if it is wrong from me I suppose I will see this in the comments. Since the changed are moved inside the fmt0 test which is not approved for now I hope it is OK. Regards, Pierre Pierre Morel (6): s390x: css: Store CSS Characteristics s390x: css: simplifications of the tests s390x: css: extending the subchannel modifying functions s390x: css: implementing Set CHannel Monitor s390x: css: testing measurement block format 0 s390x: css: testing measurement block format 1 lib/s390x/css.h | 115 ++++++++++++++++++++- lib/s390x/css_lib.c | 236 ++++++++++++++++++++++++++++++++++++++++---- s390x/css.c | 216 ++++++++++++++++++++++++++++++++++++++-- 3 files changed, 540 insertions(+), 27 deletions(-) -- 2.17.1 changelog: from v4: - no modification of test_senseid() in the simplification patch, replaced by a new function in the fmt0 patch (Pierre) - suppress report_info() in the interrupt routine. (Pierre) - in chsc_scsc, rationalise the reserved area name. (Janosch) - use assert for errors that should never happen like register_io_int_func() (Janosch) - Changed css_general_feature to css_test_general_feature same for css_test_chsc_feature (Janosch) - use report_abort() for hard failures in tests (Janosch, Connie) from v3: - stay coherent and use uintX_t types in css.h (Janosch) - reworking test versus library to leave the reports mostly inside the tests (Janosh) - Restructured some tests to use booleans instead of int this simplifies testing. (inspired by comments from Janosch) - rewordings and orthograph (Measurement !!!) (Connie) - stop measurement at the channel too before freeing the MB memory. (Connie) - split out the subchannel-modifying functions into a separate patch (Connie) - move msch_with_wrong_fmt1_mbo() from the library into the tests (Janosch) - Suppress redundancy in the prefixes of format0/1 tests (Janosch) from v2: - stop measurement before freeing memory (Connie) - added a css_disable_mb() (Connie) - several rewriting of comments and commits (Connie) - modified eroneous test for MB index for fmt0 (Pierre) - modified eroneous test for unaligned MBO for fmt1 (Pierre) - several small coding style issues corrected (Pierre) from v1: - check the return code of CHSC (Connie) - reporting in css_init (Connie) - added braces when a loop contains several statement (Thomas) - changed retval to success in boolean function (Thomas) - suppress goto retries (thomas) - rewording and use correct return types in css_enabled (Janosch)