Commit Graph

12418 Commits

Author SHA1 Message Date
Michael Kerrisk a66935bad6 getrandom.2: Give the reader a hint about when /dev/urandom is initialized
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-29 09:03:32 +01:00
Michael Kerrisk 2c7135dbfb getrandom.2: Minor tweaks to Heinrich's text
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-29 09:03:32 +01:00
Heinrich Schuchardt 11353d7b62 getrandom.2: Clarification of open questions
With his last patches for getrandom.2 Michael Kerrisk posed a few
questions and left some comments in the man-page. This patch
seeks to clarify the open issues.

 72 For example, if the call is interrupted by a signal handler,
 73 it may return a partially filled buffer, or fail with the error
 74 .BR EINTR .
 75 .\" Tested with buffer sizes > 256 bytes: both partial reads
 76 .\" and EINTR can occur, with the former being more frequent.
 77 .\"

Michael's observation agrees with the code.
For buffer size > 256: If the buffer is still empty EINTR occurs.
If any number of bytes has been read to the buffer, that number
is returned.  The comment can be removed.

 78 .\" mtk: In the absence of signals, in my testing, even very large reads
 79 .\" return full buffers. I found that reads of up to 33554431 always
 80 .\" returned a filled buffer. Specifying 'buflen' > 33554431 always
 81 .\" returned just 33554431 bytes. (I'm not sure where that number comes
        from.

The maximum number of bytes transferred is limited for
/dev/urandom to:

    nbytes = min_t(size_t, nbytes, INT_MAX >> (ENTROPY_SHIFT + 3));
    // <= 0x1fffff

and for /dev/random to
nbytes = min_t(size_t, nbytes, SEC_XFER_SIZE); // <= 0x200

Lets put this into the NOTES section.

 224 When reading from
 225 .IR /dev/random ,
 226 blocking requests of any size can be interrupted by a signal
 227 (the call fails with the error
 228 .BR EINTR ).

Thats ok.

 82 If the pool has not yet been initialized, then the call blocks, unless
 83 .B GRND_RANDOM
 84 is specified in
 85 .IR flags .
 86 .\" FIXME We need a bit more information here.
 87 .\"       The reader will ask: when is /dev/urandom initialized?
 88 .\"       There should be some text here to explain that.

Entropy is collected from different sources, e.g.
 - time of reaping a thread
 - MAC address of a network interfaces
 - Allwinner security ID
 - ROM content of a firewire device
 - ...

When more than 128 bits have been collected, the pool is set
to initialized.

I suggest that detailed information about the initialization
should be provided on the random.4 page.

I added a paragraph in the NOTES section.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-29 09:02:41 +01:00
Michael Kerrisk 053e5e6914 getrandom.2: Enhance discussion of /dev/urandom reads in DESCRIPTION
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-29 09:02:41 +01:00
Michael Kerrisk 652febf0d9 getrandom.2: Clarify interaction of GRND_RANDOM and signals
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-29 09:02:41 +01:00
Michael Kerrisk 05e4d7afa9 getrandom.2: NOTES: clarify discussion of EINTR error
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-29 09:02:41 +01:00
Michael Kerrisk 473844a13d getrandom.2: wfix
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-29 09:02:41 +01:00
Michael Kerrisk f350b993d0 getrandom.2: srcfix: add FIXME
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-29 09:02:41 +01:00
Michael Kerrisk 973ff2fc67 getrandom.2: Clarify text with respect to GRND_NONBLOCK
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-29 09:02:41 +01:00
Michael Kerrisk 28ef3452e4 getrandom.2: Clarify sentence on getrandom() and partial GRND_RANDOM reads
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-29 09:02:41 +01:00
Michael Kerrisk 978323c72e getrandom.2: Reword sentence on blocked getrandom() and interruption by signals
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-29 09:02:41 +01:00
Michael Kerrisk 81d43c5023 getrandom.2: Minor wording fixes
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-29 09:02:41 +01:00
Michael Kerrisk 3851c7aa65 getrandom.2: tfix
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-29 09:02:41 +01:00
Heinrich Schuchardt e14ee946e8 getrandom.2: Rework paragraphs marked with FIXME
The patch clarifies when blocking may occur while calling
getrandom().

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-29 09:02:41 +01:00
Heinrich Schuchardt 16199698a6 getrandom.2: Mention bug concerning treatment of interrupts
Theodore Ts'o confirmed the bug described in
https://lkml.org/lkml/2014/11/29/16

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-29 09:02:41 +01:00
Michael Kerrisk e8009a53e8 getrandom.2: Reword GRND_RANDOM description
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-29 09:02:41 +01:00
Michael Kerrisk d2a1b46b62 getrandom.2: Reword GRND_NONBLOCK description
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-29 09:02:41 +01:00
Michael Kerrisk 7028ce50ab getrandom.2: Add a sentence to clarify the default behavior of getrandom()
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-29 09:02:41 +01:00
Michael Kerrisk a550a24de3 getrandom.2: srcfix: added FIXME
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-29 09:02:41 +01:00
Michael Kerrisk 01a6407427 getrandom.2: Minor wording fixes
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-29 09:02:40 +01:00
Heinrich Schuchardt dcd72baa13 random.4: SEE ALSO: add getrandom(2)
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-29 09:02:40 +01:00
Heinrich Schuchardt d929b8016b random.3: SEE ALSO: add getrandom(2)
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-29 09:02:40 +01:00
Heinrich Schuchardt 18647599c7 getrandom.2: New page documenting getrandom(2)
Kernel 3.17 introduces a new system call getrandom(2).

The man page in this patch is based on the commit message by
Theodore Ts'o and suggestions by Michael Kerrisk.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-29 09:02:40 +01:00
Michael Kerrisk 6f0dcebc96 signal.7: Add F_OFD_SETLKW to list of restartable operations
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-29 08:51:21 +01:00
Michael Kerrisk 91907c29c0 kexec_load.2: srcfix: add mtk to copyright list
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-28 21:56:38 +01:00
Michael Kerrisk 32a7f2ba0a kexec_load.2: ERRORS: add some further error cases
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-28 21:56:38 +01:00
Michael Kerrisk 1c720ce5e1 kexec_load.2: Edits after Q&A from Vivek Goyal
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-28 21:56:38 +01:00
Michael Kerrisk 443755df50 kexec_load.2: Various additions after feedback from Vivek Goyal
Cowritten-by: Vivek Goyal <vgoyal@redhat.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-28 21:56:38 +01:00
Michael Kerrisk 13a2f9fed9 kexec_load.2: Better describe EINVAL error when nr_segments exceeds KEXEC_SEGMENT_MAX
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-28 21:56:38 +01:00
Michael Kerrisk a2d429c940 kexec_file_load.2: New link to kexec_load.2 2015-01-28 21:56:38 +01:00
Michael Kerrisk e328452136 kexec_load.2: Remove crufty statements that constants are not exported to glibc
With the kernel "uapi" changes of a a few releases ago, these
constants are now automatically provided to glibc.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-28 21:56:32 +01:00
Michael Kerrisk 36aa66d180 kexec_load.2: Move some text from NOTES to DESCRIPTION
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-28 21:56:32 +01:00
Michael Kerrisk bc5df8e587 kexec_load.2: SEE ALSO: add Documentation/kernel-parameters.txt
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-28 21:56:32 +01:00
Michael Kerrisk c328e5b3e1 kexec_load.2: SEE ALSO: add Documentation/kdump/kdump.txt
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-28 21:56:32 +01:00
Michael Kerrisk 2139e7cf8d kexec_load.2: Edits after review comments by Vivek Goyal
Reviewed-by: Vivek Goyal <vgoyal@redhat.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-28 21:56:26 +01:00
Michael Kerrisk 57afc6dfc8 kexec_load.2: srcfix: Add Vivek Goyal to copyright notice
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-28 21:45:04 +01:00
Michael Kerrisk 16edbdd933 kexec_load.2: tfix
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-28 21:45:04 +01:00
Michael Kerrisk 6fd7d53070 kexec_load.2: Note rationale for kexec_file_load()
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-28 21:45:04 +01:00
Michael Kerrisk 2f14583867 kexec_load.2: Minor rewording
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-28 21:45:04 +01:00
Michael Kerrisk b1340c3041 kexec_load.2: SEE ALSO: add kexec(8)
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-28 21:45:04 +01:00
Michael Kerrisk 352e737d59 reboot.2: ffix
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-28 21:45:04 +01:00
Michael Kerrisk 260be1fe70 reboot.2: SEE ALSO: add kexec_load(2)
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-28 21:45:04 +01:00
Michael Kerrisk 00db326ac4 kexec_load.2: Add FIXMEs
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-28 21:45:04 +01:00
Michael Kerrisk 046cebb34f kexec_load.2: srcfix
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-28 21:45:04 +01:00
Michael Kerrisk 84953b5363 kexec_load.2: srcfix: remove a FIXME
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-28 21:45:04 +01:00
Michael Kerrisk a2c8cd3787 kexec_load.2: kexec_file_load() requires CONFIG_KEXEC_FILE
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-28 21:45:04 +01:00
Michael Kerrisk 75cd256427 kexec_load.2: CONFORMING TO: update for kexec_file_load()
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-28 21:45:04 +01:00
Michael Kerrisk e19cb54662 kexec_load.2: wfix
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-28 21:45:04 +01:00
Michael Kerrisk 798711f78f kexec_load.2: Note kernel version for kexec_file_load()
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-28 21:45:04 +01:00
Michael Kerrisk 89a2edf198 kexec_load.2: Tweaks to Vivek Goyal's patch
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-28 21:45:04 +01:00