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 07/19] Introduce idle slice
Date: Mon, 25 May 2020 10:09:28 +0200	[thread overview]
Message-ID: <20200525080928.GP11869@pengutronix.de> (raw)
In-Reply-To: <901a205b-1e1e-bd23-0e35-88d9b9d88351@emlix.com>

On Fri, May 22, 2020 at 01:56:33PM +0200, Daniel Glöckner wrote:
> Hello Sascha,
> 
> Am 20.05.20 um 11:43 schrieb Sascha Hauer:
> > diff --git a/common/console_countdown.c b/common/console_countdown.c
> > index 74dc382795..c69029dc0e 100644
> > --- a/common/console_countdown.c
> > +++ b/common/console_countdown.c
> > @@ -19,6 +19,7 @@
> >  #include <errno.h>
> >  #include <console_countdown.h>
> >  #include <stdio.h>
> > +#include <slice.h>
> >  
> >  static bool console_countdown_timeout_abort;
> >  
> 
> with your changes we no longer need that include in here.
> 
> > diff --git a/common/hush.c b/common/hush.c
> > index c24b2c7cd2..61424d98e7 100644
> > --- a/common/hush.c
> > +++ b/common/hush.c
> > @@ -460,7 +460,12 @@ static void get_user_input(struct in_str *i)
> >  	else
> >  		prompt = CONFIG_PROMPT_HUSH_PS2;
> >  
> > +	idle_slice_release();
> > +
> >  	n = readline(prompt, console_buffer, CONFIG_CBSIZE);
> > +
> > +	idle_slice_acquire();
> > +
> >  	if (n == -1 ) {
> >  		i->interrupt = 1;
> >  		n = 0;
> 
> Ok, you moved the release/acquire from readline and console_countdown to
> get_user_input and do_autoboot_countdown. That is actually more strict
> than what I had in mind and avoids having to acquire/release in binfmt_run
> and execute_command.
> 
> But I'm not so happy about the removal of the acquire/release in poller.c.
> Now the fastboot poller might be run from within another poller and neither
> do we know which resources that other poller uses nor do we know which
> resources the commands need that we are told over to execute in our poller.

Ok, what you mean here is:

- idle_slice is released
- poller_call() calls some unrelated poller
- this unrelated poller triggers execution of poller_call() again
- poller_call() then triggers pollers which depend on the idle_slice

In this situation we end with pollers depending on the idle_slice to be
executed inside of pollers. Yes, we don't want that, so let's add
acquiring the idle_slice before calling into poller functions back. I
hadn't thought about this situation.

I fixed the other things you mentioned as well.

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-05-25  8:09 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-20  9:43 [PATCH 00/19] Slices and fastboot over UDP Sascha Hauer
2020-05-20  9:43 ` [PATCH 01/19] poller: Give pollers a name Sascha Hauer
2020-05-20  9:43 ` [PATCH 02/19] poller: Add a poller command Sascha Hauer
2020-05-20  9:43 ` [PATCH 03/19] fastboot: split generic code from USB gadget Sascha Hauer
2020-05-20  9:43 ` [PATCH 04/19] fastboot: don't close fd 0 when downloading to ram Sascha Hauer
2020-05-20  9:43 ` [PATCH 05/19] fastboot: Use unique tempfile name Sascha Hauer
2020-05-20  9:43 ` [PATCH 06/19] Introduce slices Sascha Hauer
2020-05-20  9:43 ` [PATCH 07/19] Introduce idle slice Sascha Hauer
2020-05-22 11:56   ` Daniel Glöckner
2020-05-25  8:09     ` Sascha Hauer [this message]
2020-05-20  9:43 ` [PATCH 08/19] net: Add a slice to struct eth_device Sascha Hauer
2020-05-20  9:43 ` [PATCH 09/19] net: mdiobus: Add slice Sascha Hauer
2020-05-20  9:43 ` [PATCH 10/19] usb: Add a slice to usb host controllers Sascha Hauer
2020-05-20  9:43 ` [PATCH 11/19] usbnet: Add slice Sascha Hauer
2020-05-20  9:43 ` [PATCH 12/19] net: Call net_poll() in a poller Sascha Hauer
2020-05-20  9:43 ` [PATCH 13/19] net: reply to ping requests Sascha Hauer
2020-05-20  9:43 ` [PATCH 14/19] usbnet: Be more friendly in the receive path Sascha Hauer
2020-05-20  9:43 ` [PATCH 15/19] poller: Allow to run pollers inside of pollers Sascha Hauer
2020-05-20  9:44 ` [PATCH 16/19] defconfigs: update renamed fastboot options Sascha Hauer
2020-05-20  9:44 ` [PATCH 17/19] fastboot: rename usbgadget.fastboot_* variables to fastboot.* Sascha Hauer
2020-05-20  9:44 ` [PATCH 18/19] fastboot net: implement fastboot over UDP Sascha Hauer
2020-05-20  9:44 ` [PATCH 19/19] fastboot net: remove may_send Sascha Hauer

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=20200525080928.GP11869@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