Received: by 2002:a25:d783:0:0:0:0:0 with SMTP id o125csp487851ybg; Thu, 19 Mar 2020 03:32:28 -0700 (PDT) X-Google-Smtp-Source: ADFU+vsqhLddl8d2QE0XJWcNS84ciORfEqnRBVKlucxKc5arrKAAriHiej2hsOalyNAUbYjf7JZc X-Received: by 2002:a9d:7b4d:: with SMTP id f13mr1785098oto.216.1584613947523; Thu, 19 Mar 2020 03:32:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1584613947; cv=none; d=google.com; s=arc-20160816; b=GApdJtSt39SYCkSakgJy3yv+ekZJBT7TXkaC60bS6W29Ez1QKmDyBDKEo/RFsw1tBb iZ8hcwE9CjwGVfO2SB4ORjJ+6uJThxq6JvjgQlFtriHe/MWDMDNaevLsoHXyGNnNM0iU PlDNO/amEZBCAUrTXLm+aAEk3k/mP8K8iSGSfA/tLl5V1a9JQu6O9f+cwEYoo1i4HrLH UxfUELCobGb9RIkNdDrvBJAVgF/jVRECTFJv4qms1BMOnKONIolEeJOuIJOogEZNXxGX MBJGaM8nRDcWGFhfPFLitFaruuyc/I/A2KdD9wlNHFCoRglYHdc1FqX7+fVA4zE8+/Z3 /LFg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date; bh=JDhBe4H87ElsEptWjF/aOMVvEM1cGm7Qmp1vFCoi8xQ=; b=n4+bHPBvcxoZGCkKRgg36dmbv/GPOUapHIQb6TNFOrv5lP82h7L1mVoYQ7nxLBox3g 9vn+4h0S35itpGxcSzp99cupznebrLN5S/FE3qCHRHL1Xuh+NzVSNCTYAemkhu/D8lTk yK/IFbR/vFi4KaD8LR4ZT7nwcp0eI1ESh8C3xcfruwz/om9nDJXVW+KVH4XI1oFJdiKr wIPXmDIfSzKxMS4UcA5sqJrOWoZHnd9B8ivkmQaGle5hPRGSkp34Vmb7Oz7A3waX4Q5S 7ck1xatMsO9Dm382mIwT1K8XgKLn/vQClJWMtvqriCB/7uVr1GRp77szRslTrXYgXGr2 c8OQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l143si825933oih.269.2020.03.19.03.32.08; Thu, 19 Mar 2020 03:32:27 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727016AbgCSKaN (ORCPT + 99 others); Thu, 19 Mar 2020 06:30:13 -0400 Received: from youngberry.canonical.com ([91.189.89.112]:51109 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726936AbgCSKaN (ORCPT ); Thu, 19 Mar 2020 06:30:13 -0400 Received: from ip5f5bf7ec.dynamic.kabel-deutschland.de ([95.91.247.236] helo=wittgenstein) by youngberry.canonical.com with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1jEsR2-00065s-3p; Thu, 19 Mar 2020 10:29:56 +0000 Date: Thu, 19 Mar 2020 11:29:55 +0100 From: Christian Brauner To: Arnd Bergmann Cc: Adrian Reber , Eric Biederman , Pavel Emelyanov , Oleg Nesterov , Dmitry Safonov <0x7f454c46@gmail.com>, Andrei Vagin , "linux-kernel@vger.kernel.org" , Mike Rapoport , Radostin Stoyanov , Michael Kerrisk , Cyrill Gorcunov , Thomas Gleixner , Aleksa Sarai , Linux API Subject: Re: clone3: allow creation of time namespace with offset Message-ID: <20200319102955.i7slokibkkysz6g6@wittgenstein> References: <20200317083043.226593-1-areber@redhat.com> <20200319081137.GC223854@dcbz.redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Mar 19, 2020 at 09:16:43AM +0100, Arnd Bergmann wrote: > On Thu, Mar 19, 2020 at 9:11 AM Adrian Reber wrote: > > > With Arnd's idea of only using nanoseconds, timens_offset would then > > contain something like this: > > > > struct timens_offset { > > __aligned_s64 monotonic_offset_ns; > > __aligned_s64 boottime_offset_ns; > > }; > > > > I kind of prefer adding boottime and monotonic directly to struct clone_args > > > > __aligned_u64 tls; > > __aligned_u64 set_tid; > > __aligned_u64 set_tid_size; > > + __aligned_s64 monotonic_offset_ns; > > + __aligned_s64 boottime_offset_ns; > > }; > > I would also prefer the second approach using two 64-bit integers > instead of a pointer, as it keeps the interface simpler to implement > and simpler to interpret by other tools. Why I don't like has two reasons. There's the scenario where we have added new extensions after the new boottime member and then we introduce another offset. Then you'd be looking at: __aligned_u64 tls; __aligned_u64 set_tid; __aligned_u64 set_tid_size; + __aligned_s64 monotonic_offset_ns; + __aligned_s64 boottime_offset_ns; __aligned_s64 something_1 __aligned_s64 anything_2 + __aligned_s64 sometime_offset_ns which bothers me just by looking at it. That's in addition to adding two new members to the struct when most people will never set CLONE_NEWTIME. We'll also likely have more features in the future that will want to pass down more info than we want to directly expose in struct clone_args, e.g. for a long time I have been thinking about adding a struct for CLONE_NEWUSER that allows you to specify the id mappings you want the new user namespace to get. We surely don't want to force all new info into the uppermost struct. So I'm not convinced we should here. Christian