On 6 Jun 2015, at 15:49, Justin Cormack <[email protected]> wrote:
> 
> 
> On Jun 6, 2015 4:56 PM, "Anil Madhavapeddy" <[email protected] 
> <mailto:[email protected]>> wrote:
> >
> > I'm just testing out tuntap.1.3 for release on Linux, and am having some 
> > trouble getting it to work.  Just wanted to check if others are using it 
> > ok.  I've done:
> >
> >     $ sudo tunctl
> >     $ sudo ifconfig tap0 10.0.0.1 netmask 255.255.255.0 up
> >     $ sudo ./_build/test/nonblock_read.native tap0
> >     read: 0
> >     read: 0
> >     ...
> >
> > This results in a stream of 0 byte reads.
> >
> > If I change the Lwt_unix.of_unix_file_descr in mirage-net-unix to be 
> > blocking:true instead of blocking:false, then it works as expected on 
> > Linux, and all the tap networking is ok.  Tracing through the Lwt code 
> > shows that blocking:false should work, but for some reason the tap device 
> > on Linux is always readable and so EWOULDBLOCK never happens.
> >
> > Anyone else having this problem on Linux, or is it just me? I don't often 
> > use tap networking there, so I don't want to apply the above workaround 
> > without understanding it.
> 
> I had what sounds like the same problem with tap devices and rump kernel.
> 
> I haven't yet filed a bug but I think there is one... 0 length reads should 
> not happen. I am not sure if it changed in recent versions but I think it may 
> have. Planning to investigate. If you do the first open with nonblock it 
> seems to work but fcntl does not
> 
Tracked it down -- looks like a Linux 3.19 regression:
https://bugzilla.kernel.org/show_bug.cgi?id=96381 
<https://bugzilla.kernel.org/show_bug.cgi?id=96381>

-anil


_______________________________________________
MirageOS-devel mailing list
[email protected]
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

Reply via email to