All of lore.kernel.org
 help / color / mirror / Atom feed
From: Martin Fuzzey <mfuzzey@parkeon.com>
To: "Luis R. Rodriguez" <mcgrof@kernel.org>, gregkh@linuxfoundation.org
Cc: ebiederm@xmission.com, dmitry.torokhov@gmail.com, wagi@monom.org,
	dwmw2@infradead.org, jewalt@lgsinnovations.com, rafal@milecki.pl,
	arend.vanspriel@broadcom.com, rjw@rjwysocki.net,
	yi1.li@linux.intel.com, atull@kernel.org,
	moritz.fischer@ettus.com, pmladek@suse.com,
	johannes.berg@intel.com, emmanuel.grumbach@intel.com,
	luciano.coelho@intel.com, kvalo@codeaurora.org, luto@kernel.org,
	torvalds@linux-foundation.org, keescook@chromium.org,
	takahiro.akashi@linaro.org, dhowells@redhat.com,
	pjones@redhat.com, hdegoede@redhat.com, alan@linux.intel.com,
	tytso@mit.edu, mtk.manpages@gmail.com,
	paul.gortmaker@windriver.com, mtosatti@redhat.com,
	mawilcox@microsoft.com, linux-api@vger.kernel.org,
	linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 0/4] firmware: fix fallback mechanism by ignoring SIGCHLD
Date: Thu, 15 Jun 2017 09:49:18 +0200	[thread overview]
Message-ID: <59423BFE.3060405@parkeon.com> (raw)
In-Reply-To: <20170614222017.14653-1-mcgrof@kernel.org>

On 15/06/17 00:20, Luis R. Rodriguez wrote:
> Martin reported an issue with Android where if sysfs is used to trigger a sync
> fw load which *relies* on the fallback mechanism and a background job completes
> while the trigger is ongoing in the foreground it will immediately fail the fw
> request.  The issue can be observed in this simple test script using the
> test_firmware driver:
>
> 	set -e
> 	/etc/init.d/udev stop
> 	modprobe test_firmware
> 	DIR=/sys/devices/virtual/misc/test_firmware
> 	echo 10 >/sys/class/firmware/timeout
> 	sleep 2 &
> 	echo -n "does-not-exist-file.bin" > "$DIR"/trigger_request
>
> The background sleep triggers the SIGCHLD signal and we fail the firmware
> request on the fallback mechanism. This was due to the type of wait used which
> ...
>
> Note that although I *feared* this might implicate any use of non-killable waits
> on other system calls, such as finit_module(), initial testing confirms this to
> not be the case.  For instance replacing the echo with modprobe on a module
> which does the same on init does not present the same issues. This could be due
> to the special SA_RESTART flag case on write() as noted above and sysfs...
> however, its not perfectly clear yet to me.
>
>
The reason the problem does not occur with modprobe is that in that case 
the processes triggering the firmware load
(modprobe) and the process dying (sleep) are *siblings* rather than 
father and child.
So the modprobe process does *not* receive a SIGCHLD when its' *brother* 
dies.

echo is a shell built-in so the process triggering the firmware load 
(the shell) and the process dying (sleep) *are* father and child.

Martin

  parent reply	other threads:[~2017-06-15  7:49 UTC|newest]

Thread overview: 77+ 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 ` 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   ` Luis R. Rodriguez
2017-06-14 22:20 ` [PATCH 2/4] swait: add the missing killable swaits Luis R. Rodriguez
2017-06-14 22:20   ` Luis R. Rodriguez
2017-06-29 12:54   ` Greg KH
2017-06-29 12:54     ` Greg KH
2017-06-29 13:05     ` Thomas Gleixner
2017-06-29 13:05       ` Thomas Gleixner
2017-06-29 13:35       ` Greg KH
2017-06-29 13:35         ` Greg KH
2017-06-29 13:46         ` Thomas Gleixner
2017-06-29 13:46           ` Thomas Gleixner
2017-06-29 16:13           ` Linus Torvalds
2017-06-29 16:13             ` Linus Torvalds
2017-06-29 16:31             ` Matthew Wilcox
2017-06-29 16:31               ` Matthew Wilcox
2017-06-29 17:29               ` Luis R. Rodriguez
2017-06-29 17:29                 ` Luis R. Rodriguez
2017-06-29 17:40             ` Davidlohr Bueso
2017-06-29 17:40               ` Davidlohr Bueso
2017-06-29 17:57               ` Linus Torvalds
2017-06-29 17:57                 ` Linus Torvalds
2017-06-29 18:33                 ` Davidlohr Bueso
2017-06-29 18:33                   ` Davidlohr Bueso
2017-06-29 18:59                   ` Linus Torvalds
2017-06-29 18:59                     ` Linus Torvalds
2017-06-29 19:40                     ` Luis R. Rodriguez
2017-06-29 19:40                       ` Luis R. Rodriguez
2017-06-29 19:44                       ` Luis R. Rodriguez
2017-06-29 19:44                         ` Luis R. Rodriguez
2017-06-29 20:58                         ` Jakub Kicinski
2017-06-29 20:58                           ` Jakub Kicinski
2017-06-29 22:50                           ` Luis R. Rodriguez
2017-06-29 22:50                             ` Luis R. Rodriguez
2017-06-29 22:53                             ` Jakub Kicinski
2017-06-29 22:53                               ` Jakub Kicinski
2017-06-29 23:00                               ` Luis R. Rodriguez
2017-06-29 23:00                                 ` Luis R. Rodriguez
2017-06-29 23:06                                 ` Jakub Kicinski
2017-06-29 23:06                                   ` Jakub Kicinski
2017-07-12 21:33                             ` Luis R. Rodriguez
2017-07-12 21:33                               ` Luis R. Rodriguez
2017-06-29 20:57                       ` Linus Torvalds
2017-06-29 20:57                         ` Linus Torvalds
2017-07-05  2:06                   ` Davidlohr Bueso
2017-07-05  2:06                     ` Davidlohr Bueso
2017-07-07 19:58                     ` Linus Torvalds
2017-07-07 19:58                       ` Linus Torvalds
2017-07-07 22:27                       ` Davidlohr Bueso
2017-07-07 22:27                         ` Davidlohr Bueso
2017-07-07 22:48                         ` Linus Torvalds
2017-07-07 22:48                           ` Linus Torvalds
2017-06-29 19:15             ` Marcelo Tosatti
2017-06-29 19:15               ` Marcelo Tosatti
2017-06-29 19:15               ` Marcelo Tosatti
2017-06-30  4:03               ` Linus Torvalds
2017-06-30  4:03                 ` Linus Torvalds
2017-06-30 11:55                 ` Marcelo Tosatti
2017-06-30 11:55                   ` Marcelo Tosatti
2017-06-30 11:55                   ` Marcelo Tosatti
2017-06-30 11:57                 ` Marcelo Tosatti
2017-06-30 11:57                   ` Marcelo Tosatti
2017-06-30 17:30                 ` Krister Johansen
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   ` 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-14 22:20   ` Luis R. Rodriguez
2017-06-15  7:49 ` Martin Fuzzey [this message]
2017-06-26 21:19 ` [PATCH 0/4] firmware: fix fallback mechanism by ignoring SIGCHLD Luis R. Rodriguez
2017-06-26 21:19   ` Luis R. Rodriguez
2017-06-29 15:14 ` Greg KH
2017-06-29 15:14   ` Greg KH
2017-06-29 17:29   ` Luis R. Rodriguez
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=59423BFE.3060405@parkeon.com \
    --to=mfuzzey@parkeon.com \
    --cc=alan@linux.intel.com \
    --cc=arend.vanspriel@broadcom.com \
    --cc=atull@kernel.org \
    --cc=dhowells@redhat.com \
    --cc=dmitry.torokhov@gmail.com \
    --cc=dwmw2@infradead.org \
    --cc=ebiederm@xmission.com \
    --cc=emmanuel.grumbach@intel.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=hdegoede@redhat.com \
    --cc=jewalt@lgsinnovations.com \
    --cc=johannes.berg@intel.com \
    --cc=keescook@chromium.org \
    --cc=kvalo@codeaurora.org \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luciano.coelho@intel.com \
    --cc=luto@kernel.org \
    --cc=mawilcox@microsoft.com \
    --cc=mcgrof@kernel.org \
    --cc=moritz.fischer@ettus.com \
    --cc=mtk.manpages@gmail.com \
    --cc=mtosatti@redhat.com \
    --cc=paul.gortmaker@windriver.com \
    --cc=pjones@redhat.com \
    --cc=pmladek@suse.com \
    --cc=rafal@milecki.pl \
    --cc=rjw@rjwysocki.net \
    --cc=takahiro.akashi@linaro.org \
    --cc=torvalds@linux-foundation.org \
    --cc=tytso@mit.edu \
    --cc=wagi@monom.org \
    --cc=yi1.li@linux.intel.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.