All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anton Ivanov <anton.ivanov@cambridgegreys.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>,
	linux-um <linux-um@lists.infradead.org>
Subject: Re: 64 bit time regression in recvmmsg()
Date: Thu, 5 Dec 2019 09:41:49 +0000	[thread overview]
Message-ID: <549efee7-2cb4-79b4-7f7f-a3fa493c4e85@cambridgegreys.com> (raw)
In-Reply-To: <CAK8P3a2A13pfvRRvpamx1woUz0CZTR3gvt_P1-ERqH+QtRATig@mail.gmail.com>



On 04/12/2019 21:08, Arnd Bergmann wrote:
> On Fri, Nov 29, 2019 at 5:34 PM Anton Ivanov
> <anton.ivanov@cambridgegreys.com> wrote:
>>
>>
>>
>> On 29/11/2019 15:17, Arnd Bergmann wrote:
>>> On Fri, Nov 29, 2019 at 4:05 PM Geert Uytterhoeven <geert@linux-m68k.org> wrote:
>>>> On Fri, Nov 29, 2019 at 3:34 PM Anton Ivanov
>>>> <anton.ivanov@cambridgegreys.com> wrote:
>>>>> Unfortunately, it looks like the recent year 2038 have broken
>>>>> compatibility for one particular syscall interface we use - recvmmsg.
>>>>>
>>>>> The host now occasionally returns -22 (EINVAL) and the only way I see
>>>>> for this to happen looking at the source is if when it gets something
>>>>> bogus as a timeout.
>>>>>
>>>>> I think I have eliminated all other possible sources for this error.
>>>>>
>>>>> The picture can be observed when using a 64 bit host 5.2 kernel on a
>>>>> Debian 64 bit buster userspace (glibc compiled vs 4.19 headers).
>>>>>
>>>>> The code as it is written at present retries and by sheer luck and
>>>>> perseverance it manages to work, but this needs to be fixed.
>>>
>>> I only see a single call to recvmmsg() in arch/um, in uml_vector_recvmmsg(),
>>> and this passes a NULL timeout pointer, is this the one that broke or
>>> should I be looking at something else?
>>>
>>> Do I understand you right that the regression is on a pure 64-bit system?
>>
>> Yes.
>>
>> 64 bit host, Debian Buster with the stock 4.19 replaced by a 5.2.17
>> kernel upgrade, 5.2 and 5.3 64 bit UML also running Debian Buster inside.
>>
>> It sporadically produces -EINVAL (-22) from the recvmmsg.
>>
>> I went through the allocation and deallocation of the actual mmsg
>> several times to ensure it is not that.
>>
>> IMHO it is the timespec conversion somewhere, but I cannot pinpoint the
>> actual cause.
>>
> 
> I've looked at the changes again as well now without finding anything
> suspicious. The only commit of mine that significantly changes recvmmsg
> is e11d4284e2f4 ("y2038: socket: Add compat_sys_recvmmsg_time64").
> I tried reverting it on top of  5.2.17, but that causes a lot of conflicts.
> 
> The best suggestion I still have would be to check out the kernel before
> and after this commit, to see if it is the root cause. This one was part
> of the linux-5.0 merge window, so right in the middle of the range
> you have identified.
> 
>       Arnd
> 


I am still chasing this - there is some host regression in play too.

Once I have a better understanding on what is going on I will post more 
info.

Brgds,


-- 
Anton R. Ivanov
Cambridgegreys Limited. Registered in England. Company Number 10273661
https://www.cambridgegreys.com/


  reply	other threads:[~2019-12-05  9:41 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-29 14:34 64 bit time regression in recvmmsg() Anton Ivanov
2019-11-29 15:05 ` Geert Uytterhoeven
2019-11-29 15:17   ` Arnd Bergmann
2019-11-29 16:34     ` Anton Ivanov
2019-12-04 21:08       ` Arnd Bergmann
2019-12-05  9:41         ` Anton Ivanov [this message]
2019-12-06 17:49       ` Anton Ivanov
2019-12-06 20:06         ` Arnd Bergmann
2019-12-09  9:19           ` Invalid GSO - from 4.x (TBA) to 5.5-rc1. Was: " Anton Ivanov
2019-12-09  9:19             ` Anton Ivanov
2019-12-09 10:05             ` Anton Ivanov
2019-12-09 10:05               ` Anton Ivanov

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=549efee7-2cb4-79b4-7f7f-a3fa493c4e85@cambridgegreys.com \
    --to=anton.ivanov@cambridgegreys.com \
    --cc=arnd@arndb.de \
    --cc=geert@linux-m68k.org \
    --cc=linux-um@lists.infradead.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.