Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 29 May 2002 15:45:50 -0700 (PDT)
From:      Julian Elischer <julian@elischer.org>
To:        John Baldwin <jhb@FreeBSD.org>
Cc:        FreeBSD current users <current@freebsd.org>
Subject:   RE: Seeking OK to commit KSE MIII
Message-ID:  <Pine.BSF.4.21.0205291403090.12315-100000@InterJet.elischer.org>
In-Reply-To: <Pine.BSF.4.21.0205291057020.12315-100000@InterJet.elischer.org>

next in thread | previous in thread | raw e-mail | index | archive | help


On Wed, 29 May 2002, Julian Elischer wrote:

> 
> 
> On Wed, 29 May 2002, John Baldwin wrote:
> 
> > 
> > 4) It would be nice if you didn't mix in gratuitous style changes with
> >    actual content changes such as extra braces in else clause of
> >    PROCFS_CTRL_WAIT case in procfs_ctl.c

	

 
I don't consider that to be a "gratuitous style change".
I'm rewriting the clause and consider that as a 3 line clasue with 2
levels of indent it makes it more "error resistant" to have the braces..
The 'then' clause has braces so teh else one should too.

if (foo) {
	fumble();
	futz();
} else
	bah;

always really annoys me.
If I'm looking for the end of the if statement, I'm looing for a '}'..


> 
> > 
> > 5) The comment by thread_unsuspend() in procfs_ctl.c seems gratuitous,
> >    that is what one would expect from such a function.
> 
> I'll go take a look in a minute..



+       thread_unsuspend(p); /* If it can run, let it do so. */

ok, the reason is that "thread_unsuspend may NOT result in the thread
running as it may still be blocked by other "suspend types".
It is possible that the correct answer is to rename thread_unsuspend()
to proc_check_unsuspend(). There are three reasons a process may be
suspended and we've only released one of them here.

It was called thread_unsuspend() because it is one of a suite of functions
that are in the thread control code, but it's function really is
process-wide so it should probably start with proc_..
thoughts?


> 

> 
> > 
> > 6) In cpu_set_retval() you have:
> > 
> > +       frame->tf_edx = aux;            /* I dunno */
[..]
> > 

I'll make is a bit more correct

> 
> > 
> > 7) Please follow the established convention for names of members in
> >    pcb_ext and call 'refcount' 'ext_refccount'.
> 

removed

> 
> > 
> > 8) It would be nice if the CURSIG() -> cursig() change were committed
> >    separately to avoid obfuscating the other diffs.
> 
> yeah that is a "mini" thing :-)

I'll see what I can do.

> > 
> > 10) In kern_sig.c, prototypes are declared on one line and near the
> >    beginning of the file, not in the middle of code (tdsignal).
> 

Fixed

> > 
> > 11) Why is there a whole chunk of code #if 0'd out in kern_sig.c?

It's contriversial..
matt and I feel you shouldn't be checking this stop state in issignal
 but rather at kernel exit. I have other code that does this
(thread_suspend_check()) but there is some chance I may need to re-enable
this code if people notice a change in behaviour.

> > 
> > 12) You lock p_pptr twice (can't do that) before psignal().  Looks
> >    like you added an extra one along with gratuitous braces and a
> >    whitespace change.
> 

fixed

> 
> > 
> > 13) Could you call readjustrunqueue() runq_readjust() to follow the
> >    other namespaces already in kern_switch.c?  Also, I find it easier
> >    to read personally.


done

> 
> > 
> > 14) Hmm, I'm not sure why you need TDF_INMSLEEP if a KSE always has
> >    a spare thread that is replenished first thing when the spare
> >    thread prepares to do an upcall.
> 
> It was a leftover that mini didn't remove.. I'll investigate if it's still
> needed.

There may still be a race, however as we call
thread_alloc() from thread_schedule_upcall() which is in turn called
from within msleep().. personally this just protects us from trying to
recurse if we end up trying to sleep because we are trying to allocate a
new one.

I'm not convinced that this recursion cannot happen, even with the new
allocation code.


> 
> > 
> > 15) The 'um... dunno' comment in abortsleep() is a bit unsettling, do
> >    you think you could clarify / run some tests to figure out exactly
> >    what is going on there?

 
I still dunno :-)
I'll look into it more over the next couple of days..


> > 


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0205291403090.12315-100000>