re: CVS commit: src/share/mk

2020-02-08 Thread matthew green
> what sort of testing did you do with this change?  simply removing
> it breaks the build.  and trying to fix it otherwise is hard.  see
> only a month ago:

huh.

my build *did* complete.  so something else has changed in the
last month or so to fix this... 

sorry for the noise.


.mrg.


re: CVS commit: src/share/mk

2020-02-08 Thread matthew green
"Maya Rashish" writes:
> Module Name:  src
> Committed By: maya
> Date: Sat Feb  8 21:16:53 UTC 2020
> 
> Modified Files:
>   src/share/mk: sys.mk
> 
> Log Message:
> Don't special case aarch64 and add -fomit-frame-pointer to builds.
> 
> This behaviour is probably due to a past behaviour of clang, where it
> always emitted frame pointer code.
> This is no longer true for clang on netbsd, and I don't think it was true
> for GCC.
> 
> Meanwhile, this flag bleeds into pkgsrc where it breaks random packages,
> requiring workarounds like lang/ruby*-base/hacks.mk.

what sort of testing did you do with this change?  simply removing
it breaks the build.  and trying to fix it otherwise is hard.  see
only a month ago:

revision 1.142
date: 2020-01-08 14:04:24 -0800;  author: christos;  state: Exp;  lines: +1 -1; 
 commitid: NcvOnC9CgM4A5WRB;
Back out previous. This has no chance to work unless the make variable parsing
is not changed do that instead of scanning for a single character delim ':',
it scans for "?:". This is because !empty(COMPILE.c:M*-pg*) contains a ':'.

revision 1.141
date: 2020-01-07 20:15:45 -0800;  author: christos;  state: Exp;  lines: +2 -2; 
 commitid: U2dp6ScXDBHOaQRB;
tweak the DBG rule that -fomit-frame-pointer for aarch64 when profiling
(because the compiler complains), to use a match with the compile flags
and *pg*, instead of using a match to a target suffix (which is NetBSD
build-specific). Pointed out by phone@.


.mrg.


Re: CVS commit: src/sys

2020-02-08 Thread Jason Thorpe



> On Feb 8, 2020, at 12:45 PM, Andrew Doran  wrote:
> 
> Bit concerning that we're growing a ton of kthreads in the network stack (my
> test system now has something like 700 kthreads total) but I'm less worried
> about that and moreso that a lot of these seem to be in the kernel RT range
> and will therefore cause kernel preemptions when triggered.
> 
> For something like a link state change that's no biggie but I'm not fond of
> the idea of bulk wire & protcol processing needing mi_switch() + kpreempt(). 
> Way back when we made a concious decision not copy the design pattern our
> sister project went with on this front.  Maybe it is the right way to go now
> but I think that should also be a concious design decision.

Roger that.  I agree with you -- I would prefer "regular" stuff to continue 
using softints.  For some other stuff, though, we've made the policy decision 
that softints can't block for anything other than an adaptive mutex, which is 
fine... this particular case sends a message to the routing socket, which 
requires gathering interface statistics, which blocks on something other than 
an adaptive mutex.

I'm not a fan of the workqueue interface, and I have something better sitting 
unfinished in my Bucket Of Stuff I'm Working On ... a generalized "task" 
interface originally written-but-not-finished by Taylor that uses either thread 
pools or softints to do the work... so at least the threads won't linger around 
in the "mostly idle" case.

-- thorpej



Re: CVS commit: src/sys

2020-02-08 Thread Andrew Doran
On Thu, Feb 06, 2020 at 11:30:20PM +, Jason R Thorpe wrote:

> Modified Files:
>   src/sys/net: if.c if.h
>   src/sys/netinet: ip_carp.c
> 
> Log Message:
> Perform link state change processing on a work queue, rather than in a
> softint.

Thinking out loud more than anything else:

Bit concerning that we're growing a ton of kthreads in the network stack (my
test system now has something like 700 kthreads total) but I'm less worried
about that and moreso that a lot of these seem to be in the kernel RT range
and will therefore cause kernel preemptions when triggered.

For something like a link state change that's no biggie but I'm not fond of
the idea of bulk wire & protcol processing needing mi_switch() + kpreempt(). 
Way back when we made a concious decision not copy the design pattern our
sister project went with on this front.  Maybe it is the right way to go now
but I think that should also be a concious design decision.

Andrew