Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp557630yba; Wed, 3 Apr 2019 14:22:23 -0700 (PDT) X-Google-Smtp-Source: APXvYqz7rKnReMk+aKcGPrEKl8eTGEhKUgTzUsiZ2sqBIOpPX2pv9l34HtcPD8gaLzeSg9Rsog5N X-Received: by 2002:a63:54b:: with SMTP id 72mr1827419pgf.323.1554326543783; Wed, 03 Apr 2019 14:22:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554326543; cv=none; d=google.com; s=arc-20160816; b=y3QSiFSeHaxA+kvG6VtKni+E2ESQu99YDuiJI/5vxIKIiXiuilE+oBdX+CZO5CAE/j wnADQ15vQ3fFAA7h18kjrX7qm2Z7z8Mlf381KWpzWHWBlE5ob5zKnlyw8wbSJjDUBJB9 IAilgxhfoSYIyioDIS1jRJPBFSxpODWhFu4OkJtW2VwuhjxO9rw+HTFi/IxNX7vMB08b bH9yErLSr3iScX7Shd5VHjb5RylTytcAHCXrkWjkffs/ghkrTrzMh1uZZbUUEJsOjVxD nsACWWvXwYoNZPY0PaIZBEp9e++ALJzzdVCMPq200vE4wbR5zo5NEMAA9+jzVld17SPF RF0Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature:dkim-signature; bh=Jby8yi6XtGo+Fp5Ers69YhaBfux3eIt01Ju9PJJZVTw=; b=Rq+mdmuDw/QeWvRxv7jgcpqHjrounRY3iuHZAAjIV6Atb5jvDMyMJt8OBNxBoha4mz AaU4xg6jdrkzAlvzkHGGC2bgDiut0uw5rsI/tFZXfjFOm2+bspCLsPJgaU2cnPCxK1wN fl571KXm2P3+PC1O8x6zJB8EmkehcRs9YbQTdMgnO7MwjzCfcMvjz7jTlO15rQY4cdmR 17u1P4nqg2d4AzPIFkTCty29eNKc6Ujmei8rLYR7oGwWOZtv7hRuHwrebmv65/ayamkU vT+eQyFICrYUnTiUzcjLz5zdt1HP0oIsL2ykhIIONhgT3/ECo8Fsyemn7cuuxshhWRxl Bcjg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@tobin.cc header.s=fm2 header.b=aXnTnzvR; dkim=pass header.i=@messagingengine.com header.s=fm2 header.b=Ov872Nzw; 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 f35si4329954plh.433.2019.04.03.14.22.08; Wed, 03 Apr 2019 14:22:23 -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; dkim=pass header.i=@tobin.cc header.s=fm2 header.b=aXnTnzvR; dkim=pass header.i=@messagingengine.com header.s=fm2 header.b=Ov872Nzw; 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 S1726477AbfDCVT6 (ORCPT + 99 others); Wed, 3 Apr 2019 17:19:58 -0400 Received: from out4-smtp.messagingengine.com ([66.111.4.28]:45189 "EHLO out4-smtp.messagingengine.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726064AbfDCVT6 (ORCPT ); Wed, 3 Apr 2019 17:19:58 -0400 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id 101FA21A84; Wed, 3 Apr 2019 17:19:57 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute5.internal (MEProxy); Wed, 03 Apr 2019 17:19:57 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tobin.cc; h=date :from:to:cc:subject:message-id:references:mime-version :content-type:in-reply-to; s=fm2; bh=Jby8yi6XtGo+Fp5Ers69YhaBfux 3eIt01Ju9PJJZVTw=; b=aXnTnzvRemKYQDugVcBQFMBidMbrHuWIp28Zo6aK7cS 6JTYrXR8OOLoJtGXHKOg5SjHLQ1TcGYfZ2Tor2ZfNI6xOQHDbuw3JE/MXxJ+kVoq LL8tQtY+pj1DkEh49+a7Na1vtU5zBbVvKt27bpwO/BYYT722J7HqnFf8eFg+GnhD LPNipeOXXEfjSGzFYzke/rFm3lO706Xupm35W7xSQJcd9Fbgz2MBQ4JZab4tNRAl dovGvwFuS/2UZfUJ67LwJCU0a+51DT0W+qwJss/0DabzS0uy5O/L8RY0IaUs3ugq SZC6jsHSR2/8qLb6SLCJB69ySkEN9GzEyXOIhYWa+Zg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=Jby8yi 6XtGo+Fp5Ers69YhaBfux3eIt01Ju9PJJZVTw=; b=Ov872Nzw1Or51P1ZU2Z50O N53CmnY1UAeQeQIa24Z85+5yyQZLsXAMVofaHS5OeXEwbYo2N0LI8JtJEH0UM24Z SpUdvDE5FZium9lDrzbWmprnZEfmY9s1FQssikf06j/bSqFQGzK53Roi938kQQlt d7Fo9PjPW/Ds4KR2U/Ah/MHauqJEX7dat3R7SUowXbjOxORftx1xNH3GOTJe/qcR B8DMcYSsozJHsuVqwo2C5H+s8y7mNyf21a7rMcld65FODI/cQsuwpJRDlHB/VQB0 F/fFUnO/HswtSHZlAHro5vESLBhVPTTDXTG2q/x2VtnSCyAScJ/7Y5hf7lf/MZYA == X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduuddrtdefgddufeefucdltddurdeguddtrddttd dmucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfv pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih gvnhhtshculddquddttddmnegfrhhlucfvnfffucdlfedtmdenucfjughrpeffhffvuffk fhggtggujgfofgesthdtredtofervdenucfhrhhomhepfdfvohgsihhnucevrdcujfgrrh guihhnghdfuceomhgvsehtohgsihhnrdgttgeqnecukfhppeduvdegrddugeelrdduudeg rdekieenucfrrghrrghmpehmrghilhhfrhhomhepmhgvsehtohgsihhnrdgttgenucevlh hushhtvghrufhiiigvpedt X-ME-Proxy: Received: from localhost (124-149-114-86.dyn.iinet.net.au [124.149.114.86]) by mail.messagingengine.com (Postfix) with ESMTPA id DA78F10390; Wed, 3 Apr 2019 17:19:51 -0400 (EDT) Date: Thu, 4 Apr 2019 08:19:23 +1100 From: "Tobin C. Harding" To: Matthew Wilcox Cc: "Tobin C. Harding" , Andrew Morton , Roman Gushchin , Alexander Viro , Christoph Hellwig , Pekka Enberg , David Rientjes , Joonsoo Kim , Christopher Lameter , Miklos Szeredi , Andreas Dilger , Waiman Long , Tycho Andersen , Theodore Ts'o , Andi Kleen , David Chinner , Nick Piggin , Rik van Riel , Hugh Dickins , linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [RFC PATCH v2 09/14] xarray: Implement migration function for objects Message-ID: <20190403211923.GD23288@eros.localdomain> References: <20190403042127.18755-1-tobin@kernel.org> <20190403042127.18755-10-tobin@kernel.org> <20190403172326.GJ22763@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190403172326.GJ22763@bombadil.infradead.org> X-Mailer: Mutt 1.11.4 (2019-03-13) User-Agent: Mutt/1.11.4 (2019-03-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Apr 03, 2019 at 10:23:26AM -0700, Matthew Wilcox wrote: > On Wed, Apr 03, 2019 at 03:21:22PM +1100, Tobin C. Harding wrote: > > +void xa_object_migrate(struct xa_node *node, int numa_node) > > +{ > > + struct xarray *xa = READ_ONCE(node->array); > > + void __rcu **slot; > > + struct xa_node *new_node; > > + int i; > > + > > + /* Freed or not yet in tree then skip */ > > + if (!xa || xa == XA_RCU_FREE) > > + return; > > + > > + new_node = kmem_cache_alloc_node(radix_tree_node_cachep, > > + GFP_KERNEL, numa_node); > > + if (!new_node) > > + return; > > + > > + xa_lock_irq(xa); > > + > > + /* Check again..... */ > > + if (xa != node->array || !list_empty(&node->private_list)) { > > + node = new_node; > > + goto unlock; > > + } > > + > > + memcpy(new_node, node, sizeof(struct xa_node)); > > + > > + /* Move pointers to new node */ > > + INIT_LIST_HEAD(&new_node->private_list); > > Surely we can do something more clever, like ... > > if (xa != node->array) { > ... > if (list_empty(&node->private_list)) > INIT_LIST_HEAD(&new_node->private_list); > else > list_replace(&node->private_list, &new_node->private_list); Oh nice, thanks! I'll roll this into the next version. > BTW, the raidx tree nodes / xa_nodes share the same slab cache; we need > to finish converting all radix tree & IDR users to the XArray before > this series can go in. Ok, I'll add this comment to the commit log for this patch on the next version so we don't forget. FTR complete conversion to the XArray is your goal isn't it (on the way to the Maple tree)? thanks, Tobin.