On Di, 2019-02-26 at 19:42 +0100, Petr Tesarik wrote:
> On Tue, 26 Feb 2019 13:46:19 +0100
> Nicolas Saenz Julienne <nsaenzjulie...@suse.de> wrote:
> 
> > [...]
> > > USB and "critical" should never be in the same sentance, without the
> > > word "not" being in there as well. :)  
> > 
> > Fair enough. It might still annoy someone, which computers were never meant 
> > to.
> > :)
> 
> I prefer to say "unrecoverable". While a block device may simply retry
> a write, and nobody notices (unless it's to frequent), it's easily
> audible (and may be annoying) if a USB sound card skips a frame.

No, I am sorry but this is something I need to correct. You cannot
easily recover from ENOMEM in a block driver.
The reason is virtual memory. The common reason why you would get
ENOMEM is memory pressure. Under memory pressure the system is writing
out dirty pages, either to swap or a file.
The SCSI layer can deal with blocked devices, but at some point,
you need to make progress.

In other words, the critical case is with GFP_NOIO. I think
GFP_KERNEL will not realistically fail. GFP_NOIO, now that is
a different question.

        Regards
                Oliver

Reply via email to