From: swivel@shells.gnugeneration.com
To: David Miller <davem@davemloft.net>
Cc: alan@lxorguk.ukuu.org.uk, linux-kernel@vger.kernel.org
Subject: Re: Honoring SO_RCVLOWAT in proto_ops.poll methods
Date: Sun, 19 Oct 2008 22:58:19 -0500 [thread overview]
Message-ID: <20081020035819.GG2811@fc6222126.aspadmin.net> (raw)
In-Reply-To: <20081013.025816.197282812.davem@davemloft.net>
On Mon, Oct 13, 2008 at 02:58:16AM -0700, David Miller wrote:
> From: swivel@shells.gnugeneration.com
> Date: Mon, 13 Oct 2008 03:32:14 -0500
>
> > I'm using the pseudo-blocking recv() behavior achieved with SO_RCVTIMEO.
> > Thus my app expects recv() to block until SO_RCVLOWAT is met or SO_RCVTIMEO
> > expired.
>
> But if you poll() properly, you'll never call recv() unless the amount
> of bytes you want are there.
>
> And since I fixed poll()'s handling of SO_RCVLOWAT it should mostly
> work.
The app already has a kludge in place to work around the current kernel
with broken poll() and recv() with regards to SO_RCVLOWAT.
It's less than ideal but 'mostly works', so I'm already at that point...
Doesn't really make sense to me to rewrite the kludge to depend on a
very modern kernel without even having it be able to use recv()
properly.
I just hope we can have recv() block with MSG_PEEK when SO_RCVLOWAT is
>1 in the near future. My goal was next time I get around to doing a
dist-upgrade the new kernel would have both poll and recv fixed and I
could disable the kludge.
>From what I can see the recv() MSG_PEEK fix is trivial anyways, why not
fix it?
Thanks,
Vito Caputo
next prev parent reply other threads:[~2008-10-20 3:58 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-20 21:42 Honoring SO_RCVLOWAT in proto_ops.poll methods lkml
2008-09-20 22:21 ` David Miller
2008-09-20 23:00 ` lkml
2008-09-21 9:24 ` lkml
2008-09-21 14:18 ` Alan Cox
[not found] ` <20080921145134.GT2761@fc6222126.aspadmin.net>
2008-09-21 20:13 ` Alan Cox
2008-09-21 22:09 ` lkml
2008-10-05 20:27 ` David Miller
2008-10-05 21:45 ` swivel
2008-10-05 22:30 ` David Miller
2008-10-06 5:17 ` lkml
2008-10-06 17:18 ` David Miller
2008-10-06 17:45 ` David Miller
2008-10-13 7:34 ` David Miller
2008-10-13 8:32 ` swivel
2008-10-13 9:58 ` David Miller
2008-10-20 3:58 ` swivel [this message]
2008-10-20 4:25 ` David Miller
2008-11-05 11:36 ` David Miller
2008-09-22 12:15 ` David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20081020035819.GG2811@fc6222126.aspadmin.net \
--to=swivel@shells.gnugeneration.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=davem@davemloft.net \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.