Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

net, runtime: integrated network poller for freebsd/amd64,386, openbsd/amd64,386 #5199

Closed
mikioh opened this issue Apr 4, 2013 · 24 comments

Comments

Projects
None yet
5 participants
@mikioh
Copy link
Contributor

commented Apr 4, 2013

If you want to use new integrated network pollers on BSD variants,
please be aware of the issues on kqueue stuff.

Edge-triggered notification mode:
EV_CLEAR makes things simple but on some BSD platforms, the system
call listen breaks capturing the state transitions, not sure the reason, may
be a bug, may be not. A workaround would be separating registering events
for stream listeners which call listen and others.

Use of EV_RECEIPT:
Unfortunately both of NetBSD and OpenBSD don't support it yet.
It would be needed to implement similar stuff when we should support
a capricious event that leaving and arriving frequently, or should support
bulk registration.
@mikioh

This comment has been minimized.

Copy link
Contributor Author

commented Apr 4, 2013

@mikioh

This comment has been minimized.

Copy link
Contributor Author

commented Apr 4, 2013

@minux

This comment has been minimized.

Copy link
Member

commented Apr 4, 2013

Comment 4:

I have NetBSD implementation almost ready, but need to merge changes in
CL 8264043.

Status changed to Accepted.

@mikioh

This comment has been minimized.

Copy link
Contributor Author

commented Apr 5, 2013

Comment 5:

Now CL 8264043 includes OpenBSD support.
@mikioh

This comment has been minimized.

Copy link
Contributor Author

commented May 20, 2013

Comment 6:

This issue was updated by revision c5732c8.

R=golang-dev, dvyukov
CC=golang-dev
https://golang.org/cl/8825043
@mikioh

This comment has been minimized.

Copy link
Contributor Author

commented May 22, 2013

Comment 7:

Labels changed: removed priority-later.

Status changed to Started.

@mikioh

This comment has been minimized.

Copy link
Contributor Author

commented Jul 24, 2013

Comment 8:

This issue was updated by revision 8f746af.

R=dvyukov, minux.ma
CC=golang-dev
https://golang.org/cl/11759044
@mikioh

This comment has been minimized.

Copy link
Contributor Author

commented Jul 28, 2013

Comment 9:

This issue was updated by revision e257cd8.

R=golang-dev, dave
CC=golang-dev
https://golang.org/cl/11979043
@mikioh

This comment has been minimized.

Copy link
Contributor Author

commented Jul 28, 2013

Comment 10:

This issue was updated by revision a64bea5.

R=golang-dev, dave
CC=golang-dev
https://golang.org/cl/11932044
@mikioh

This comment has been minimized.

Copy link
Contributor Author

commented Jul 29, 2013

Comment 11:

This issue was updated by revision 442e614.

R=golang-dev, fvbommel, dave
CC=golang-dev
https://golang.org/cl/11984043
@rsc

This comment has been minimized.

Copy link
Contributor

commented Jul 30, 2013

Comment 12:

What is left here?

Labels changed: added go1.2.

@rsc

This comment has been minimized.

Copy link
Contributor

commented Jul 30, 2013

Comment 13:

Labels changed: added feature.

@mikioh

This comment has been minimized.

Copy link
Contributor Author

commented Jul 31, 2013

Comment 14:

Owner changed to @mikioh.

@mikioh

This comment has been minimized.

Copy link
Contributor Author

commented Aug 3, 2013

Comment 15:

This issue was updated by revision 8a7def2.

R=golang-dev, dave, bradfitz
CC=golang-dev
https://golang.org/cl/12010043
@mikioh

This comment has been minimized.

Copy link
Contributor Author

commented Aug 6, 2013

Comment 16:

This issue was updated by revision 6a76bca.

R=dvyukov, alex.brainman, minux.ma
CC=golang-dev
https://golang.org/cl/8608044
@mikioh

This comment has been minimized.

Copy link
Contributor Author

commented Aug 6, 2013

Comment 17:

This issue was updated by revision b29d035.

R=golang-dev, dave, alex.brainman, dvyukov, remyoudompheng
CC=golang-dev
https://golang.org/cl/12023043
@mikioh

This comment has been minimized.

Copy link
Contributor Author

commented Aug 7, 2013

Comment 18:

@rsc, here is a summary of items.
Making it possible to run new runtime-integretaed network pollster on BSD variants,
specifically FreeBSD, NetBSD and OpenBSD, we need to work on the follwoing;
Runtime-1: adding kqueue, kevent assembly fragments
Runtime-2: dropping EV_RECEIPT support from network pollster on kqueue
Because NetBSD and OpenBSD don't implement it yet.
Runtime-3: activating runtime-integrated network pollster
Net-1: adding new socket control paths that satisfy the kqueue on BSD variants
Because unlike Darwin, kqueue on BSDs require sockets that have been called
syscall.Listen previously for receiving the notifcations of new incoming connection
arrivals on TCP, Unix passive stream connections.
Net-2: turning on runtime-integrated network pollster
@mikioh

This comment has been minimized.

Copy link
Contributor Author

commented Aug 7, 2013

Comment 19:

And progress of implementation.
Runtime-1: not yet completed but ready for freebsd/amd64,386 and openbsd/amd64,386
Reviewing minux's CLs that implement freebsd/arm and netbsd/amd64,386,arm remains.
revision 9d60132d7784, runtime: integrated network poller for freebsd/amd64,386,
openbsd/amd64,386
Runtime-2: done
revision acc121ea2d70, runtime: drop EV_RECEIPT support from network pollster on kqueue
Runtime-3: waiting for Net-1
It would be a very small patch.
Net-1: in progress
Preliminary CLs have been submitted. It will be ready for twiddling socket control paths
if once we agree about "how much we should change he existing code to satisfy the kqueue
on BSDs".
revision cfaef1dc8164, net: extend sockaddr interface to the all address families
revision be6c9de7b802, net: make UnixAddr implement sockaddr interface
revision 8c1cb8e761fb, net: document sockaddr interface
revision 0c05398daad8, net: reduce unnecessary syscall.Sockaddr conversions
revision 43e7b87397b6, net: separate pollster initialization from network file
descriptor allocation
revision 51d2970d9348, net: add dial, listenStream and listenDatagram methods to netFD 
// Note: I did a hasty commit, perhaps will revert it
Net-2: waiting for Net-1, Runtime-3
It would be a very small patch.
@mikioh

This comment has been minimized.

Copy link
Contributor Author

commented Aug 9, 2013

Comment 20:

This issue was updated by revision 554d47e.

R=dvyukov, bradfitz
CC=golang-dev
https://golang.org/cl/12663043
@mikioh

This comment has been minimized.

Copy link
Contributor Author

commented Aug 15, 2013

Comment 22:

This issue was updated by revision 5d5defc.

R=golang-dev, alex.brainman
CC=golang-dev
https://golang.org/cl/12730043
@mikioh

This comment has been minimized.

Copy link
Contributor Author

commented Aug 15, 2013

Comment 23:

This issue was closed by revision cb3b292.

Status changed to Fixed.

@dvyukov

This comment has been minimized.

Copy link
Member

commented Aug 15, 2013

Comment 24:

rock'n'roll
What's the story with freebsd,arm and netbsd?
They also use kqueue, can we switch them till 1.2?
@mikioh

This comment has been minimized.

Copy link
Contributor Author

commented Aug 15, 2013

Comment 25:

See issue #6146.
@mikioh

This comment has been minimized.

Copy link
Contributor Author

commented Aug 20, 2013

Comment 26:

This issue was updated by revision ed738ad.

Update issue #6146
R=golang-dev, dvyukov
CC=golang-dev
https://golang.org/cl/13112044

@mikioh mikioh added fixed labels Aug 20, 2013

@rsc rsc added this to the Go1.2 milestone Apr 14, 2015

@rsc rsc removed the go1.2 label Apr 14, 2015

@golang golang locked and limited conversation to collaborators Jun 24, 2016

This issue was closed.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
You can’t perform that action at this time.