Received: by 2002:a5b:505:0:0:0:0:0 with SMTP id o5csp1606727ybp; Wed, 9 Oct 2019 17:21:09 -0700 (PDT) X-Google-Smtp-Source: APXvYqzlXMBMVkiKiKFNBFCb852AfAom8262zrvxpOCrQshpbeoIuO8WxpQC1aOtaENXzAxksExu X-Received: by 2002:a17:906:6a4f:: with SMTP id n15mr5433699ejs.19.1570666869304; Wed, 09 Oct 2019 17:21:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1570666869; cv=none; d=google.com; s=arc-20160816; b=F4Ra1VhQ97+VKW7VRITJIT3u64vaVaVE9F6E+lY6Z/XVyKQZs++A5NKBVSiyKcIfgO pji50LvDewHH0zPn4eVx+g3svs+ToWvw3ke6bc623t7sqKjF7nhF1NuPI9aSUD0URwkc sK35j0PnB3S/mcw545mBiHt8q/Qpfoy4/mvjT7D8FVEsss6ykBmW90H58w02kcIcdiN4 2m5/I3bDkfOdNL0QC1P/sP4kQ9WFNUCqqGwOqmTi9eelkCu2dhbs84zpMeqrJ2YBl6bS XN6awLyDn+FX3nioAMNTM2f+Ya1r+pLvHav2ynJ+t9oiHn/sQG6sqRm8eTEbvcRQ7Lur nAug== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=Do77P50v1iqzLRFJrcaqrujRx6icNyR1SPhQlluhlo8=; b=O0szm1q524ecTsVO8ZmY4Yo+VdZiEOTHiLwfrIRUheVPQoKJZfaRZ6H2Hn0LJKr1ej Js2jrVZZueO8tJ1wB+6GBTlGsUJzwRsuI9MVOKBdMdxUnGOkblhF4CFyKD8AnO4Ta8C5 BKZfdVovn3WwYiDIxiiCT8WrCOSH5LUadnlK6NucgUluWsK/0n3YS2JiCOJeBYVRT9rj kDfBeS20ply0dhgkDe3No/1doWEHZo2oqNJX5T2zb4gT0+aOyHMK9z04VrpRCEuUP6YL rFiLlZJTakCJB2bDpc69uQQfLhj6q8gcl2tMzGPTerz5MyjqrXvronz3iaYffhW3g7Wy 2LeQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linux-foundation.org header.s=google header.b=ErC9fvmS; 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 i12si2368564edb.133.2019.10.09.17.20.45; Wed, 09 Oct 2019 17:21:09 -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=@linux-foundation.org header.s=google header.b=ErC9fvmS; 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 S1731916AbfJJAS3 (ORCPT + 99 others); Wed, 9 Oct 2019 20:18:29 -0400 Received: from mail-lj1-f195.google.com ([209.85.208.195]:34348 "EHLO mail-lj1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731145AbfJJAS3 (ORCPT ); Wed, 9 Oct 2019 20:18:29 -0400 Received: by mail-lj1-f195.google.com with SMTP id j19so4345439lja.1 for ; Wed, 09 Oct 2019 17:18:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Do77P50v1iqzLRFJrcaqrujRx6icNyR1SPhQlluhlo8=; b=ErC9fvmS1HrPg1zFSfjCcWymQCihOoMHXfDfVxRpG2osTRkV+UY897Qb6hAbHieCGh ovDlnXsYSazZqq9YSeU20f9vPeJTZZLRwdzFJK3NKeRe7Z4Zz/xleu9LP+Oi+8+Wi4Vr h/kj1J01eVTlDwnz1hlkJFD+i5COsGwWPh0Sg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Do77P50v1iqzLRFJrcaqrujRx6icNyR1SPhQlluhlo8=; b=WvgtaWyXuiC/nptrlQfGv1hGHek/e9CVKBT3EQP1kPmTqOEGUC60tW9NCbdp+fxUNl suhUWH73w68HFJLVvndN2ujlJ4GALvx5pHhCmS7ncmxffNbevWODqwVOQro5emBL9CqP RMp1nuoifbiZw1ioJRDriFRExd1tjTHV9KfDUOhhY9hwRvXH64NZTRq0YcDb2KmSFFTd vkaaAfBFlqtTj7pl63cSuy0//424lAq3NXy7dherxxkCzitMjkUWVigySQXmq/Wr81Tc 5UNxei+ZGgrc5qy+15ZIO2MC/C3aQ0OGisqCe13q424RkSzoR0CmT0YccasYY059OJP1 bUtg== X-Gm-Message-State: APjAAAUs1UHwC43aObYODSJ/7TD1GA60raPS1OwEi++5/xG9z8DJV1TE qW9KAwhi3pLxeTQbl/hWRAzE1pLgenc= X-Received: by 2002:a2e:3919:: with SMTP id g25mr4023741lja.242.1570666705918; Wed, 09 Oct 2019 17:18:25 -0700 (PDT) Received: from mail-lj1-f175.google.com (mail-lj1-f175.google.com. [209.85.208.175]) by smtp.gmail.com with ESMTPSA id w30sm814572lfn.82.2019.10.09.17.18.22 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 09 Oct 2019 17:18:23 -0700 (PDT) Received: by mail-lj1-f175.google.com with SMTP id f5so4287596ljg.8 for ; Wed, 09 Oct 2019 17:18:22 -0700 (PDT) X-Received: by 2002:a2e:9848:: with SMTP id e8mr3988315ljj.148.1570666702440; Wed, 09 Oct 2019 17:18:22 -0700 (PDT) MIME-Version: 1.0 References: <20191008091508.2682-1-thomas_os@shipmail.org> <20191008091508.2682-4-thomas_os@shipmail.org> <20191009152737.p42w7w456zklxz72@box> <03d85a6a-e24a-82f4-93b8-86584b463471@shipmail.org> <80f25292-585c-7729-2a23-7c46b3309a1a@shipmail.org> In-Reply-To: From: Linus Torvalds Date: Wed, 9 Oct 2019 17:18:04 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v4 3/9] mm: pagewalk: Don't split transhuge pmds when a pmd_entry is present To: =?UTF-8?Q?Thomas_Hellstr=C3=B6m_=28VMware=29?= Cc: Thomas Hellstrom , "Kirill A. Shutemov" , Linux Kernel Mailing List , Linux-MM , Matthew Wilcox , Will Deacon , Peter Zijlstra , Rik van Riel , Minchan Kim , Michal Hocko , Huang Ying , =?UTF-8?B?SsOpcsO0bWUgR2xpc3Nl?= Content-Type: multipart/mixed; boundary="000000000000dc39e8059483566e" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --000000000000dc39e8059483566e Content-Type: text/plain; charset="UTF-8" On Wed, Oct 9, 2019 at 4:51 PM Linus Torvalds wrote: > > (a) right now nobody wants the "skip" behavior. You think you'll > eventually want it > > (b) right now, the "return positive value" is actually a horribly > ugly pointless hack, which could be made to be an error value and > cleaned up in the process > > (c) to me that really argues that we should just make the rule be > > - negative error means break out with error > > - 0 means continue down the next level > > - positive could be trivially be made to just mean "ok, I did it, > you can just continue". > > and I think that would make a lot of sense. So here's an ENTIRELY untested patch, but the return value of pmd_entry() now makes conceptual sense to me. The whole "I hit an error, I did nothing, I already did it myself" to me is the intuitive meaning of {neg,0,pos} handling. I think we probably should do this same thing for the upper levels too to be consistent, but I think this at least makes sense, and is simple, and avoids any hacky PAGE_WALK_CALLER_MAX magic. I also wonder if some caller might want to get a count of "how many X handled", and we'd just sum up all the positive return values as we're traversing things, but that falls under "nobody seems to want it right now", so I'm not adding extra code for something that might not be useful. And it is possible that I missed some other pmd_entry() callback that returns a positive value. I did check them all, but mistakes happen and I might have missed some case... Again: entirely and utterly untested. It compiles. That's all I'm going to guarantee, and even that might be a fluke. Linus --000000000000dc39e8059483566e Content-Type: text/x-patch; charset="US-ASCII"; name="patch.diff" Content-Disposition: attachment; filename="patch.diff" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k1jye0i60 IG1tL21lbXBvbGljeS5jIHwgMTAgKysrKystLS0tLQogbW0vcGFnZXdhbGsuYyAgfCAxMSArKysr KysrKy0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL21tL21lbXBvbGljeS5jIGIvbW0vbWVtcG9saWN5LmMKaW5kZXggNGFl OTY3YmNmOTU0Li5mOGM5OTU5MTU5MmIgMTAwNjQ0Ci0tLSBhL21tL21lbXBvbGljeS5jCisrKyBi L21tL21lbXBvbGljeS5jCkBAIC00ODIsNyArNDgyLDcgQEAgc3RhdGljIGludCBxdWV1ZV9wYWdl c19wbWQocG1kX3QgKnBtZCwgc3BpbmxvY2tfdCAqcHRsLCB1bnNpZ25lZCBsb25nIGFkZHIsCiAg KgogICogcXVldWVfcGFnZXNfcHRlX3JhbmdlKCkgaGFzIHRocmVlIHBvc3NpYmxlIHJldHVybiB2 YWx1ZXM6CiAgKiAwIC0gcGFnZXMgYXJlIHBsYWNlZCBvbiB0aGUgcmlnaHQgbm9kZSBvciBxdWV1 ZWQgc3VjY2Vzc2Z1bGx5LgotICogMSAtIHRoZXJlIGlzIHVubW92YWJsZSBwYWdlLCBhbmQgTVBP TF9NRl9NT1ZFKiAmIE1QT0xfTUZfU1RSSUNUIHdlcmUKKyAqIC1FQlVTWSAtIHRoZXJlIGlzIHVu bW92YWJsZSBwYWdlLCBhbmQgTVBPTF9NRl9NT1ZFKiAmIE1QT0xfTUZfU1RSSUNUIHdlcmUKICAq ICAgICBzcGVjaWZpZWQuCiAgKiAtRUlPIC0gb25seSBNUE9MX01GX1NUUklDVCB3YXMgc3BlY2lm aWVkIGFuZCBhbiBleGlzdGluZyBwYWdlIHdhcyBhbHJlYWR5CiAgKiAgICAgICAgb24gYSBub2Rl IHRoYXQgZG9lcyBub3QgZm9sbG93IHRoZSBwb2xpY3kuCkBAIC02NjksNyArNjY5LDcgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBtbV93YWxrX29wcyBxdWV1ZV9wYWdlc193YWxrX29wcyA9IHsKICAq IHBhc3NlZCB2aWEgQHByaXZhdGUuCiAgKgogICogcXVldWVfcGFnZXNfcmFuZ2UoKSBoYXMgdGhy ZWUgcG9zc2libGUgcmV0dXJuIHZhbHVlczoKLSAqIDEgLSB0aGVyZSBpcyB1bm1vdmFibGUgcGFn ZSwgYnV0IE1QT0xfTUZfTU9WRSogJiBNUE9MX01GX1NUUklDVCB3ZXJlCisgKiAtRUJVU1kgLSB0 aGVyZSBpcyB1bm1vdmFibGUgcGFnZSwgYnV0IE1QT0xfTUZfTU9WRSogJiBNUE9MX01GX1NUUklD VCB3ZXJlCiAgKiAgICAgc3BlY2lmaWVkLgogICogMCAtIHF1ZXVlIHBhZ2VzIHN1Y2Nlc3NmdWxs eSBvciBubyBtaXNwbGFjZWQgcGFnZS4KICAqIC1FSU8gLSB0aGVyZSBpcyBtaXNwbGFjZWQgcGFn ZSBhbmQgb25seSBNUE9MX01GX1NUUklDVCB3YXMgc3BlY2lmaWVkLgpAQCAtMTI4NSw4ICsxMjg1 LDggQEAgc3RhdGljIGxvbmcgZG9fbWJpbmQodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQg bG9uZyBsZW4sCiAJcmV0ID0gcXVldWVfcGFnZXNfcmFuZ2UobW0sIHN0YXJ0LCBlbmQsIG5tYXNr LAogCQkJICBmbGFncyB8IE1QT0xfTUZfSU5WRVJULCAmcGFnZWxpc3QpOwogCi0JaWYgKHJldCA8 IDApIHsKLQkJZXJyID0gLUVJTzsKKwlpZiAocmV0IDwgMCAmJiByZXQgIT0gLUVCVVNZKSB7CisJ CWVyciA9IHJldDsKIAkJZ290byB1cF9vdXQ7CiAJfQogCkBAIC0xMzAzLDcgKzEzMDMsNyBAQCBz dGF0aWMgbG9uZyBkb19tYmluZCh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGxl biwKIAkJCQlwdXRiYWNrX21vdmFibGVfcGFnZXMoJnBhZ2VsaXN0KTsKIAkJfQogCi0JCWlmICgo cmV0ID4gMCkgfHwgKG5yX2ZhaWxlZCAmJiAoZmxhZ3MgJiBNUE9MX01GX1NUUklDVCkpKQorCQlp ZiAoKHJldCA8IDApIHx8IChucl9mYWlsZWQgJiYgKGZsYWdzICYgTVBPTF9NRl9TVFJJQ1QpKSkK IAkJCWVyciA9IC1FSU87CiAJfSBlbHNlCiAJCXB1dGJhY2tfbW92YWJsZV9wYWdlcygmcGFnZWxp c3QpOwpkaWZmIC0tZ2l0IGEvbW0vcGFnZXdhbGsuYyBiL21tL3BhZ2V3YWxrLmMKaW5kZXggZDQ4 YzJhOTg2ZWEzLi5lYjlkMjkyNTg4YTIgMTAwNjQ0Ci0tLSBhL21tL3BhZ2V3YWxrLmMKKysrIGIv bW0vcGFnZXdhbGsuYwpAQCAtNDksMTAgKzQ5LDE1IEBAIHN0YXRpYyBpbnQgd2Fsa19wbWRfcmFu Z2UocHVkX3QgKnB1ZCwgdW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nIGVuZCwKIAkJ ICogVGhpcyBpbXBsaWVzIHRoYXQgZWFjaCAtPnBtZF9lbnRyeSgpIGhhbmRsZXIKIAkJICogbmVl ZHMgdG8ga25vdyBhYm91dCBwbWRfdHJhbnNfaHVnZSgpIHBtZHMKIAkJICovCi0JCWlmIChvcHMt PnBtZF9lbnRyeSkKKwkJaWYgKG9wcy0+cG1kX2VudHJ5KSB7CiAJCQllcnIgPSBvcHMtPnBtZF9l bnRyeShwbWQsIGFkZHIsIG5leHQsIHdhbGspOwotCQlpZiAoZXJyKQotCQkJYnJlYWs7CisJCQlp ZiAoZXJyIDwgMCkKKwkJCQlicmVhazsKKwkJCWlmIChlcnIgPiAwKSB7CisJCQkJZXJyID0gMDsK KwkJCQljb250aW51ZTsKKwkJCX0KKwkJfQogCiAJCS8qCiAJCSAqIENoZWNrIHRoaXMgaGVyZSBz byB3ZSBvbmx5IGJyZWFrIGRvd24gdHJhbnNfaHVnZQo= --000000000000dc39e8059483566e--