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. - we add a css_enabled() function to test if a subchannel is enabled. @Connie, I restructured the patches but I did not modify the functionalities, so I kept your R-B, I hope you are OK with this. 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 | 116 +++++++++++++++++++++- lib/s390x/css_lib.c | 232 +++++++++++++++++++++++++++++++++++++++++--- s390x/css.c | 228 +++++++++++++++++++++++++++++++++++++++---- 3 files changed, 542 insertions(+), 34 deletions(-) -- 2.17.1 changelog: 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)