All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alan Stern <stern@rowland.harvard.edu>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: "SF Markus Elfring" <elfring@users.sourceforge.net>,
	"USB list" <linux-usb@vger.kernel.org>,
	"Joe Perches" <joe@perches.com>,
	"Daniel Drake" <drake@endlessm.com>,
	"Dmitry Fleytman" <dmitry@daynix.com>,
	"Eugene Korenevsky" <ekorenevsky@gmail.com>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Günter Röck" <linux@roeck-us.net>,
	"Johan Hovold" <johan@kernel.org>,
	"Mathias Nyman" <mathias.nyman@linux.intel.com>,
	"Peter Chen" <peter.chen@nxp.com>,
	LKML <linux-kernel@vger.kernel.org>,
	"kernel-janitors@vger.kernel.org"
	<kernel-janitors@vger.kernel.org>
Subject: Re: USB: hub: Delete an error message for a failed memory allocation in usb_hub_clear_tt_buffer()
Date: Thu, 7 Dec 2017 10:12:27 -0500 (EST)	[thread overview]
Message-ID: <Pine.LNX.4.44L0.1712071000560.1361-100000@iolanthe.rowland.org> (raw)
In-Reply-To: <CAMuHMdWAzqvh_=UEiYtCdFYvcwoRVLvO9rq8MqwCqjgSz-fm7g@mail.gmail.com>

On Thu, 7 Dec 2017, Geert Uytterhoeven wrote:

> Hi Alan,
> 
> On Wed, Dec 6, 2017 at 11:02 PM, Alan Stern <stern@rowland.harvard.edu> wrote:
> > On Wed, 6 Dec 2017, SF Markus Elfring wrote:
> >> >>> Does the existing memory allocation error message include the
> >> >>> &udev->dev device name and driver name?  If it doesn't, there will be
> >> >>> no way for the user to tell that the error message is related to the
> >> >>> device failure.
> >> >>
> >> >> No, but the effect is similar.
> >> >>
> >> >> OOM does a dump_stack() so this function's call tree is shown.
> >> >
> >> > A call stack doesn't tell you which device was being handled.
> >>
> >> Do you find a default Linux allocation failure report insufficient then?
> >>
> >> Would you like to to achieve that the requested information can be determined
> >> from a backtrace?
> >
> > It is not practical to do this.  The memory allocation routines do not
> > for what purpose the memory is being allocated; hence when a failure
> > occurs they cannot tell what device (or other part of the system) will
> > be affected.
> 
> If even allocation of 24 bytes fails, lots of other devices and other parts of
> the system will start failing really soon...

In fact, one wonders if the allocation routine's own error message and
stack trace would actually appear anywhere...

> > That's why we have a secondary error message.
> 
> ... and the secondary error message would still be useless.

Well, there is still a difference between GFP_ATOMIC and GFP_KERNEL 
allocations.  Failure of the first doesn't necessarily imply failure of 
the second, so perhaps the system could recover.

The real problem is that the kernel development community doesn't have
a fixed policy on how to handle memory allocation errors.  There are
several possibilities:

	Ignore them on the grounds that they will never happen.
	(Really?  And what is the size limit above which they
	might happen?)

	Ignore them on the grounds that the machine will hang or
	crash in the near future.  (Is this guaranteed?)

	Treat them like other errors: try to press forward (perhaps
	in a degraded mode).

	Treat them like other errors: log an error message and try
	to press forward.

And probably a few more that haven't occurred to me.  No doubt there 
are examples of each at various places in the kernel.  Nobody seems
able to agree on a single course of action.  Maybe not even Linus.

If there was one agreed-upon policy, then we could definitively point 
to old code and say "That's wrong, and here is how it should be fixed."  
But currently this is not possible, and we end up with repetitive 
discussions like this one that aren't of general use.

Alan Stern

WARNING: multiple messages have this Message-ID (diff)
From: Alan Stern <stern@rowland.harvard.edu>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: "SF Markus Elfring" <elfring@users.sourceforge.net>,
	"USB list" <linux-usb@vger.kernel.org>,
	"Joe Perches" <joe@perches.com>,
	"Daniel Drake" <drake@endlessm.com>,
	"Dmitry Fleytman" <dmitry@daynix.com>,
	"Eugene Korenevsky" <ekorenevsky@gmail.com>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Günter Röck" <linux@roeck-us.net>,
	"Johan Hovold" <johan@kernel.org>,
	"Mathias Nyman" <mathias.nyman@linux.intel.com>,
	"Peter Chen" <peter.chen@nxp.com>,
	LKML <linux-kernel@vger.kernel.org>,
	"kernel-janitors@vger.kernel.org"
	<kernel-janitors@vger.kernel.org>
Subject: Re: USB: hub: Delete an error message for a failed memory allocation in usb_hub_clear_tt_buffer()
Date: Thu, 07 Dec 2017 15:12:27 +0000	[thread overview]
Message-ID: <Pine.LNX.4.44L0.1712071000560.1361-100000@iolanthe.rowland.org> (raw)
In-Reply-To: <97b0eeb8-834e-61ca-01dd-afbbf18697db@users.sourceforge.net>

On Thu, 7 Dec 2017, Geert Uytterhoeven wrote:

> Hi Alan,
> 
> On Wed, Dec 6, 2017 at 11:02 PM, Alan Stern <stern@rowland.harvard.edu> wrote:
> > On Wed, 6 Dec 2017, SF Markus Elfring wrote:
> >> >>> Does the existing memory allocation error message include the
> >> >>> &udev->dev device name and driver name?  If it doesn't, there will be
> >> >>> no way for the user to tell that the error message is related to the
> >> >>> device failure.
> >> >>
> >> >> No, but the effect is similar.
> >> >>
> >> >> OOM does a dump_stack() so this function's call tree is shown.
> >> >
> >> > A call stack doesn't tell you which device was being handled.
> >>
> >> Do you find a default Linux allocation failure report insufficient then?
> >>
> >> Would you like to to achieve that the requested information can be determined
> >> from a backtrace?
> >
> > It is not practical to do this.  The memory allocation routines do not
> > for what purpose the memory is being allocated; hence when a failure
> > occurs they cannot tell what device (or other part of the system) will
> > be affected.
> 
> If even allocation of 24 bytes fails, lots of other devices and other parts of
> the system will start failing really soon...

In fact, one wonders if the allocation routine's own error message and
stack trace would actually appear anywhere...

> > That's why we have a secondary error message.
> 
> ... and the secondary error message would still be useless.

Well, there is still a difference between GFP_ATOMIC and GFP_KERNEL 
allocations.  Failure of the first doesn't necessarily imply failure of 
the second, so perhaps the system could recover.

The real problem is that the kernel development community doesn't have
a fixed policy on how to handle memory allocation errors.  There are
several possibilities:

	Ignore them on the grounds that they will never happen.
	(Really?  And what is the size limit above which they
	might happen?)

	Ignore them on the grounds that the machine will hang or
	crash in the near future.  (Is this guaranteed?)

	Treat them like other errors: try to press forward (perhaps
	in a degraded mode).

	Treat them like other errors: log an error message and try
	to press forward.

And probably a few more that haven't occurred to me.  No doubt there 
are examples of each at various places in the kernel.  Nobody seems
able to agree on a single course of action.  Maybe not even Linus.

If there was one agreed-upon policy, then we could definitively point 
to old code and say "That's wrong, and here is how it should be fixed."  
But currently this is not possible, and we end up with repetitive 
discussions like this one that aren't of general use.

Alan Stern


WARNING: multiple messages have this Message-ID (diff)
From: Alan Stern <stern@rowland.harvard.edu>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: "SF Markus Elfring" <elfring@users.sourceforge.net>,
	"USB list" <linux-usb@vger.kernel.org>,
	"Joe Perches" <joe@perches.com>,
	"Daniel Drake" <drake@endlessm.com>,
	"Dmitry Fleytman" <dmitry@daynix.com>,
	"Eugene Korenevsky" <ekorenevsky@gmail.com>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Günter Röck" <linux@roeck-us.net>,
	"Johan Hovold" <johan@kernel.org>,
	"Mathias Nyman" <mathias.nyman@linux.intel.com>,
	"Peter Chen" <peter.chen@nxp.com>,
	LKML <linux-kernel@vger.kernel.org>,
	"kernel-janitors@vger.kernel.org"
	<kernel-janitors@vger.kernel.org>
Subject: USB: hub: Delete an error message for a failed memory allocation in usb_hub_clear_tt_buffer()
Date: Thu, 7 Dec 2017 10:12:27 -0500 (EST)	[thread overview]
Message-ID: <Pine.LNX.4.44L0.1712071000560.1361-100000@iolanthe.rowland.org> (raw)

On Thu, 7 Dec 2017, Geert Uytterhoeven wrote:

> Hi Alan,
> 
> On Wed, Dec 6, 2017 at 11:02 PM, Alan Stern <stern@rowland.harvard.edu> wrote:
> > On Wed, 6 Dec 2017, SF Markus Elfring wrote:
> >> >>> Does the existing memory allocation error message include the
> >> >>> &udev->dev device name and driver name?  If it doesn't, there will be
> >> >>> no way for the user to tell that the error message is related to the
> >> >>> device failure.
> >> >>
> >> >> No, but the effect is similar.
> >> >>
> >> >> OOM does a dump_stack() so this function's call tree is shown.
> >> >
> >> > A call stack doesn't tell you which device was being handled.
> >>
> >> Do you find a default Linux allocation failure report insufficient then?
> >>
> >> Would you like to to achieve that the requested information can be determined
> >> from a backtrace?
> >
> > It is not practical to do this.  The memory allocation routines do not
> > for what purpose the memory is being allocated; hence when a failure
> > occurs they cannot tell what device (or other part of the system) will
> > be affected.
> 
> If even allocation of 24 bytes fails, lots of other devices and other parts of
> the system will start failing really soon...

In fact, one wonders if the allocation routine's own error message and
stack trace would actually appear anywhere...

> > That's why we have a secondary error message.
> 
> ... and the secondary error message would still be useless.

Well, there is still a difference between GFP_ATOMIC and GFP_KERNEL 
allocations.  Failure of the first doesn't necessarily imply failure of 
the second, so perhaps the system could recover.

The real problem is that the kernel development community doesn't have
a fixed policy on how to handle memory allocation errors.  There are
several possibilities:

	Ignore them on the grounds that they will never happen.
	(Really?  And what is the size limit above which they
	might happen?)

	Ignore them on the grounds that the machine will hang or
	crash in the near future.  (Is this guaranteed?)

	Treat them like other errors: try to press forward (perhaps
	in a degraded mode).

	Treat them like other errors: log an error message and try
	to press forward.

And probably a few more that haven't occurred to me.  No doubt there 
are examples of each at various places in the kernel.  Nobody seems
able to agree on a single course of action.  Maybe not even Linus.

If there was one agreed-upon policy, then we could definitively point 
to old code and say "That's wrong, and here is how it should be fixed."  
But currently this is not possible, and we end up with repetitive 
discussions like this one that aren't of general use.

Alan Stern
---
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2017-12-07 15:12 UTC|newest]

Thread overview: 75+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-06 16:13 [PATCH] USB: hub: Delete an error message for a failed memory allocation in usb_hub_clear_tt_buffer() SF Markus Elfring
2017-12-06 16:13 ` SF Markus Elfring
2017-12-06 16:13 ` [PATCH] USB: hub: Delete an error message for a failed memory allocation in usb_hub_clear_tt_buffer( SF Markus Elfring
2017-12-06 16:45 ` [PATCH] USB: hub: Delete an error message for a failed memory allocation in usb_hub_clear_tt_buffer() Alan Stern
2017-12-06 16:45   ` Alan Stern
2017-12-06 16:45   ` [PATCH] USB: hub: Delete an error message for a failed memory allocation in usb_hub_clear_tt_buf Alan Stern
2017-12-06 16:57   ` [PATCH] USB: hub: Delete an error message for a failed memory allocation in usb_hub_clear_tt_buffer() Greg Kroah-Hartman
2017-12-06 16:57     ` Greg Kroah-Hartman
2017-12-06 16:57     ` [PATCH] USB: hub: Delete an error message for a failed memory allocation in usb_hub_clear_tt_buf Greg Kroah-Hartman
2017-12-06 17:27   ` [PATCH] USB: hub: Delete an error message for a failed memory allocation in usb_hub_clear_tt_buffer() Geert Uytterhoeven
2017-12-06 17:27     ` Geert Uytterhoeven
2017-12-06 17:27     ` [PATCH] USB: hub: Delete an error message for a failed memory allocation in usb_hub_clear_tt_buf Geert Uytterhoeven
2017-12-06 17:51     ` USB: hub: Delete an error message for a failed memory allocation in usb_hub_clear_tt_buffer() SF Markus Elfring
2017-12-06 17:51       ` SF Markus Elfring
2017-12-06 17:51       ` SF Markus Elfring
2017-12-06 20:20       ` Geert Uytterhoeven
2017-12-06 20:20         ` Geert Uytterhoeven
2017-12-06 20:20         ` Geert Uytterhoeven
2017-12-08 11:11         ` Dan Carpenter
2017-12-08 11:11           ` Dan Carpenter
2017-12-08 11:11           ` Dan Carpenter
2017-12-08 12:00           ` USB: hub: Checking communication difficulties SF Markus Elfring
2017-12-08 12:00             ` USB: hub: Delete an error message for a failed memory allocation in usb_hub_clear_tt_buffer() SF Markus Elfring
2017-12-08 12:00             ` USB: hub: Checking communication difficulties SF Markus Elfring
2017-12-06 20:05   ` [PATCH] USB: hub: Delete an error message for a failed memory allocation in usb_hub_clear_tt_buffer() Joe Perches
2017-12-06 20:05     ` Joe Perches
2017-12-06 20:05     ` [PATCH] USB: hub: Delete an error message for a failed memory allocation in usb_hub_clear_tt_buf Joe Perches
2017-12-06 21:18     ` [PATCH] USB: hub: Delete an error message for a failed memory allocation in usb_hub_clear_tt_buffer() Alan Stern
2017-12-06 21:18       ` Alan Stern
2017-12-06 21:18       ` [PATCH] USB: hub: Delete an error message for a failed memory allocation in usb_hub_clear_tt_buf Alan Stern
2017-12-06 21:33       ` USB: hub: Delete an error message for a failed memory allocation in usb_hub_clear_tt_buffer() SF Markus Elfring
2017-12-06 21:33         ` SF Markus Elfring
2017-12-06 21:33         ` SF Markus Elfring
2017-12-06 22:02         ` Alan Stern
2017-12-06 22:02           ` Alan Stern
2017-12-06 22:02           ` Alan Stern
2017-12-07  7:40           ` Geert Uytterhoeven
2017-12-07  7:40             ` Geert Uytterhoeven
2017-12-07  7:40             ` Geert Uytterhoeven
2017-12-07  8:35             ` Dan Carpenter
2017-12-07  8:35               ` Dan Carpenter
2017-12-07  8:35               ` Dan Carpenter
2017-12-07  8:45               ` Geert Uytterhoeven
2017-12-07  8:45                 ` Geert Uytterhoeven
2017-12-07  8:45                 ` Geert Uytterhoeven
2017-12-07  8:56                 ` Greg Kroah-Hartman
2017-12-07  8:56                   ` Greg Kroah-Hartman
2017-12-07  8:56                   ` Greg Kroah-Hartman
2017-12-07  9:17                   ` Oliver Neukum
2017-12-07  9:17                     ` Oliver Neukum
2017-12-07  9:17                     ` Oliver Neukum
2017-12-07  9:30                 ` Dan Carpenter
2017-12-07  9:30                   ` Dan Carpenter
2017-12-07  9:30                   ` Dan Carpenter
2017-12-07 15:12             ` Alan Stern [this message]
2017-12-07 15:12               ` Alan Stern
2017-12-07 15:12               ` Alan Stern
2017-12-07 16:20               ` Joe Perches
2017-12-07 16:20                 ` Joe Perches
2017-12-07 16:20                 ` Joe Perches
2017-12-07 20:51               ` Dan Carpenter
2017-12-07 20:51                 ` Dan Carpenter
2017-12-07 20:51                 ` Dan Carpenter
2017-12-07 21:26                 ` Alan Stern
2017-12-07 21:26                   ` Alan Stern
2017-12-07 21:26                   ` Alan Stern
2017-12-08  7:43                   ` Geert Uytterhoeven
2017-12-08  7:43                     ` Geert Uytterhoeven
2017-12-08  7:43                     ` Geert Uytterhoeven
2017-12-08 17:42                     ` Alan Stern
2017-12-08 17:42                       ` Alan Stern
2017-12-08 17:42                       ` Alan Stern
2017-12-07 13:38           ` SF Markus Elfring
2017-12-07 13:38             ` SF Markus Elfring
2017-12-07 13:38             ` SF Markus Elfring

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Pine.LNX.4.44L0.1712071000560.1361-100000@iolanthe.rowland.org \
    --to=stern@rowland.harvard.edu \
    --cc=dmitry@daynix.com \
    --cc=drake@endlessm.com \
    --cc=ekorenevsky@gmail.com \
    --cc=elfring@users.sourceforge.net \
    --cc=geert@linux-m68k.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=joe@perches.com \
    --cc=johan@kernel.org \
    --cc=kernel-janitors@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=mathias.nyman@linux.intel.com \
    --cc=peter.chen@nxp.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.