linux-api.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Luis R. Rodriguez" <mcgrof-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
To: "Luis R. Rodriguez" <mcgrof-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
Cc: Jakub Kicinski
	<jakub.kicinski-wFxRvT7yatFl57MIdRCFDg@public.gmane.org>,
	nbroeking-BUHhN+a2lJ4@public.gmane.org,
	Linus Torvalds
	<torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>,
	Davidlohr Bueso <dave-h16yJtLeMjHk1uMJSBkQmQ@public.gmane.org>,
	Thomas Gleixner <tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>,
	Greg KH
	<gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>,
	mfuzzey-mB3Nsq4MPf1BDgjK7y7TUQ@public.gmane.org,
	"Eric W. Biederman"
	<ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org>,
	Dmitry Torokhov
	<dmitry.torokhov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	Daniel Wagner <wagi-kQCPcA+X3s7YtjvyW6yDsg@public.gmane.org>,
	David Woodhouse <dwmw2-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>,
	jewalt-d4N2ExZK1jaSe5ORCPIMD9BPR1lH4CV8@public.gmane.org,
	rafal-g1n6cQUeyibVItvQsEIGlw@public.gmane.org,
	Arend Van Spriel
	<arend.vanspriel-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>,
	"Rafael J. Wysocki" <rjw-LthD3rsA81gm4RdzfppkhA@public.gmane.org>,
	"Li, Yi" <yi1.li-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>,
	atull-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
	Moritz Fischer
	<moritz.fischer-+aYTwkv1SeIAvxtiuMwx3w@public.gmane.org>,
	Petr Mladek <pmladek-IBi9RG/b67k@public.gmane.org>,
	Johannes Berg
	<johannes.berg-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
	Emmanuel Grumbach
	<emmanuel.grumbach-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Subject: Re: [PATCH 2/4] swait: add the missing killable swaits
Date: Wed, 12 Jul 2017 23:33:09 +0200	[thread overview]
Message-ID: <20170712213309.GW21846@wotan.suse.de> (raw)
In-Reply-To: <20170629225003.GU21846-B4tOwbsTzaBolqkO4TVVkw@public.gmane.org>

On Fri, Jun 30, 2017 at 12:50:03AM +0200, Luis R. Rodriguez wrote:
> ie, I expect the combination of both to fix your issues, not just the last
> series I just posted [0]. If you want this in git form you can find all of
> the patches bundled on the 20170629-fw-fixes-wait-v4 branch [1]. I just
> wrote this patch it but it seems to have not broken the tests
> 
> From cb7fee12c6d539405793e883dfd79e0b21c2baad Mon Sep 17 00:00:00 2001
> From: "Luis R. Rodriguez" <mcgrof-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
> Date: Thu, 29 Jun 2017 15:19:04 -0700
> Subject: [RFT] firmware: send wake up on failure for batched requests
> 
> Fix batched requests from waiting forever on failure.
> 
> The firmware API supports "batched requests" which means requests with
> the same name share the same lookup effort. They wait for the first
> request to complete, however they are set to always wait for what seem
> to be forever (MAX_SCHEDULE_TIMEOUT).
> 
> We currently handle informing waited batched requests on success but we
> never seem to have sent smoke signals of any kind on failure! This
> should mean secondary requests batched in seem to just wait forever when
> the request fails.
> 
> For device drivers with optional firmware schemes (Intel, or Netronome),
> this could mean that when you boot a system with multiple cards the
> firmware will seem to never load on the system, or that the card is just
> not responsive even the driver initialized. Due to differences in scheduling
> possible this should not always trigger, so triggering batched requests
> actually needs to be triggered for this to be an issue.
> 
> Its reported that at least with the Intel WiFi cards on one system this
> issue was creeping up 50% of the boots [0].
> 
> [0] https://bugzilla.kernel.org/show_bug.cgi?id=195477
> 
> Reported-by: Nicolas <nbroeking-BUHhN+a2lJ4@public.gmane.org>
> Reported-by: John Ewalt  <jewalt-d4N2ExZK1jaSe5ORCPIMD9BPR1lH4CV8@public.gmane.org>
> Reported-by: Jakub Kicinski <jakub.kicinski-wFxRvT7yatFl57MIdRCFDg@public.gmane.org>
> Signed-off-by: Luis R. Rodriguez <mcgrof-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
> ---

FWIW I wrote a test case for this and indeed as I expected, it fixed the last
remaining issue I was aware of with using multiple cards and the firmware API.

Determining the first affected kernel was rather hard, but it would seem to be
that this became an issue once we started supporting making the fallback
mechanism optional via commit bba3a87e982ad5 ("firmware: Introduce
request_firmware_direct()", merged via v3.14.

Will follow up with patches.

  Luis

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

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-14 22:20 [PATCH 0/4] firmware: fix fallback mechanism by ignoring SIGCHLD Luis R. Rodriguez
2017-06-14 22:20 ` [PATCH 1/4] test_firmware: add test case for SIGCHLD on sync fallback Luis R. Rodriguez
2017-06-14 22:20 ` [PATCH 2/4] swait: add the missing killable swaits Luis R. Rodriguez
     [not found]   ` <20170614222017.14653-3-mcgrof-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-06-29 12:54     ` Greg KH
     [not found]       ` <20170629125402.GH26046-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2017-06-29 13:05         ` Thomas Gleixner
2017-06-29 13:35           ` Greg KH
2017-06-29 13:46             ` Thomas Gleixner
2017-06-29 16:13               ` Linus Torvalds
2017-06-29 16:31                 ` Matthew Wilcox
2017-06-29 17:29                   ` Luis R. Rodriguez
2017-06-29 17:40                 ` Davidlohr Bueso
2017-06-29 17:57                   ` Linus Torvalds
2017-06-29 18:33                     ` Davidlohr Bueso
     [not found]                       ` <20170629183339.GD3954-3dK4OQgjB4rH06JGZaSw0A@public.gmane.org>
2017-06-29 18:59                         ` Linus Torvalds
     [not found]                           ` <CA+55aFz8Mhx+A-g-5yOG-O1ZLRUR_fpeeA4iBNGH8EnDBZEdpA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-06-29 19:40                             ` Luis R. Rodriguez
2017-06-29 19:44                               ` Luis R. Rodriguez
     [not found]                                 ` <20170629194455.GR21846-B4tOwbsTzaBolqkO4TVVkw@public.gmane.org>
2017-06-29 20:58                                   ` Jakub Kicinski
2017-06-29 22:50                                     ` Luis R. Rodriguez
2017-06-29 22:53                                       ` Jakub Kicinski
2017-06-29 23:00                                         ` Luis R. Rodriguez
2017-06-29 23:06                                           ` Jakub Kicinski
     [not found]                                       ` <20170629225003.GU21846-B4tOwbsTzaBolqkO4TVVkw@public.gmane.org>
2017-07-12 21:33                                         ` Luis R. Rodriguez [this message]
     [not found]                               ` <20170629194015.GQ21846-B4tOwbsTzaBolqkO4TVVkw@public.gmane.org>
2017-06-29 20:57                                 ` Linus Torvalds
2017-07-05  2:06                       ` Davidlohr Bueso
     [not found]                         ` <20170705020635.GD11168-3dK4OQgjB4rH06JGZaSw0A@public.gmane.org>
2017-07-07 19:58                           ` Linus Torvalds
2017-07-07 22:27                             ` Davidlohr Bueso
2017-07-07 22:48                               ` Linus Torvalds
2017-06-29 19:15                 ` Marcelo Tosatti
     [not found]                   ` <20170629191506.GB12368-I4X2Mt4zSy4@public.gmane.org>
2017-06-30  4:03                     ` Linus Torvalds
2017-06-30 11:55                       ` Marcelo Tosatti
2017-06-30 11:57                       ` Marcelo Tosatti
2017-06-30 17:30                       ` Krister Johansen
2017-06-14 22:20 ` [PATCH 3/4] firmware: avoid invalid fallback aborts by using killable swait Luis R. Rodriguez
2017-06-14 22:20 ` [PATCH 4/4] firmware: send -EINTR on signal abort on fallback mechanism Luis R. Rodriguez
2017-06-15  7:49 ` [PATCH 0/4] firmware: fix fallback mechanism by ignoring SIGCHLD Martin Fuzzey
     [not found] ` <20170614222017.14653-1-mcgrof-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-06-26 21:19   ` Luis R. Rodriguez
2017-06-29 15:14   ` Greg KH
     [not found]     ` <20170629151442.GA4880-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2017-06-29 17:29       ` Luis R. Rodriguez

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=20170712213309.GW21846@wotan.suse.de \
    --to=mcgrof-dgejt+ai2ygdnm+yrofe0a@public.gmane.org \
    --cc=arend.vanspriel-dY08KVG/lbpWk0Htik3J/w@public.gmane.org \
    --cc=atull-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=dave-h16yJtLeMjHk1uMJSBkQmQ@public.gmane.org \
    --cc=dmitry.torokhov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=dwmw2-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org \
    --cc=ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org \
    --cc=emmanuel.grumbach-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    --cc=gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org \
    --cc=jakub.kicinski-wFxRvT7yatFl57MIdRCFDg@public.gmane.org \
    --cc=jewalt-d4N2ExZK1jaSe5ORCPIMD9BPR1lH4CV8@public.gmane.org \
    --cc=johannes.berg-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    --cc=mfuzzey-mB3Nsq4MPf1BDgjK7y7TUQ@public.gmane.org \
    --cc=moritz.fischer-+aYTwkv1SeIAvxtiuMwx3w@public.gmane.org \
    --cc=nbroeking-BUHhN+a2lJ4@public.gmane.org \
    --cc=pmladek-IBi9RG/b67k@public.gmane.org \
    --cc=rafal-g1n6cQUeyibVItvQsEIGlw@public.gmane.org \
    --cc=rjw-LthD3rsA81gm4RdzfppkhA@public.gmane.org \
    --cc=tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org \
    --cc=torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
    --cc=wagi-kQCPcA+X3s7YtjvyW6yDsg@public.gmane.org \
    --cc=yi1.li-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).