Received: by 2002:a25:b794:0:0:0:0:0 with SMTP id n20csp5060003ybh; Tue, 6 Aug 2019 23:40:59 -0700 (PDT) X-Google-Smtp-Source: APXvYqyqhBOoIX9wgIBpo+Gvg8nZC0WSQ6/HdvV7shCUa3RdNdK6xE5Cum0NYjCNkZD4w1FnzM+m X-Received: by 2002:a17:902:1107:: with SMTP id d7mr6671078pla.184.1565160059254; Tue, 06 Aug 2019 23:40:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565160059; cv=none; d=google.com; s=arc-20160816; b=xpWEPj1ZchKk/zbSkBjwzOS/S/gTTrzCuZ7333zk5lqg0zctcdSpfFK8z/FB7kKB/l R/vz5s/oLHNlnWx/O/Wbzic2APj3DbLivP/puaxRF4C0BecDA0y6Zhz6CPnPDS0jWDww YGfn1uQrcQNf2UnrzGqiFQweKev1d4PP5SXUFja36KWy052k83eeOOOu5U4kEf38U/f2 3kruSL5yJKDI6fiR3Ijzoc4eF7tOb4GpNSSbWZd/KIdic8M1bQ8s4VG7qHW6Tr1Pk61E IQjaDRe4+mmFjH4TSOMoZkFAz62Mpv6ZTlNuwgrMYVoO2fa4g99hAb0h0ujtp0ucav7d asdw== 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; bh=7uoByRa+Al/xx5bip7rUm8otbKddClrdMOGAdUETRbE=; b=yYKAruopK0zDPC3noT2tEmM9VlZG9V4rhHNBuML7WlJNg2qqVqz2Xh5GhqwdIMLLIV Fd1d03Ta83I6MO+r3F0jPF1M2qSu8EfPLumDA4QOGLN0YJBgkQnSMf+kLrzy5p7YeOH4 RJVTxXjGyxKEFqDspHjbGTsVaREowxENDNgrcNR8ibjGFQ0/YdT2cxnwIPMYzSxmN4o1 UlEcUZaL6JwvwxRPl3T/yM74cGdOGQ7o9yzrF5jeJE2gL4P7afs7GvsIp71jFIisqMbE l7biyhP/iXL7ad5ZzOt5ZI/O0UuXOZkL7dLyTmMgdBXN9bLURn9AgxBPfEQAgj+K5x19 aesg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@infradead.org header.s=bombadil.20170209 header.b=dLjgyEgY; 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 t31si16844194pjb.25.2019.08.06.23.40.43; Tue, 06 Aug 2019 23:40:59 -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=fail header.i=@infradead.org header.s=bombadil.20170209 header.b=dLjgyEgY; 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 S1727281AbfHGGkD (ORCPT + 99 others); Wed, 7 Aug 2019 02:40:03 -0400 Received: from bombadil.infradead.org ([198.137.202.133]:38656 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727139AbfHGGkD (ORCPT ); Wed, 7 Aug 2019 02:40:03 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20170209; h=In-Reply-To:Content-Type:MIME-Version :References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=7uoByRa+Al/xx5bip7rUm8otbKddClrdMOGAdUETRbE=; b=dLjgyEgYjD1Os5q21xXo4cPVG 9DH2AgUTdtbRF+g2nPIvPt5xl1Kb4pJ9PgP55ZxyrfEJopI8Y6zDiY54klLdOvkh50jjPzNLjN2g3 YJMwWzn4POHUA71za7cjK1UnTdmYk1umo1Q09nkIrCUrPUZmCC7kliZRklsJpjnPvb1jHKRK8B0LY 3exvnq5asy/EFK1Fz/4Pa7KlySZu1MpQqfwFN3NHTROnZmA5wy3d66hMcRR0PhsSe730aQcDCEiNP Dz+EPfLNHWPuIyFAKQ++QPOeCkLMVt2t+i+At2EeInDwGgyJYOL+Ta8BJGxsLgFDTCd5axhBG1yp8 ZV8RsxtYw==; Received: from hch by bombadil.infradead.org with local (Exim 4.92 #3 (Red Hat Linux)) id 1hvFc8-0007MG-7S; Wed, 07 Aug 2019 06:40:00 +0000 Date: Tue, 6 Aug 2019 23:40:00 -0700 From: Christoph Hellwig To: Matthew Wilcox Cc: Linus Torvalds , Christoph Hellwig , Thomas =?iso-8859-1?Q?Hellstr=F6m_=28VMware=29?= , Dave Airlie , Thomas Hellstrom , Daniel Vetter , LKML , dri-devel , Jerome Glisse , Jason Gunthorpe , Andrew Morton , Steven Price , Linux-MM Subject: Re: drm pull for v5.3-rc1 Message-ID: <20190807064000.GC6002@infradead.org> References: <48890b55-afc5-ced8-5913-5a755ce6c1ab@shipmail.org> <20190806073831.GA26668@infradead.org> <20190806190937.GD30179@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190806190937.GD30179@bombadil.infradead.org> User-Agent: Mutt/1.11.4 (2019-03-13) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org. See http://www.infradead.org/rpr.html Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Aug 06, 2019 at 12:09:38PM -0700, Matthew Wilcox wrote: > Has anyone looked at turning the interface inside-out? ie something like: > > struct mm_walk_state state = { .mm = mm, .start = start, .end = end, }; > > for_each_page_range(&state, page) { > ... do something with page ... > } > > with appropriate macrology along the lines of: > > #define for_each_page_range(state, page) \ > while ((page = page_range_walk_next(state))) > > Then you don't need to package anything up into structs that are shared > between the caller and the iterated function. I'm not an all that huge fan of super magic macro loops. But in this case I don't see how it could even work, as we get special callbacks for huge pages and holes, and people are trying to add a few more ops as well.