[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20140523.150055.2214666905697701415.davem@davemloft.net>
Date: Fri, 23 May 2014 15:00:55 -0400 (EDT)
From: David Miller <davem@...emloft.net>
To: acme@...nel.org
Cc: mtk.manpages@...il.com, linux-kernel@...r.kernel.org,
linux-man@...r.kernel.org, netdev@...r.kernel.org,
neleai@...nam.cz, caitlin.bestler@...il.com, nhorman@...driver.com,
eliedebrauwer@...il.com, steve@...gwyn.com,
remi.denis-courmont@...ia.com, paul@...l-moore.com,
chris.friesen@...driver.com
Subject: Re: [PATCH/RFC] Re: recvmmsg() timeout behavior strangeness
[RESEND]
From: Arnaldo Carvalho de Melo <acme@...nel.org>
Date: Wed, 21 May 2014 18:05:35 -0300
> But after thinking a bit more, looks like we need to do that, please
> take a look at the attached patch to see if it addresses the problem.
>
> Mostly it adds a new timeop to the per protocol recvmsg()
> implementations, that, if not NULL, should be used instead of
> SO_RCVTIMEO.
>
> since the underlying recvmsg implementations already check that timeout,
> return what is remaining, that will then be used in subsequent recvmsg
> calls, at the end we just convert it back to timespec format.
>
> In most cases it is just passed to skb_recv_datagram, that will check
> the pointer, use it and update if not NULL.
>
> Should have no problems, but I only did a boot with a system with this
> patch applied, no problems noticed on a normal desktop session, ssh,
> etc.
This looks fine to me, but I have a small request:
+ return noblock ? 0 : timeop ? *timeop : sk->sk_rcvtimeo;
I keep forgetting which way these expressions associate, so if you could
parenthesize the innermost ?: I'd appreciate it. :)
Thanks!
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists