On 09/19/2018 05:30 AM, Cornelia Huck wrote: > On Fri, 31 Aug 2018 12:51:16 -0400 > Collin Walling <walling@xxxxxxxxxxxxx> wrote: > >> A new diagnose instruction, 318, allows the kernel to set an 8-byte "Control >> Program Code" (CPC) that is composed of: >> >> 1-byte Control Program Name Code (CPNC) >> 7-byte Control Program Version Code (CPVC) composed of: >> 3-bytes for Linux Kernel version (determined at build-time) >> 3-bytes for Distribution Identifier (referred to as distro_id; set by Kconfig option) >> 1-byte trailing NULL > > Is this a new diagnose code, or is just the implementation in Linux new? > It is a new diagnose code. >> >> Note about distro_id: >> [ >> The initial idea for the 3-byte distro_id is for each distribution to set >> three characters that correspond to their distribution name (for a theoretical >> distributor "ACME," they could set "ACM" as the distro_id). A registry file >> could be included in the s390 kernel documentation to avoid name collisions. >> ] > > Yes, I think we do want some kind of registry for this. I'll include it in the next round of patches so we can work on a decent format. > >> >> This instruction call is executed once-and-only-once during Kernel setup. >> The availability of this instruction depends on Read SCP Info byte 134, bit 0. >> Diagnose318's functionality is also emulated by KVM, which means we can >> enable this feature for a guest even if the host cannot support it. >> >> Also introduced with this patchset is a Host Program Identifier (HPID), which >> denotes the underlying host environment. >> >> The CPC and HPID are used for problem diagnosis and allows IBM to identify >> control program information by answering the following questions: >> >> "What environment is this guest running in?" (CPNC) >> "What distribution is this guest running?" (CPVC) >> "What underlying host environment is this guest running on?" (HPID) > > Is there also a way for people-who-are-not-IBM to find out what these > values have been set to? :) (IOW, is that write-only from a Linux > perspective?) > > I see that for the emulated instruction the values are logged into the > debug feature, which seems useful. > Maybe it would help to include a toString-esque macro for these values. Then when the HPID and CPNC get logged we will have something us humans can read? :) The distro_id will have to be deciphered via the registry file. Thoughts? -- Respectfully, - Collin Walling