OpenVZ / Virtuozzo kernel development (devel@openvz.org)
 help / color / mirror / Atom feed
From: no-reply@sashiko.virtuozzo.com
To: Eva Kurchatova <eva.kurchatova@virtuozzo.com>, khorenko@virtuozzo.com
Cc: devel@openvz.org
Subject: Re: [Devel] [PATCH hci-8.1 v5 4/5] ms/timens: Remove dependency on the vDSO
Date: Wed, 21 Oct 2026 04:16:02 +0000	[thread overview]
Message-ID: <010701a15cac5e45-c0bbdeb0-cde1-42a5-8fca-4a4eee19e245-000000@eu-central-1.amazonses.com> (raw)
In-Reply-To: <20261021040939.2103947-5-eva.kurchatova@virtuozzo.com>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] timens: frozen_offsets never set when TIME_NS=y and GENERIC_GETTIMEOFDAY=n
--

commit 8205eb8956867db8592649aad1330d2fd6faffba
Author: Eva Kurchatova <eva.kurchatova@virtuozzo.com>

ms/timens: Remove dependency on the vDSO

This commit drops the "depends on GENERIC_GETTIMEOFDAY" line from
TIME_NS, so time namespaces can be enabled without the generic vDSO.
It adds a TIME_NS_VDSO symbol, and the vvar page handling and
timens_commit() are compiled only when that symbol is set.

Link: https://patch.msgid.link/20260326-vdso-timens-decoupling-v2-2-c82693a7775f@linutronix.de

> diff --git a/include/linux/time_namespace.h b/include/linux/time_namespace.h
> --- a/include/linux/time_namespace.h
> +++ b/include/linux/time_namespace.h

[ ... ]

> +#ifdef CONFIG_TIME_NS_VDSO
> +extern void timens_commit(struct task_struct *tsk, struct time_namespace *ns);
> +struct page *find_timens_vvar_page(struct vm_area_struct *vma);
> +#else /* !CONFIG_TIME_NS_VDSO */
> +static inline void timens_commit(struct task_struct *tsk, struct time_namespace *ns)
> +{
> +}

[Severity: Medium]
With TIME_NS=y and GENERIC_GETTIMEOFDAY=n, this empty timens_commit()
stub is what runs when a task joins a time namespace.  The only place
that sets the freeze flag is timens_set_vvar_page() in namespace_vdso.c:

    ns->frozen_offsets = true;

That function is reached only through timens_commit(), and
namespace_vdso.c is now built only under CONFIG_TIME_NS_VDSO.

As a result, frozen_offsets stays false after tasks have joined the
namespace.  The guard in proc_timens_set_offset() in namespace.c never
triggers on these configurations:

    if (time_ns->frozen_offsets) {
        err = -EACCES;
        goto out_unlock;
    }

Can this let the monotonic and boottime offsets be rewritten through
/proc/<pid>/timens_offsets after tasks have entered the namespace?

Readers such as timens_ktime_to_host() read ns->offsets without
timens_offset_lock.  Could they then see offsets that change while tasks
are running, or torn timespec64 values?

Should the freeze be done outside the vDSO-only path, for example from
the !CONFIG_TIME_NS_VDSO timens_commit() stub?

The only follow-up patch in the series (b20653c3) just adds
CONFIG_TIME_NS_VDSO=y to config.vz10.minimal and does not change this.
The upstream commit has the same behaviour.

-- 
Sashiko AI review · https://sashiko.vzint.dev/#/patchset/20261021040939.2103947-1-eva.kurchatova@virtuozzo.com?part=4

_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel

  reply	other threads:[~2026-10-21  4:17 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-21  4:08 [Devel] [PATCH hci-8.1 v5 0/5] timens: " Eva Kurchatova
2026-10-21  4:08 ` [Devel] [PATCH hci-8.1 v5 1/5] timens: make offset_lock private to namespace.c again Eva Kurchatova
2026-10-21  4:13   ` no-reply
2026-10-21  4:08 ` [Devel] [PATCH hci-8.1 v5 2/5] ms/vdso: Drop Kconfig GENERIC_VDSO_TIME_NS Eva Kurchatova
2026-10-21  4:14   ` no-reply
2026-10-21  4:26     ` Eva Kurchatova (Virtuozzo)
2026-10-21  4:08 ` [Devel] [PATCH hci-8.1 v5 3/5] ms/vdso/timens: Move functions to new file Eva Kurchatova
2026-10-21  4:15   ` no-reply
2026-10-21  4:08 ` [Devel] [PATCH hci-8.1 v5 4/5] ms/timens: Remove dependency on the vDSO Eva Kurchatova
2026-10-21  4:16   ` no-reply [this message]
2026-10-21  4:24     ` Eva Kurchatova (Virtuozzo)
2026-10-21  4:08 ` [Devel] [PATCH hci-8.1 v5 5/5] config: follow the TIME_NS Kconfig change in config.vz10.minimal Eva Kurchatova
2026-10-21  4:16   ` no-reply
2026-10-21  4:19 ` [Devel] [PATCH hci-8.1 v5 0/5] timens: Remove dependency on the vDSO Eva Kurchatova (Virtuozzo)
2026-10-21 12:29 ` Konstantin Khorenko

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=010701a15cac5e45-c0bbdeb0-cde1-42a5-8fca-4a4eee19e245-000000@eu-central-1.amazonses.com \
    --to=no-reply@sashiko.virtuozzo.com \
    --cc=devel@openvz.org \
    --cc=eva.kurchatova@virtuozzo.com \
    --cc=khorenko@virtuozzo.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