Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp537435rwd; Wed, 31 May 2023 01:45:20 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6lxxRgt+hvDSlvAk99M/D11KIsRLUCEPI9LYrg5DZ2vYu8UEIV9ZS8kONT3cs/0x4hFz0r X-Received: by 2002:a05:6a20:4423:b0:106:92a:37ae with SMTP id ce35-20020a056a20442300b00106092a37aemr12230163pzb.30.1685522720603; Wed, 31 May 2023 01:45:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1685522720; cv=none; d=google.com; s=arc-20160816; b=uMIARx3Y/UzdNRUnDLnIWHV6/k40bc4z6n/zpxu0UilTyUo06mtaYGzaZ01juDdRen 6EKPvqhpp7YloNcwCRNNP5lWX8KBRSwCAQ0W52a6vBsAgc7KMK8NArvers5IbgoomzkT seSJapBjzZhQsNrtxzA9EdIjQytbqWv9Zv9U/sqXjI9IKstAnEMwZI7/JNU+NlFoshwu z3CnXXTIhiUnN0+xo2F53zmSCIzPGNrcq5mVDtXIfS4OcysESsOnJEAA66OTKTR8CGN9 J19NZpBeKxCfVxv3ZioCmOOcJOoEKMzA95VU6A7aVhpe/UQiTPYJmSYDkFH3+0VRMZ0o Y8DQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to :mime-version:user-agent:date:message-id:from:cc:references:to :subject; bh=Yxio94kHgvsjxCZnwr0KoEF9TAeeLh8QV/KjKZ9BzHw=; b=Q8/gHYmjuI9RZ34JtZnNzLu3cag+ewZyQDsUupn3IZ5pV4nJIEGbvRvq2HhTt0/YLD UB1bpVSGBh6ElTKUF6ffM3fWuj8PKs9mKDPjWrKDG31GpWYn1B6yWavZisHObM5QXH4Z QikqoIlWliQjrmKyxhSvkQf2YzNckg5zXjEqXEKoP9lNAhei3GOqS7+hzG1qCeqqLPYl Iz/kRm664FNWphoMaceIzDd3rh2iYvqI7vCSXSULXmLF6ADQDYxclE5w4n+zNUe6bnmk s2hpBVRqCfRYEwAyYrH6TMtgUKHYAAu7prmIrdJEXaRo0OOK5LHuu7bLP+mtZlR3ubCU gVIw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f23-20020a633817000000b0053f0cdab81esi607708pga.357.2023.05.31.01.45.00; Wed, 31 May 2023 01:45:20 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234673AbjEaIem (ORCPT + 99 others); Wed, 31 May 2023 04:34:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53686 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234539AbjEaIeL (ORCPT ); Wed, 31 May 2023 04:34:11 -0400 Received: from mail.loongson.cn (mail.loongson.cn [114.242.206.163]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 5347111F for ; Wed, 31 May 2023 01:34:09 -0700 (PDT) Received: from loongson.cn (unknown [192.168.100.1]) by gateway (Coremail) with SMTP id _____8Bx7OqABndkd+cCAA--.2081S3; Wed, 31 May 2023 16:34:08 +0800 (CST) Received: from [0.0.0.0] (unknown [192.168.100.1]) by localhost.localdomain (Coremail) with SMTP id AQAAf8BxGLZ+BndkMheCAA--.14780S3; Wed, 31 May 2023 16:34:07 +0800 (CST) Subject: Re: [PATCH v3] LoongArch: Add support to clone a time namespace To: Tiezhu Yang References: <1685519761-20425-1-git-send-email-yangtiezhu@loongson.cn> Cc: Huacai Chen , WANG Xuerui , Christian Brauner , Andy Lutomirski , Thomas Gleixner , Vincenzo Frascino , loongarch@lists.linux.dev, linux-kernel@vger.kernel.org, loongson-kernel@lists.loongnix.cn From: Youling Tang Message-ID: <526b7cdc-9d10-d213-4e98-10973483b4cd@loongson.cn> Date: Wed, 31 May 2023 16:34:06 +0800 User-Agent: Mozilla/5.0 (X11; Linux mips64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: <1685519761-20425-1-git-send-email-yangtiezhu@loongson.cn> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-CM-TRANSID: AQAAf8BxGLZ+BndkMheCAA--.14780S3 X-CM-SenderInfo: 5wdqw5prxox03j6o00pqjv00gofq/ X-Coremail-Antispam: 1Uk129KBjvJXoW7KF47CFWkAFyrJw4kGrWrAFb_yoW8CF4Dpr s3Ars2kr4UGr1fWF1rJr13uwnrJan7Wr1YgF45trWxArnrAryUWr1DKrn5GFWUX3yUAry8 ur1kZw4vvw1kJrUanT9S1TB71UUUUj7qnTZGkaVYY2UrUUUUj1kv1TuYvTs0mT0YCTnIWj qI5I8CrVACY4xI64kE6c02F40Ex7xfYxn0WfASr-VFAUDa7-sFnT9fnUUIcSsGvfJTRUUU bDAYFVCjjxCrM7AC8VAFwI0_Jr0_Gr1l1xkIjI8I6I8E6xAIw20EY4v20xvaj40_Wr0E3s 1l1IIY67AEw4v_Jrv_JF1l8cAvFVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xv wVC0I7IYx2IY67AKxVW5JVW7JwA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8JVWxJwA2z4 x0Y4vEx4A2jsIE14v26F4UJVW0owA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_Cr1j6rxdM2kK e7AKxVWUAVWUtwAS0I0E0xvYzxvE52x082IY62kv0487Mc804VCY07AIYIkI8VC2zVCFFI 0UMc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0I7IYx2IY67AKxVWUAVWUtwAv7VC2z280 aVAFwI0_Gr0_Cr1lOx8S6xCaFVCjc4AY6r1j6r4UM4x0Y48IcVAKI48JMxk0xIA0c2IEe2 xFo4CEbIxvr21lc7CjxVAaw2AFwI0_JF0_Jw1l42xK82IYc2Ij64vIr41l4I8I3I0E4IkC 6x0Yz7v_Jr0_Gr1l4IxYO2xFxVAFwI0_JF0_Jw1lx2IqxVAqx4xG67AKxVWUJVWUGwC20s 026x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r1q6r43MIIYrxkI7VAKI48JMIIF 0xvE2Ix0cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7IYx2IY6xkF7I0E14v26r1j6r4UMIIF0x vE42xK8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVWUJVW8JwCI42IY6I8E87Iv 6xkF7I0E14v26r1j6r4UYxBIdaVFxhVjvjDU0xZFpf9x07jFApnUUUUU= X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,NICE_REPLY_A, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, Tiezhu On 05/31/2023 03:56 PM, Tiezhu Yang wrote: /* snip */ > diff --git a/arch/loongarch/include/asm/vdso/vdso.h b/arch/loongarch/include/asm/vdso/vdso.h > index 3b55d32..fa6049e 100644 > --- a/arch/loongarch/include/asm/vdso/vdso.h > +++ b/arch/loongarch/include/asm/vdso/vdso.h > @@ -16,10 +16,31 @@ struct vdso_pcpu_data { > > struct loongarch_vdso_data { > struct vdso_pcpu_data pdata[NR_CPUS]; > - struct vdso_data data[CS_BASES]; /* Arch-independent data */ > }; > > -#define VDSO_DATA_SIZE PAGE_ALIGN(sizeof(struct loongarch_vdso_data)) > +/* > + * The layout of vvar: > + * > + * high > + * +---------------------+--------------------------+ > + * | loongarch vdso data | LOONGARCH_VDSO_DATA_SIZE | > + * +---------------------+--------------------------+ > + * | timens vdso data | PAGE_SIZE | > + * +---------------------+--------------------------+ > + * | generic vdso data | PAGE_SIZE | > + * +---------------------+--------------------------+ > + * low > + */ > +#define LOONGARCH_VDSO_DATA_SIZE PAGE_ALIGN(sizeof(struct loongarch_vdso_data)) > +#define LOONGARCH_VDSO_DATA_PAGES (LOONGARCH_VDSO_DATA_SIZE >> PAGE_SHIFT) > +#define VVAR_SIZE (VVAR_LOONGARCH_PAGES_START * PAGE_SIZE + LOONGARCH_VDSO_DATA_SIZE) > + > +enum vvar_pages { > + VVAR_GENERIC_PAGE_OFFSET, > + VVAR_TIMENS_PAGE_OFFSET, > + VVAR_LOONGARCH_PAGES_START, > + VVAR_LOONGARCH_PAGES_END = VVAR_LOONGARCH_PAGES_START + LOONGARCH_VDSO_DATA_PAGES - 1, > +}; It can also be changed as follows, enum vvar_pages { VVAR_GENERIC_PAGE_OFFSET, VVAR_TIMENS_PAGE_OFFSET, VVAR_LOONGARCH_PAGES_START, VVAR_LOONGARCH_PAGES_END = VVAR_LOONGARCH_PAGES_START + LOONGARCH_VDSO_DATA_PAGES - 1, VVAR_NR_PAGES, }; #define VVAR_SIZE (VVAR_NR_PAGES << PAGE_SHIFT) Which do you think is better? Youling.