From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 444EEC433E0 for ; Wed, 22 Jul 2020 18:16:39 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 12CDC20787 for ; Wed, 22 Jul 2020 18:16:39 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="qAoicL2u" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 12CDC20787 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References:Message-ID: Subject:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=p+rDEVysezgV7P8/TiKQ1sjrNeouDysNSLYMm8oaPPQ=; b=qAoicL2utd+tkZZ7doCkMhnLp uPVdzLmVshZc9JWOOhslw+UfQvceR1a8dCiWs1VBgLnBjM21VdIoVRc1fet14AIzxticQdvG/kmcT Mmb9sUjCW7hiKUiUAJ220SiFf17UyqDM38Qq3jfdXDqc5ZOgilBltcXn1zl6wLe7uBxCWs5yPxxx7 X9nt8aF7fK8nWcUorl/mR4BE7D7C3uf6vlstPkvO8h3/zxC73km0GqlRekrLnfeEE7Wlwez8Lf/t4 67si7dRPo4Hsh6LAjins9DNyIjMYG2e+emBEdzOgw1qv5UjAeeAt9pOz2tdCIyTtrHTjMCRtF0AXC yILRi+lcg==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jyJGs-0007g7-Ig; Wed, 22 Jul 2020 18:15:14 +0000 Received: from mail.kernel.org ([198.145.29.99]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jyJGp-0007em-Nm for linux-arm-kernel@lists.infradead.org; Wed, 22 Jul 2020 18:15:12 +0000 Received: from gaia (unknown [95.146.230.158]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 4E6FF20787; Wed, 22 Jul 2020 18:15:09 +0000 (UTC) Date: Wed, 22 Jul 2020 19:15:06 +0100 From: Catalin Marinas To: Andrei Vagin Subject: Re: [PATCH v5 0/6] arm64: add the time namespace support Message-ID: <20200722181506.GA4517@gaia> References: <20200624083321.144975-1-avagin@gmail.com> <20200705064055.GA28894@gmail.com> <20200714015743.GA843937@gmail.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20200714015743.GA843937@gmail.com> User-Agent: Mutt/1.10.1 (2018-07-13) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200722_141511_868441_9DB1F0D8 X-CRM114-Status: GOOD ( 29.00 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , Dmitry Safonov , linux-kernel@vger.kernel.org, Thomas Gleixner , Vincenzo Frascino , Will Deacon , Christian Brauner , linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Mon, Jul 13, 2020 at 06:57:43PM -0700, Andrei Vagin wrote: > On Sat, Jul 04, 2020 at 11:40:55PM -0700, Andrei Vagin wrote: > > On Wed, Jun 24, 2020 at 01:33:15AM -0700, Andrei Vagin wrote: > > > Allocate the time namespace page among VVAR pages and add the logic > > > to handle faults on VVAR properly. > > > > > > If a task belongs to a time namespace then the VVAR page which contains > > > the system wide VDSO data is replaced with a namespace specific page > > > which has the same layout as the VVAR page. That page has vdso_data->seq > > > set to 1 to enforce the slow path and vdso_data->clock_mode set to > > > VCLOCK_TIMENS to enforce the time namespace handling path. > > > > > > The extra check in the case that vdso_data->seq is odd, e.g. a concurrent > > > update of the VDSO data is in progress, is not really affecting regular > > > tasks which are not part of a time namespace as the task is spin waiting > > > for the update to finish and vdso_data->seq to become even again. > > > > > > If a time namespace task hits that code path, it invokes the corresponding > > > time getter function which retrieves the real VVAR page, reads host time > > > and then adds the offset for the requested clock which is stored in the > > > special VVAR page. > > > > > > > > v2: Code cleanups suggested by Vincenzo. > > > v3: add a comment in __arch_get_timens_vdso_data. > > > v4: - fix an issue reported by the lkp robot. > > > - vvar has the same size with/without CONFIG_TIME_NAMESPACE, but the > > > timens page isn't allocated on !CONFIG_TIME_NAMESPACE. This > > > simplifies criu/vdso migration between different kernel configs. > > > v5: - Code cleanups suggested by Mark Rutland. > > > - In vdso_join_timens, mmap_write_lock is downgraded to > > > mmap_read_lock. The VMA list isn't changed there, zap_page_range > > > doesn't require mmap_write_lock. > > > > > > Reviewed-by: Vincenzo Frascino > > > Reviewed-by: Dmitry Safonov > > > > Hello Will and Catalin, > > > > Have you had a chance to look at this patch set? I think it is ready to be > > merged. Let me know if you have any questions. > > *friendly ping* > > If I am doing something wrong, let me know. Not really, just haven't got around to looking into it. Mark Rutland raised a concern (in private) about the safety of multithreaded apps but I think you already replied that timens_install() checks for this already [1]. Maybe a similar atomicity issue to the one raised by Mark but for single-threaded processes: the thread is executing vdso code, gets interrupted and a signal handler invokes setns(). Would resuming the execution in the vdso code on sigreturn cause any issues? [1] https://lore.kernel.org/linux-arm-kernel/d16b5cd1-bdb1-5667-fbda-c622cc795389@arista.com/ -- Catalin _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel