News for hackers. Stuff that matters.
Re:Upstreaming multipath TCP by dooglius on Friday September 27, 2019 @05:25AM (#21089963)
A separate thread? I assume that's all the kernel would be doing anyway, no ring zero magic involved.
Re:Upstreaming multipath TCP by mehrdadn on Friday September 27, 2019 @05:27AM (#21089979)
A debugger stops every thread though?
Re:Upstreaming multipath TCP by dooglius on Friday September 27, 2019 @06:09AM (#21090204)
Fair point, I was more addressing the blocking-call concern. There are a number of ways you could get your debugger of choice to not halt a particular thread (this would admittedly require some extra work), but won't a typical browser have an application-level timeout that you'd hit anyway.
Re:Upstreaming multipath TCP by mehrdadn on Friday September 27, 2019 @06:15AM (#21090246)
Browser? I'm not talking about browsers, I'm talking about every other kind of application that tries to use a userland protocol, because that seems to be the direction network libraries are aiming to go. I have no idea how to tell most (all?) debuggers not to halt particular threads, but it sounds painful. And my point is, there are consequences like this that no one seems to care about at all, but that I would hope would've been addressed before seeing people jump on the ship.
Re:Upstreaming multipath TCP by beagle3 on Friday September 27, 2019 @06:17AM (#21090257)
TCP keep alive has a minimum of 2 hours or so. Debugging can live with that.

And debugger ruins everything; If the other side sends something larger than the local receive buffer it will usually disconnect after a while. as it will sense no one on the other end.

All the things that debugger can "ruin" should just be parametric - increase buffer sizes / keep alive times when debugging.

Also, there are more options than "kernel" and "each process for themselves" - you could have a "network/TCP daemon". QNX successfully does that for disk drivers and file system drivers - and likely network too. So does Minix.

It's just that historically, unix/linux/NT don't.

Re:Upstreaming multipath TCP by mehrdadn on Friday September 27, 2019 @06:35AM (#21090363)
> TCP keep alive has a minimum of 2 hours or so. Debugging can live with that.

If the "minimum" was 2 hours then e.g. MSDN wouldn't be recommending that it be configured to 5 minutes would it? https://docs.microsoft.com/en-us/previous-versions/windows/i...

> And debugger ruins everything; If the other side sends something larger than the local receive buffer it will usually disconnect after a while. as it will sense no one on the other end.

"Everything"? Well when data isn't being sent then the connection could live on as long as it's kept alive by the kernel, right? Whereas with a userland implementation even that possibility becomes difficult.

You seem really intent on making unfounded blanket claims to rebut my point... but I feel like there's some validity to the point I'm making? It's be more helpful to see if you can instead find parts of it that might have some truth to them.

> It's just that historically, unix/linux/NT don't.

Yeah, hence why this approach seems problematic...

Re:Upstreaming multipath TCP by namibj on Friday September 27, 2019 @07:22AM (#21090646)
Use Mozilla's rr. Record the offender, then debug offline.
Re:Upstreaming multipath TCP by mehrdadn on Friday September 27, 2019 @09:10AM (#21091526)