public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: Carlos O'Donell <carlos@redhat.com>
To: Thomas Gleixner <tglx@linutronix.de>,
	Zack Weinberg <zackw@panix.com>, Cyril Hrubis <chrubis@suse.cz>
Cc: Dmitry Safonov <dima@arista.com>, Andrei Vagin <avagin@gmail.com>,
	GNU C Library <libc-alpha@sourceware.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [Y2038][time namespaces] Question regarding CLOCK_REALTIME support plans in Linux time namespaces
Date: Fri, 30 Oct 2020 12:58:51 -0400	[thread overview]
Message-ID: <72bbb207-b041-7710-98ad-b08579fe17e4@redhat.com> (raw)
In-Reply-To: <87sg9vn40t.fsf@nanos.tec.linutronix.de>

On 10/30/20 11:10 AM, Thomas Gleixner via Libc-alpha wrote:
> On Fri, Oct 30 2020 at 10:02, Zack Weinberg wrote:
>> On Fri, Oct 30, 2020 at 9:57 AM Cyril Hrubis <chrubis@suse.cz> wrote:
>>>> According to patch description [1] and time_namespaces documentation
>>>> [2] the CLOCK_REALTIME is not supported (for now?) to avoid complexity
>>>> and overhead in the kernel.
>> ...
>>>> To be more specific - [if this were supported] it would be possible to modify time after time_t
>>>> 32 bit overflow (i.e. Y2038 bug) on the process running Y2038
>>>> regression tests on the host system (64 bit one). By using Linux time
>>>> namespaces the system time will not be affected in any way.
>>>
>>> And what's exactly wrong with moving the system time forward for a
>>> duration of the test?
>>
>> Interference with other processes on the same computer?  Some of us
>> *do* like to run the glibc test suite on computers not entirely
>> devoted to glibc CI.
> 
> That's what virtual machines are for.

Certainly, that is always an option, just like real hardware.

However, every requirement we add to testing reduces the number of
times that developer will run the test on their system and potentially
catch a problem during development. Yes, CI helps, but "make check"
gives more coverage. More kernel variants tested in all downstream rpm
%check builds or developer systems. Just like kernel self tests help
today.

glibc uses namespaces in "make check" to increase the number of userspace
and kernel features we can test immediately and easily on developer
*or* distribution build systems.

So the natural extension is to further isolate the testing namespace
using the time namespace to test and verify y2038. If we can't use
namespaces then we'll have to move the tests out to the less
frequently run scripts we use for cross-target toolchain testing,
and so we'll see a 100x drop in coverage.

I expect that more requests for further time isolation will happen
given the utility of this in containers.

If we have to use qemu today then that's where we're at, but again
I expect our use case is representative of more than just glibc.

Does checkpointing work robustly when userspace APIS use 
CLOCK_REALTIME (directly or indirectly) in the container?

-- 
Cheers,
Carlos.


  reply	other threads:[~2020-10-30 16:58 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-30 10:02 Lukasz Majewski
2020-10-30 13:08 ` Thomas Gleixner
2020-10-30 15:43   ` Lukasz Majewski
2020-10-30 13:58 ` Cyril Hrubis
2020-10-30 14:02   ` Zack Weinberg
2020-10-30 15:10     ` Thomas Gleixner
2020-10-30 16:58       ` Carlos O'Donell [this message]
2020-10-30 20:06         ` Thomas Gleixner
2020-10-30 22:19           ` Carlos O'Donell
2020-10-31  1:38             ` Thomas Gleixner
2020-11-03 12:43               ` Cyril Hrubis
2020-11-05 17:25               ` Carlos O'Donell
2020-11-07  0:47                 ` Thomas Gleixner
2020-11-19 18:37                   ` Carlos O'Donell
2020-11-20  0:14                     ` Thomas Gleixner
2020-11-25 17:06                       ` Petr Špaček
2020-11-25 20:37                       ` Carlos O'Donell
2020-11-26  0:17                         ` Thomas Gleixner
2020-11-26  3:05                           ` Carlos O'Donell
2020-11-26  8:21                             ` Andreas Schwab
2020-11-19 12:08             ` Petr Špaček
2020-11-14 10:25 ` Pavel Machek

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=72bbb207-b041-7710-98ad-b08579fe17e4@redhat.com \
    --to=carlos@redhat.com \
    --cc=avagin@gmail.com \
    --cc=chrubis@suse.cz \
    --cc=dima@arista.com \
    --cc=libc-alpha@sourceware.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tglx@linutronix.de \
    --cc=zackw@panix.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).