e7d553d6 | 14-Jan-2020 |
David Howells <dhowells@redhat.com> |
pipe: Add notification lossage handling
Add handling for loss of notifications by having read() insert a loss-notification message after it has read the pipe buffer that was last in the ring when th
pipe: Add notification lossage handling
Add handling for loss of notifications by having read() insert a loss-notification message after it has read the pipe buffer that was last in the ring when the loss occurred.
Lossage can come about either by running out of notification descriptors or by running out of space in the pipe ring.
Signed-off-by: David Howells <dhowells@redhat.com>
show more ...
|
8cfba763 | 14-Jan-2020 |
David Howells <dhowells@redhat.com> |
pipe: Allow buffers to be marked read-whole-or-error for notifications
Allow a buffer to be marked such that read() must return the entire buffer in one go or return ENOBUFS. Multiple buffers can b
pipe: Allow buffers to be marked read-whole-or-error for notifications
Allow a buffer to be marked such that read() must return the entire buffer in one go or return ENOBUFS. Multiple buffers can be amalgamated into a single read, but a short read will occur if the next "whole" buffer won't fit.
This is useful for watch queue notifications to make sure we don't split a notification across multiple reads, especially given that we need to fabricate an overrun record under some circumstances - and that isn't in the buffers.
Signed-off-by: David Howells <dhowells@redhat.com>
show more ...
|