On 20/12/16(Tue) 18:47, Mike Belopuhov wrote:
> On Tue, Dec 20, 2016 at 17:06 +0100, Martin Pieuchot wrote:
> >
> > You'll need to release the lock before calling ifc->ifc_create in
> > if_clone_create() and do the same dance in if_clone_destroy().
> >
>
> Indeed.
>
> > But I think that's the
2016-12-20 20:30 GMT+03:00 Theo de Raadt :
>> I had to dig into sa sources to get know what trailing '*' in
>> command names mean. IMHO, that's not how manuals should work. :)
>>
>> Okay?
>
> That seems a little awkward mentioning fork directly. How about
>
> Children which
On Tue, Dec 20, 2016 at 01:55:03PM +0100, Martin Pieuchot wrote:
> rzalamena@ found that the IPv4 multicast code have two code paths ending
> in ip_output() that are not yet taking the NET_LOCK: sosetopt() and
> pffasttimo().
I see this also on my regress test machine.
splassert: ip_output: want
On Tue, Dec 20, 2016 at 12:14:22PM +0100, Martin Pieuchot wrote:
> mld6_{start,stop}_listeting() are called in ioctl(2) context, thus at
> IPL_SOFTNET.
These are called from in6_addmulti() and in6_delmulti(). They still
have a splsoftnet() in them. Please remove this first and put an
assert
On Tue, Dec 20, 2016 at 17:06 +0100, Martin Pieuchot wrote:
>
> You'll need to release the lock before calling ifc->ifc_create in
> if_clone_create() and do the same dance in if_clone_destroy().
>
Indeed.
> But I think that's the way to go. If you can create/destroy
> pseudo-interface without
On 20/12/16(Tue) 19:51, Alexander Bluhm wrote:
> [...]
> The sosplice thread is only used for TCP. UDP runs in the softnet
> thread. As we are reading 64 bit values, we need some sort of
> locking. Now everything is in the kernel lock, but when we start
> working to unlock the socket layer, be
On Tue, Dec 20, 2016 at 09:27:14PM +0300, Vadim Zhukov wrote:
> 2016-12-20 20:30 GMT+03:00 Theo de Raadt :
> >> I had to dig into sa sources to get know what trailing '*' in
> >> command names mean. IMHO, that's not how manuals should work. :)
> >>
> >> Okay?
> >
> > That
On Tue, Dec 20, 2016 at 09:42:00PM +0100, Martin Pieuchot wrote:
> On 20/12/16(Tue) 20:01, Alexander Bluhm wrote:
> > On Tue, Dec 20, 2016 at 12:14:22PM +0100, Martin Pieuchot wrote:
> > > mld6_{start,stop}_listeting() are called in ioctl(2) context, thus at
> > > IPL_SOFTNET.
> >
> > These are
On Tue, Dec 20, 2016 at 10:58:40PM +0100, Michal Mazurek wrote:
> While there is nothing wrong with "while true", "while :" is better
> and used a lot more often in the source tree.
>
> OK?
>
i'm not sure why "while :" is better in this example, but "while true"
is clearer, i think. allowing
On Tue, Dec 20, 2016 at 5:49 PM, Jason McIntyre wrote:
> On Tue, Dec 20, 2016 at 10:58:40PM +0100, Michal Mazurek wrote:
> > While there is nothing wrong with "while true", "while :" is better
> > and used a lot more often in the source tree.
> >
> > OK?
> >
>
> i'm not sure
On 20/12/16(Tue) 20:01, Alexander Bluhm wrote:
> On Tue, Dec 20, 2016 at 12:14:22PM +0100, Martin Pieuchot wrote:
> > mld6_{start,stop}_listeting() are called in ioctl(2) context, thus at
> > IPL_SOFTNET.
>
> These are called from in6_addmulti() and in6_delmulti(). They still
> have a
/mnt/etc/firmware is only mentioned in plus44.html. Mention it in
loadfirmware(9).
It was concluded that the FAQ is not a proper place to talk about
this directory.
Index: ./share/man/man9/loadfirmware.9
===
RCS file:
I do not think this should be documented.
It is a trick. Noone should rely upon it, because later on we might
use a different trick. Then this documentation would be come false,
and it is another piece for us to worry about.
> /mnt/etc/firmware is only mentioned in plus44.html. Mention it in
>
On Tue, Dec 20, 2016 at 06:47:31PM +0100, Mike Belopuhov wrote:
> @@ -1109,11 +1115,16 @@ if_clone_destroy(const char *name)
> s = splnet();
> if_down(ifp);
> splx(s);
> }
>
> - return ((*ifc->ifc_destroy)(ifp));
> + /* XXXSMP breaks
While there is nothing wrong with "while true", "while :" is better
and used a lot more often in the source tree.
OK?
Index: bin/sleep/sleep.1
===
RCS file: /cvs/src/bin/sleep/sleep.1,v
retrieving revision 1.22
diff -u -p -r1.22
On Tue, Dec 20, 2016 at 11:50:40AM +0100, Martin Pieuchot wrote:
> Interface ioctl(2)s are now always executed at IPL_SOFTNET, so remove
> recursive splsoftnet() calls.
Could you put an splsoftassert into in6_addmulti() and in6_delmulti()?
> ok?
anyway OK bluhm@
>
> Index: netinet6/in6.c
>
Hi,
As NET_LOCK() is a read/write lock, it can sleep in sotask(). So
the TASKQ_CANTSLEEP flag is no longer valid for the splicing thread.
ok?
bluhm
Index: kern/uipc_socket.c
===
RCS file:
Hi Salvador,
thanks for noticing defects and providing patches!
Salvador Sabaini wrote on Wed, Dec 14, 2016 at 12:55:08PM -0300:
> I've just found man references in the SEE ALSO section to xfs(1),
> the X font server which was unlinked from base in 5.7, in the
> following man pages:
>
>
> I had to dig into sa sources to get know what trailing '*' in
> command names mean. IMHO, that's not how manuals should work. :)
>
> Okay?
That seems a little awkward mentioning fork directly. How about
Children which have not yet called
.Xr execve 2
will have
.Sq *
appended to their command
Hi,
I have seen spl softnet assert failures like this.
splassert: sowwakeup: want 1 have 0
Starting stack trace...
sowwakeup(1,0,d09d8bd7,d03ba9f9,40) at sowwakeup+0x3f
sowwakeup(db549818,d6dc850e,f54d9be8,0,dae674d4) at sowwakeup+0x3f
soisdisconnected(db549818,0,db549818,2,f54d9c00) at
mld6_{start,stop}_listeting() are called in ioctl(2) context, thus at
IPL_SOFTNET.
mld6_fasttimeo(), like all *fasttimeo() routines is now always called
at IPL_SOFTNET.
So let's get rid of these recursive splsoftnet(), ok?
Index: netinet6/mld6.c
Kill a recursive splsoftnet()/splx() dance, ``pr_ctloutput'' routines
are now always called at IPL_SOFTNET.
ok?
Index: netinet/tcp_usrreq.c
===
RCS file: /cvs/src/sys/netinet/tcp_usrreq.c,v
retrieving revision 1.137
diff -u -p
On Mon, Dec 19, 2016 at 11:48:31AM +0100, Martin Pieuchot wrote:
> Interface ioctl(2) are now always run at IPL_SOFTNET, so let's get rid
> of recursive splsoftnet()/splx() dances.
>
> ok?
ok rzalamena@
I introduced a bug in carp(4), one code path tries to take the NET_LOCK()
twice:
panic() at panic+0xfe
rw_enter() at rw_enter+0x1f8
carp_send_ad() at carp_send_ad+0x4d
carp_vhe_send_ad_all() at carp_vhe_send_ad_all+0x4b
carp_ioctl() at carp_ioctl+0x491
On 20 December 2016 at 12:11, Martin Pieuchot wrote:
> Kill a recursive splsoftnet()/splx() dance, ``pr_ctloutput'' routines
> are now always called at IPL_SOFTNET.
>
> ok?
>
Yes, please.
On 20/12/16(Tue) 14:50, Alexander Bluhm wrote:
> Hi,
>
> This crash happened during regress/sys/net/pflow on my regression test
> machine:
>
> panic: rw_enter: netlock locking against myself
> Stopped at Debugger+0x7: leave
>TIDPIDUID PRFLAGS PFLAGS CPU COMMAND
>
On 20 December 2016 at 16:03, Patrick Wildt wrote:
> Hi,
>
> I just realized that bioctl can print its uninitialized memory. The
> function bio_status() prints information from a struct basically after
> each ioctl(). The BIOCLOCATE ioctl() though never sets this in the
>
On Tue, Dec 20, 2016 at 12:08:57PM +0100, Martin Pieuchot wrote:
> I introduced a bug in carp(4), one code path tries to take the NET_LOCK()
> twice:
>
> panic() at panic+0xfe
> rw_enter() at rw_enter+0x1f8
> carp_send_ad() at carp_send_ad+0x4d
> carp_vhe_send_ad_all() at
On Tue, Dec 20, 2016 at 03:28:38PM +0100, Martin Pieuchot wrote:
> I don't have a solution for the moment and I want to be sure we know all
Me neither. That's why I did not send a diff, but only the stack trace.
> recursions before trying to write a fix. So here's a diff that mark the
>
Hi,
I just realized that bioctl can print its uninitialized memory. The
function bio_status() prints information from a struct basically after
each ioctl(). The BIOCLOCATE ioctl() though never sets this in the
struct. Thus each BIOCLOCATE ioctl() keeps the struct in the state
as it has been
rzalamena@ found that the IPv4 multicast code have two code paths ending
in ip_output() that are not yet taking the NET_LOCK: sosetopt() and
pffasttimo().
Diff below fixes that and include pfslowtimo() as well as sogetopt() for
completeness.
While here remove a superfluous splsoftnet() which
On Tue, Dec 20, 2016 at 12:11:40PM +0100, Martin Pieuchot wrote:
> Kill a recursive splsoftnet()/splx() dance, ``pr_ctloutput'' routines
> are now always called at IPL_SOFTNET.
>
> ok?
OK bluhm@
>
> Index: netinet/tcp_usrreq.c
>
Hi,
This crash happened during regress/sys/net/pflow on my regression test
machine:
panic: rw_enter: netlock locking against myself
Stopped at Debugger+0x7: leave
TIDPIDUID PRFLAGS PFLAGS CPU COMMAND
*291613 71462 0 0x2 01 ifconfig
96946
On 20/12/16(Tue) 14:31, Alexander Bluhm wrote:
> On Tue, Dec 20, 2016 at 12:08:57PM +0100, Martin Pieuchot wrote:
> > I introduced a bug in carp(4), one code path tries to take the NET_LOCK()
> > twice:
> >
> > panic() at panic+0xfe
> > rw_enter() at rw_enter+0x1f8
> > carp_send_ad()
Hi all.
I had to dig into sa sources to get know what trailing '*' in
command names mean. IMHO, that's not how manuals should work. :)
Okay?
--
WBR,
Vadim Zhukov
Index: sa.8
===
RCS file: /cvs/src/usr.sbin/sa/sa.8,v
retrieving
On Tue, Dec 20, 2016 at 03:09:11PM +0100, Martin Pieuchot wrote:
> No we can't because we're already holding it. So carp_master_down()
> must be split in two, diff below does that and only grab the lock in
> the timer routine.
OK bluhm@
>
> Index: netinet/ip_carp.c
>
Attach:
splassert: sowakeup: want 1 have 0
Starting stack trace...
sowakeup() at sowakeup+0x41
sorwakeup() at sorwakeup+0xb4
route_input() at route_input+0x2d7
if_attach() at if_attach+0x58
xnf_attach() at xnf_attach+0x45f
config_attach() at config_attach+0x1bc
On 20/12/16(Tue) 16:33, Mike Belopuhov wrote:
> Attach:
>
> splassert: sowakeup: want 1 have 0
> Starting stack trace...
> sowakeup() at sowakeup+0x41
> sorwakeup() at sorwakeup+0xb4
> route_input() at route_input+0x2d7
> if_attach() at if_attach+0x58
> xnf_attach() at
38 matches
Mail list logo