Re: CentOS 7 as a guest VM

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



On Dec 3, 2019, at 9:18 AM, David G. Miller <dave@xxxxxxxxxxxxx> wrote:
> 
> On 12/3/19 8:46 AM, Jerry Geis wrote:
>> I am experiencing an issue that my process does not wake out of a select()
>> call when a single character is received in an input file descriptor when
>> running as a VMware guest.

You imply but don’t say that this doesn’t happen when the app is running on bare metal.  Is that the case?

>> Anyone ever experienced this ?

No, and I’ve been writing sockets-type code since the days when it wasn’t clear whether BSD sockets would win out over AT&T TLI/XTI/STREAMS.

>> once in a while that character is "delayed" getting to my input buffer.

That’s probably the Nagle algorithm:

    https://en.wikipedia.org/wiki/Nagle%27s_algorithm

It’s intentional.  You almost never want to disable it.

> Perl apps can either be line buffered or character buffered

I think that’s controlled by the kernel’s terminal driver code, not by Perl.  Perl is just giving you an alternate configuration to the underlying termios() or whatever call controls this.

Anyway, you have to go out of your way to get line-buffered sockets on Linux.  One way is to bind a socket to a pty, as ssh does, bringing the terminal I/O code into it again, but I doubt Jerry’s doing that.

I’d bet Jerry's app is just making assumptions about the way TCP works that just aren’t true.

Jerry, please show your sockets setup code and the skeletonized read loop.  I’m talking socket(), bind(), setsockopt(), etc.  I want to see every sockets call.  Your app logic you’re free to keep hidden away.
_______________________________________________
CentOS mailing list
CentOS@xxxxxxxxxx
https://lists.centos.org/mailman/listinfo/centos




[Index of Archives]     [CentOS]     [CentOS Announce]     [CentOS Development]     [CentOS ARM Devel]     [CentOS Docs]     [CentOS Virtualization]     [Carrier Grade Linux]     [Linux Media]     [Asterisk]     [DCCP]     [Netdev]     [Xorg]     [Linux USB]


  Powered by Linux