Re: [PATCH 07/19] Introduce idle slice

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/barebox




[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux