Re: [PATCH 1/1] s390_sthyi.2: New page for s390-specific s390_sthyi(2)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello QingFeng,

On 21 November 2017 at 09:26, QingFeng Hao <haoqf@xxxxxxxxxxxxxxxxxx> wrote:
>
>
> 在 2017/11/20 23:37, Michael Kerrisk (man-pages) 写道:
>>
>> Hello QingFeng
>>
>> Thank you for this manual page! Could I ask that you
>> address some points below please.
>
> Hello Michael,
> Thanks a lot and please see my comments below.
>
>>
>> On 11/20/2017 02:34 PM, QingFeng Hao wrote:
>>>
>>> Signed-off-by: QingFeng Hao <haoqf@xxxxxxxxxxxxxxxxxx>
>>> ---
>>>   man2/s390_sthyi.2 | 115
>>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>>   1 file changed, 115 insertions(+)
>>>   create mode 100644 man2/s390_sthyi.2
>>>
>>> diff --git a/man2/s390_sthyi.2 b/man2/s390_sthyi.2
>>> new file mode 100644
>>> index 0000000..c8797b7
>>> --- /dev/null
>>> +++ b/man2/s390_sthyi.2
>>> @@ -0,0 +1,115 @@
>>> +.\" Copyright IBM Corp. 2017
>>> +.\" Author: QingFeng Hao <haoqf@xxxxxxxxxxxxxxxxxx>
>>> +.\"
>>> +.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
>>> +.\" This is free documentation; you can redistribute it and/or
>>> +.\" modify it under the terms of the GNU General Public License as
>>> +.\" published by the Free Software Foundation; either version 2 of
>>> +.\" the License, or (at your option) any later version.
>>> +.\"
>>> +.\" The GNU General Public License's references to "object code"
>>> +.\" and "executables" are to be interpreted as the output of any
>>> +.\" document formatting or typesetting system, including
>>> +.\" intermediate and printed output.
>>> +.\"
>>> +.\" This manual is distributed in the hope that it will be useful,
>>> +.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
>>> +.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
>>> +.\" GNU General Public License for more details.
>>> +.\"
>>> +.\" You should have received a copy of the GNU General Public
>>> +.\" License along with this manual; if not, see
>>> +.\" <http://www.gnu.org/licenses/>.
>>> +.\" %%%LICENSE_END
>>> +.\"
>>> +.TH S390_STHYI 2 2017-09-21 "Linux Programmer's Manual"
>>> +.SH NAME
>>> +s390_sthyi \- emulate STHYI instruction
>>> +.SH SYNOPSIS
>>> +.nf
>>> +.B #include <asm/unistd.h>
>>> +.PP
>>> +.BI "int s390_sthyi(unsigned long " function_code ", void *" buffer ",
>>> uint64_t *" return_code ", unsigned long " flags ");
>>> +.fi
>>> +.SH DESCRIPTION
>>> +The
>>> +.BR s390_sthyi ()
>>> +system call emulates the STHYI (Store Hypervisor Information)
>>> instruction.
>>> +It provides hardware resource information for the machine and its
>>> virtualization
>>> +levels. This includes CPU type and capacity, as well as the machine
>>> model and
>>> +other metrics.
>>> +.PP
>>> +The
>>> +.I function_code
>>> +argument indicates which function to perform.
>>> +The following code(s) are supported:
>>> +.RB ( 0 )
>>> +CP and IFL capacity information.
>>
>> The line above is hard to understand. It needs a verb.
>> What is done with the CP and IFL capacity information?
>>
>> It may also be helpful to explain what the abbreviations "CP"
>> and "IFL" stand for.
>
> Return CP (Central Processor) and IFL (Integrated Facity for Linux) capacity
> information

Okay.

>>> +.PP
>>> +The
>>> +.I buffer
>>> +argument specifies the address of response buffer. If the system
>>> +call returns 0, the response buffer will be filled with CPU capacity
>>> +information. Otherwise, the response buffer's content is unchanged.
>>> +.PP
>>> +The
>>> +.I return_code
>>> +argument stores the return code of the STHYI instruction, success
>>> +.RB ( 0 )
>>> +or unsupported function code
>>> +.RB ( 4 ).
>>> +For details about this and function_code, buffer argument, please
>>> reference the link in
>>> +.IR "CONFORMING TO"
>>> +below.
>>> +.PP
>>> +The
>>> +.I flags
>>> +argument is provided to allow for future extensions and currently
>>> +must be set to "0".
>>> +.SH RETURN VALUE
>>> +On success,
>>> +.BR s390_sthyi ()
>>> +returns 0 and stores CPU capacity information to
>>> +.I buffer.
>>> +.PP
>>> +On error, -1 is returned, and
>>> +.IR errno
>>> +is set appropriately.
>>> +.PP
>>> +On other cases, the value of condition code is returned, which currently
>>
>> What does "On other cases" mean? When do those cases happen?
>> Could you reword please.
>
> The case is:
> If the STHYI facility is enabled and the system call fails to execute the
> underlying
> STHYI instruction, the value of condition code is returned, which currently
> is only
> 3 indicating "unsupported function code".
> Is this OK to put it here?

Let me see if I understand correctly. There are three possible return
values for this system call:

0 ==> success
-1 ==> failure (and errno is set)
[condition code value is returned -- e,g,, 3]

This last case is a kind of failure in the system call, right?

If this is correct, this is a highly unusual--possibly even
unique--model for the system call return value. Most (in fact, I think
all) system calls indicate errors by returning -1. Values >= 0 always
mean success. I think it may be worth revisiting this design, to make
it more consistent with the usual conventions. For example, why not
handle the last case by returning -1, setting errno to some value
(maybe ENOTSUP), and return the condition code in *buffer?.

>>> +is only 3 indicating "unsupported function code".
>>> +.SH ERRORS
>>> +.TP
>>> +.B EINVAL
>>> +The value specified in
>>> +.I flags
>>> +is non-zero.
>>> +.TP
>>> +.B EOPNOTSUPP
>>> +The value specified in
>>> +.I function_code
>>> +is not a valid value.
>>> +.TP
>>> +.B EFAULT
>>> +The value specified in
>>> +.I buffer
>>> +or
>>> +.I return_code
>>> +is not a valid address.
>>> +.TP
>>> +.B ENOMEM
>>> +Allocating memory for handling the CPU capacity information failed.
>>> +.IR "CONFORMING TO"
>>> +below.
>>
>> The last two lines do not make a complete sentence. What do
>> you want to say here?
>
> Sorry, it's a mistake and I'll remove them.

Okay.

>>> +.SH VERSIONS
>>> +This system call is available since Linux 4.15.
>>> +.SH CONFORMING TO
>>> +This Linux-specific system call is available only on the s390
>>> architecture.
>>> +For details about the STHYI instruction, please reference the link:
>>>
>>> +https://www.ibm.com/support/knowledgecenter/SSB27U_6.3.0/com.ibm.zvm.v630.hcpb4/hcpb4sth.htm#hcpb4-sth__headsec
>>> +.SH NOTES
>>> +Glibc does not provide a wrapper for this system call, use
>>> +.BR syscall (2)
>>> +to call it.
>>> +.SH SEE ALSO
>>> +.BR syscall (2)

Cheers,

Michael


-- 
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Linux/UNIX System Programming Training: http://man7.org/training/
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Kernel Documentation]     [Netdev]     [Linux Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux