mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Sascha Hauer <s.hauer@pengutronix.de>
To: "Daniel Glöckner" <dg@emlix.com>
Cc: Barebox List <barebox@lists.infradead.org>,
	Edmund Henniges <eh@emlix.com>
Subject: Re: [PATCH 19/19] poller: Allow to run pollers inside of pollers
Date: Mon, 16 Mar 2020 09:04:27 +0100	[thread overview]
Message-ID: <20200316080427.GL3335@pengutronix.de> (raw)
In-Reply-To: <20200312223615.GA11963@emlix.com>

On Thu, Mar 12, 2020 at 11:36:15PM +0100, Daniel Glöckner wrote:
> Hello Sascha,
> 
> On Thu, Mar 12, 2020 at 09:35:55AM +0100, Sascha Hauer wrote:
> > This adds a slice to each poller which is acquired before the poller is
> > executed. This allows us to run pollers inside of other pollers.
> 
> ok, so in the UDP fastboot case there is now a poller that receives
> packets and a poller that executes commands and needs packets to
> be received to send more than one message. How do I make sure that
> the fastboot poller will never be called inside the net poller since
> that would cause a deadlock?
> 
> My initial idea was to keep the poller_active variable and increase
> it for each poller execution level. The fastboot poller could then
> return immediately when it is called from within any other poller.
> 
> Another possible solution could be to add a dependency on the net
> poller slice to the fastboot poller slice. Then the net poller
> can execute from within the fastboot poller, but not the other way
> around. A similar dependency would have to be added for the watchdog
> poller_async and the poller that will be introduced for sending
> keep-alives.
> 
> The first solution should be easier to implement and would have
> the benefit that all resources are available when a fastboot command
> executes.

I wonder if we need some idle slice, a slice that is locked once we are
outside of some idle loop (shell is waiting for input). In the end the
fastboot code may only call long running commands when the idle slice is
not locked.

Sascha

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

  reply	other threads:[~2020-03-16  8:04 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-12  8:35 [PATCH v3 00/19] Protect code from pollers Sascha Hauer
2020-03-12  8:35 ` [PATCH 01/19] net: fec_imx: Do not clear MII interrupt during receive Sascha Hauer
2020-03-12  8:35 ` [PATCH 02/19] miitool: Use mdiobus_read() Sascha Hauer
2020-03-12  8:35 ` [PATCH 03/19] net: phy: mdio-mux: Use mdiobus_read/write() Sascha Hauer
2020-03-12  8:35 ` [PATCH 04/19] net: Open ethernet devices explicitly Sascha Hauer
2020-03-12  8:35 ` [PATCH 05/19] poller: Give pollers a name Sascha Hauer
2020-03-12  8:35 ` [PATCH 06/19] poller: Add a poller command Sascha Hauer
2020-03-12  8:35 ` [PATCH 07/19] Introduce slices Sascha Hauer
2020-03-12  8:35 ` [PATCH 08/19] net: Add a slice to struct eth_device Sascha Hauer
2020-03-12  8:35 ` [PATCH 09/19] net: mdiobus: Add slice Sascha Hauer
2020-03-12  8:35 ` [PATCH 10/19] usb: Add a slice to usb host controllers Sascha Hauer
2020-03-12  8:35 ` [PATCH 11/19] usbnet: Add slice Sascha Hauer
2020-03-12  8:35 ` [PATCH 12/19] net: Call net_poll() in a poller Sascha Hauer
2020-03-12  8:35 ` [PATCH 13/19] net: reply to ping requests Sascha Hauer
2020-03-12  8:35 ` [PATCH 14/19] usbnet: Be more friendly in the receive path Sascha Hauer
2020-03-12  8:35 ` [PATCH 15/19] net: phy: Also print link down messages Sascha Hauer
2020-03-12  8:35 ` [PATCH 16/19] net: ifup command: add ethernet device completion Sascha Hauer
2020-03-12  8:35 ` [PATCH 17/19] net: phy: Do not claim the link is up initially Sascha Hauer
2020-03-12  8:35 ` [PATCH 18/19] net: Add ifdown support and command Sascha Hauer
2020-03-12  8:35 ` [PATCH 19/19] poller: Allow to run pollers inside of pollers Sascha Hauer
2020-03-12 22:36   ` Daniel Glöckner
2020-03-16  8:04     ` Sascha Hauer [this message]
2020-04-07 19:28       ` Daniel Glöckner
2020-04-22  7:40         ` Sascha Hauer
2020-05-08 17:42           ` Daniel Glöckner

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=20200316080427.GL3335@pengutronix.de \
    --to=s.hauer@pengutronix.de \
    --cc=barebox@lists.infradead.org \
    --cc=dg@emlix.com \
    --cc=eh@emlix.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox