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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id D2E88C83F17 for ; Fri, 18 Jul 2025 11:04:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 642208D000B; Fri, 18 Jul 2025 07:04:40 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 619A88D0001; Fri, 18 Jul 2025 07:04:40 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 508898D000B; Fri, 18 Jul 2025 07:04:40 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 3FCB48D0001 for ; Fri, 18 Jul 2025 07:04:40 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 0F46DC03DE for ; Fri, 18 Jul 2025 11:04:40 +0000 (UTC) X-FDA: 83677102320.10.5FD1426 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf26.hostedemail.com (Postfix) with ESMTP id 82FAD140004 for ; Fri, 18 Jul 2025 11:04:37 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=O1Q4AUO3; dmarc=pass (policy=quarantine) header.from=redhat.com; spf=pass (imf26.hostedemail.com: domain of david@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=david@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752836677; a=rsa-sha256; cv=none; b=3ygIZU22+qlF1UpHIa2lw+ca1efQxGeTKla8MgaJ8T1iOyoS9efK0SWJkfRmKLPnUfzl45 PaACXbYfDcOunhFaQaSri2YykMwQ6ys6bYLCGWAJR69e84L72lxssU8dhCMxrBAhgnkJ5O j1lqTxi/7gH1bOnPmUnAoQklE6nG3tM= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=O1Q4AUO3; dmarc=pass (policy=quarantine) header.from=redhat.com; spf=pass (imf26.hostedemail.com: domain of david@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=david@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1752836677; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=gD5Lm1/Db3vBqFiG+jWE8MvYk8ZZaCpGhPUn7DOAZnw=; b=e/3afrbxmXEFrHKuYdvNqJEp/7dyp+dsoeOZO3CtdIjUlpgahtchvK4fFt/RM+zsQT6ncd QEmYEQXXiLjPzyL6i0lgyxG/PvxZKQZzTYVuxjULQo0ov73zWG1twqQVxwxtJgi3tf2j8Y RS8w520u5K/hs1Y3hTKERo6VTMIS1Ns= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752836676; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=gD5Lm1/Db3vBqFiG+jWE8MvYk8ZZaCpGhPUn7DOAZnw=; b=O1Q4AUO3cuMtorue4NE6XTYCWWk8gwKCsLlmqRcdCxgWf4X8DLqePu5wzYTBbP4Oaj283H d9GTjD8NVhaVFcZmutc94AlEUoIRoE7jeHRiecMzp8k+rmOhlSM2HFsJ/UURlGJ7ggCJIL DlY8sN0PYi1u0rWgFwXSpIx6pTmApRg= Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-463-sH4C_lXyNaOFd5hsKeVX7g-1; Fri, 18 Jul 2025 07:04:34 -0400 X-MC-Unique: sH4C_lXyNaOFd5hsKeVX7g-1 X-Mimecast-MFC-AGG-ID: sH4C_lXyNaOFd5hsKeVX7g_1752836673 Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-3a579058758so868894f8f.1 for ; Fri, 18 Jul 2025 04:04:34 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752836673; x=1753441473; h=content-transfer-encoding:in-reply-to:organization:autocrypt :content-language:from:references:cc:to:subject:user-agent :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=gD5Lm1/Db3vBqFiG+jWE8MvYk8ZZaCpGhPUn7DOAZnw=; b=sy1FKrw4DsafQ/zWyTOXgq5wMexFljU2UhCIysGeF3CfOFlta3bYk9HZ37pZyTxyvm /WoT958AkWtI7IPdzdgzg5+JeZJfQ8TUhDWNYMWJp9qhAVXETi0AIrAb5Mz2Yr31tTnG NTsjx7lv+FHCG3H0pIzLi7a8VvSn+i2LRPntYTEIt1/DhVFSlSK/pV5Yg5i/zG7QFA+Q SFkYT5jOyENsZkAR3MBjd9whJ6R2JmVhzNy48jeCfJCOpAYtrYlpweGZZebkGlygdpz3 ydFfC1sK/lMxXgM5XIxuXHEAoqt+C8TgLYu5C1o0YO9v1c9miOuU4F/fam+xTqBDf9ai Y+Ng== X-Forwarded-Encrypted: i=1; AJvYcCXobv4c34Ly2UBCSRGgryz5xALEgikla9RZI8k3m+kBxPS//Cfj5dOk8lr5c8SZfMLAKofbPhoHbg==@kvack.org X-Gm-Message-State: AOJu0YyFS+U7XRnPcpHjeFWHtIOUa1LtRW5RUwnOa3j5elT/ERqTFsiB wfCzGsPfF+2JhJrF92N00X30hjiKDbpJayR6fGj4RBxdjk1XAIx8O6Q/9GYFmDZtO2MZlS7d3BX BsNskrm6c5+yuPBhLUZcC32lIX8P+4+6lZc84nmWFUp4l6gN5rl5B X-Gm-Gg: ASbGncsdxGreQrIthfzug94kKaP2TfLYl1fRL1Zp2Avr9qoPU6Fv8spLRrgqfs+w572 cV3NIpAEG7gV5GEBB9Qpbi4bMr+qa4Y3Fs5l5CV/3yzsS4TgBj3XUEV6IeUy7Yc3nw+ZnUKgfHo CuzlEMM+2nOpRx7CJIvNm0F3FpFczJJyNgmLUz78XTmqlny62KdLBPjg6GtVPSJt7JjnjixwCOJ F7jb3JtqvSPgb/fzvxggKB5yVWjw/YAKcxtWwgXKQvDkExNG4g3lcURCZnRr/NyTpw3T3jLT5x3 b2rG2CyFos8VVMGDTzovD5RahoMF2sLXYaAFNEGcnq0GC9nfDlvM3ARndRczENJMWy44XQuwtjh eqOF6Tq/UAbVqdYwEPjcJqnznWF9ejJXiUIveZtKK2SudSw/k2uuO/8YS2tMLKzvbq8w= X-Received: by 2002:a5d:5e85:0:b0:3a6:d93e:5282 with SMTP id ffacd0b85a97d-3b60e53d2abmr7181621f8f.59.1752836673216; Fri, 18 Jul 2025 04:04:33 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFslOamHxai0YudN9CgxoIU9NtEzyL1F7n+V5XjzgwJGeuez7anN3aHinujW5VSJzYCUXKb/A== X-Received: by 2002:a5d:5e85:0:b0:3a6:d93e:5282 with SMTP id ffacd0b85a97d-3b60e53d2abmr7181577f8f.59.1752836672571; Fri, 18 Jul 2025 04:04:32 -0700 (PDT) Received: from ?IPV6:2003:d8:2f43:8900:f364:1333:2a67:d49e? (p200300d82f438900f36413332a67d49e.dip0.t-ipconnect.de. [2003:d8:2f43:8900:f364:1333:2a67:d49e]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4563b5a527asm17121825e9.1.2025.07.18.04.04.30 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 18 Jul 2025 04:04:32 -0700 (PDT) Message-ID: Date: Fri, 18 Jul 2025 13:04:30 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 6/9] mm/memory: convert print_bad_pte() to print_bad_page_map() To: Lorenzo Stoakes Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, xen-devel@lists.xenproject.org, linux-fsdevel@vger.kernel.org, nvdimm@lists.linux.dev, Andrew Morton , Juergen Gross , Stefano Stabellini , Oleksandr Tyshchenko , Dan Williams , Matthew Wilcox , Jan Kara , Alexander Viro , Christian Brauner , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Zi Yan , Baolin Wang , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Jann Horn , Pedro Falcato , Hugh Dickins , Oscar Salvador , Lance Yang References: <20250717115212.1825089-1-david@redhat.com> <20250717115212.1825089-7-david@redhat.com> <73702a7c-d0a9-4028-8c82-226602eb3286@lucifer.local> <200da552-4fc7-44d8-bbea-1669b4b45cf5@lucifer.local> From: David Hildenbrand Autocrypt: addr=david@redhat.com; keydata= xsFNBFXLn5EBEAC+zYvAFJxCBY9Tr1xZgcESmxVNI/0ffzE/ZQOiHJl6mGkmA1R7/uUpiCjJ dBrn+lhhOYjjNefFQou6478faXE6o2AhmebqT4KiQoUQFV4R7y1KMEKoSyy8hQaK1umALTdL QZLQMzNE74ap+GDK0wnacPQFpcG1AE9RMq3aeErY5tujekBS32jfC/7AnH7I0v1v1TbbK3Gp XNeiN4QroO+5qaSr0ID2sz5jtBLRb15RMre27E1ImpaIv2Jw8NJgW0k/D1RyKCwaTsgRdwuK Kx/Y91XuSBdz0uOyU/S8kM1+ag0wvsGlpBVxRR/xw/E8M7TEwuCZQArqqTCmkG6HGcXFT0V9 PXFNNgV5jXMQRwU0O/ztJIQqsE5LsUomE//bLwzj9IVsaQpKDqW6TAPjcdBDPLHvriq7kGjt WhVhdl0qEYB8lkBEU7V2Yb+SYhmhpDrti9Fq1EsmhiHSkxJcGREoMK/63r9WLZYI3+4W2rAc UucZa4OT27U5ZISjNg3Ev0rxU5UH2/pT4wJCfxwocmqaRr6UYmrtZmND89X0KigoFD/XSeVv jwBRNjPAubK9/k5NoRrYqztM9W6sJqrH8+UWZ1Idd/DdmogJh0gNC0+N42Za9yBRURfIdKSb B3JfpUqcWwE7vUaYrHG1nw54pLUoPG6sAA7Mehl3nd4pZUALHwARAQABzSREYXZpZCBIaWxk ZW5icmFuZCA8ZGF2aWRAcmVkaGF0LmNvbT7CwZgEEwEIAEICGwMGCwkIBwMCBhUIAgkKCwQW AgMBAh4BAheAAhkBFiEEG9nKrXNcTDpGDfzKTd4Q9wD/g1oFAmgsLPQFCRvGjuMACgkQTd4Q 9wD/g1o0bxAAqYC7gTyGj5rZwvy1VesF6YoQncH0yI79lvXUYOX+Nngko4v4dTlOQvrd/vhb 02e9FtpA1CxgwdgIPFKIuXvdSyXAp0xXuIuRPQYbgNriQFkaBlHe9mSf8O09J3SCVa/5ezKM OLW/OONSV/Fr2VI1wxAYj3/Rb+U6rpzqIQ3Uh/5Rjmla6pTl7Z9/o1zKlVOX1SxVGSrlXhqt kwdbjdj/csSzoAbUF/duDuhyEl11/xStm/lBMzVuf3ZhV5SSgLAflLBo4l6mR5RolpPv5wad GpYS/hm7HsmEA0PBAPNb5DvZQ7vNaX23FlgylSXyv72UVsObHsu6pT4sfoxvJ5nJxvzGi69U s1uryvlAfS6E+D5ULrV35taTwSpcBAh0/RqRbV0mTc57vvAoXofBDcs3Z30IReFS34QSpjvl Hxbe7itHGuuhEVM1qmq2U72ezOQ7MzADbwCtn+yGeISQqeFn9QMAZVAkXsc9Wp0SW/WQKb76 FkSRalBZcc2vXM0VqhFVzTb6iNqYXqVKyuPKwhBunhTt6XnIfhpRgqveCPNIasSX05VQR6/a OBHZX3seTikp7A1z9iZIsdtJxB88dGkpeMj6qJ5RLzUsPUVPodEcz1B5aTEbYK6428H8MeLq NFPwmknOlDzQNC6RND8Ez7YEhzqvw7263MojcmmPcLelYbfOwU0EVcufkQEQAOfX3n0g0fZz Bgm/S2zF/kxQKCEKP8ID+Vz8sy2GpDvveBq4H2Y34XWsT1zLJdvqPI4af4ZSMxuerWjXbVWb T6d4odQIG0fKx4F8NccDqbgHeZRNajXeeJ3R7gAzvWvQNLz4piHrO/B4tf8svmRBL0ZB5P5A 2uhdwLU3NZuK22zpNn4is87BPWF8HhY0L5fafgDMOqnf4guJVJPYNPhUFzXUbPqOKOkL8ojk CXxkOFHAbjstSK5Ca3fKquY3rdX3DNo+EL7FvAiw1mUtS+5GeYE+RMnDCsVFm/C7kY8c2d0G NWkB9pJM5+mnIoFNxy7YBcldYATVeOHoY4LyaUWNnAvFYWp08dHWfZo9WCiJMuTfgtH9tc75 7QanMVdPt6fDK8UUXIBLQ2TWr/sQKE9xtFuEmoQGlE1l6bGaDnnMLcYu+Asp3kDT0w4zYGsx 5r6XQVRH4+5N6eHZiaeYtFOujp5n+pjBaQK7wUUjDilPQ5QMzIuCL4YjVoylWiBNknvQWBXS lQCWmavOT9sttGQXdPCC5ynI+1ymZC1ORZKANLnRAb0NH/UCzcsstw2TAkFnMEbo9Zu9w7Kv AxBQXWeXhJI9XQssfrf4Gusdqx8nPEpfOqCtbbwJMATbHyqLt7/oz/5deGuwxgb65pWIzufa N7eop7uh+6bezi+rugUI+w6DABEBAAHCwXwEGAEIACYCGwwWIQQb2cqtc1xMOkYN/MpN3hD3 AP+DWgUCaCwtJQUJG8aPFAAKCRBN3hD3AP+DWlDnD/4k2TW+HyOOOePVm23F5HOhNNd7nNv3 Vq2cLcW1DteHUdxMO0X+zqrKDHI5hgnE/E2QH9jyV8mB8l/ndElobciaJcbl1cM43vVzPIWn 01vW62oxUNtEvzLLxGLPTrnMxWdZgxr7ACCWKUnMGE2E8eca0cT2pnIJoQRz242xqe/nYxBB /BAK+dsxHIfcQzl88G83oaO7vb7s/cWMYRKOg+WIgp0MJ8DO2IU5JmUtyJB+V3YzzM4cMic3 bNn8nHjTWw/9+QQ5vg3TXHZ5XMu9mtfw2La3bHJ6AybL0DvEkdGxk6YHqJVEukciLMWDWqQQ RtbBhqcprgUxipNvdn9KwNpGciM+hNtM9kf9gt0fjv79l/FiSw6KbCPX9b636GzgNy0Ev2UV m00EtcpRXXMlEpbP4V947ufWVK2Mz7RFUfU4+ETDd1scMQDHzrXItryHLZWhopPI4Z+ps0rB CQHfSpl+wG4XbJJu1D8/Ww3FsO42TMFrNr2/cmqwuUZ0a0uxrpkNYrsGjkEu7a+9MheyTzcm vyU2knz5/stkTN2LKz5REqOe24oRnypjpAfaoxRYXs+F8wml519InWlwCra49IUSxD1hXPxO WBe5lqcozu9LpNDH/brVSzHCSb7vjNGvvSVESDuoiHK8gNlf0v+epy5WYd7CGAgODPvDShGN g3eXuA== Organization: Red Hat In-Reply-To: <200da552-4fc7-44d8-bbea-1669b4b45cf5@lucifer.local> X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: dZEsujJkuEd2VnLEbGAChluWeXibv3N3WliNsAiuq-s_1752836673 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 82FAD140004 X-Stat-Signature: sawgo5dm96pah1twxz4iirmp3uqucjhq X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1752836677-895430 X-HE-Meta: U2FsdGVkX1+nXRKvdz2YwhtmyuBcq7k7G94a4W6hKShBsLTX8ZA+tNnrdttwSof6pZBcZVnGR3ZkG11vThMueOetNBnZ4iFTBZZxqhhsojLBe3GXvnLJWGPPFJz1I8Am2OxHUvcoOZWXuFaze0q1MkcQANw0seByDZOQ1/9P6shWJIlyPgCh3pLar2pDa+MqnlSFK6Ve7OsQkwe3ZvBjmYY0Y48rfec/9AS8WBO448YeJBNruoQZY7u9ITcFd3GOCXozHt9qG9Gfz8R5bdg9Kw4H+6B9/iqWaf9CHiVP1HEwfnBcEN8eosuX6jRni5uVnsghcGd88SkvuYxF1NapmeZAFTmUgroQe8EcDg3MKwLzYPEB2S7vV8yhMT2uByBwIy+hL8tonujj1MZf/WIRuP6g+QUViaGf2rqiG8tDbbo79QEJMJ1Gf86t+VndbMeUNR1yGjz668DboH5lpac6BL6zF1mSiie9YD6Afzzd56FTpMu3leRXaPkb7JuKKJ5Eo+jCYROPyTpgOFehl4sDCcn07RTL1zn1rCdEC2Vgy9Yclr5IvCiFq3WS8MBdhGZQChiCkpc9duayOaQhK6tw2tvgP71DT1U/Uq7/GpI1pAh3jQeP0dgEmiVrkX5OEym2N5+5YYVAnwX7HDdwe9pOPK6PicrqGPsH2/1uA2uGDCpfx4gvEsCD0xftEy2g7d7PcI/iGbzNlco6CZB8R6jqRBJ4r/SM6muBU3b3z/bbGisPyOrmMd1FloecosAyPqew0NTwhoc+5kJTpJJi/R6YZpWlm2YcZAngYM8QJRGiXCEFwMXS/UP4vJP3f1z7KG9E12Ht8LAvLThH/+yIhej/tHhkewbLuAp4NII4CAM6LZYplc5JktPQMylE72ZR0dzZLGxvCJjrnLtxvtmgfNK9HB6R5jqyRnge2dSkiJjhbAczAS/6SiGE85EEOk7W/OUm98Apq68jA5Yzp+VSCN4 jHAF68MV yJswJV+17CVnT1Xp9Xt1dRkDLq8lSPOkec5z5doyJHjK6IP6OUdqElL9pqTYRzo/Uwxrv9FuN9WC71zRF1ExEBXf1dQFGZJTl2uOn0ph3govx6JmWJfFRMtkNSOiL9UvCnR5BKqxAgdXGdszMn/UiPUGOfF9ixQ7hgb14LRgZALhxkxRMuglicll/8puGvpMdJJnfyU4c1a9AJEo+xxCZiBEXh6NOs+2/Xtyj7nB9zkvKGiOPI3c/yKB5sCfyW+rTMKSFkrqi+wJwyBaYsbw9DvPCiFRoErq8vJGFPp1y69f/4f5NN+vz1RvfbjJNB/4ZoUnbkZbRq8QPK2tb9K5Rmpym/g2WMqe1hpqMDP6TBMPLkO2HMkpXCJHYYjBcrRgiuRNSGrXsGBHiFHQjhHdGFzV7EpeYOVmERFrSH/wNxj+rQCtcd16UW9e/DTnyfO08tsq/dV5WxP0cfUTkTYYlYRdMih8ajxukT7PdjDV89EC+galkh9SkQBAOeBaU1LHa8TEy2J34adTTvDs= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: > > Yeah sorry I was in 'what locks do we need' mode and hadn't shifted back here, > but I guess the intent is that the caller _must_ hold this lock. > > I know it's nitty and annoying (sorry!) but as asserting seems to not be a > possibility here, could we spell these out as a series of points like: > > /* > * The caller MUST hold the following locks: > * > * - Leaf page table lock > * - Appropriate VMA lock to keep VMA stable > */ > > I don't _actually_ think you need the rmap lock then, as none of the page tables > you access would be impacted by any rmap action afaict, with these locks held. I don't enjoy wrong comments ;) This can be called from rmap code when doing a vm_normal_page() while holding the PTL. Really, I think we are over-thinking a helper that is triggered in specific context when the world is about to collide. This is not your general-purpose API. Maybe I should have never added a comment. Maybe I should just not have done this patch, because I really don't want to do more than the bare minimum to print_bad_page_map(). Because I deeply detest it, and no comments we will add will change that. [...] >>> But can you truly be sure of these existing? And we should then assert them >>> here no? For rmap though we'd need the folio/vma. >> >> I hope you realize that this nastiness of a code is called in case our >> system is already running into something extremely unexpected and will >> probably be dead soon. >> >> So I am not to interested in adding anything more here. If you run into this >> code you're in big trouble already. > > Yes am aware :) my concern is NULL ptr deref or UAF, but with the locks > held as stated those won't occur. > > But f it's not sensible to do it then we don't have to :) I am a reasonable > man, or like to think I am ;) > > But I think we need clarity as per the above. > >> >>> >>>> + pgdp = pgd_offset(mm, addr); >>>> + pgdv = pgd_val(*pgdp); >>> >>> Before I went and looked again at the commit msg I said: >>> >>> "Shoudln't we strictly speaking use pgdp_get()? I see you use this >>> helper for other levels." >>> >>> But obviously yeah. You explained the insane reason why not. >> >> Had to find out the hard way ... :) > > Pain. > >> >> [...] >> >>>> +/* >>>> + * This function is called to print an error when a bad page table entry (e.g., >>>> + * corrupted page table entry) is found. For example, we might have a >>>> + * PFN-mapped pte in a region that doesn't allow it. >>>> + * >>>> + * The calling function must still handle the error. >>>> + */ >>> >>> We have extremely strict locking conditions for the page table traversal... but >>> no mention of them here? >> >> Yeah, I can add that. > > Thanks! > >> >>> >>>> +static void print_bad_page_map(struct vm_area_struct *vma, >>>> + unsigned long addr, unsigned long long entry, struct page *page) >>>> +{ >>>> + struct address_space *mapping; >>>> + pgoff_t index; >>>> + >>>> + if (is_bad_page_map_ratelimited()) >>>> + return; >>>> >>>> mapping = vma->vm_file ? vma->vm_file->f_mapping : NULL; >>>> index = linear_page_index(vma, addr); >>>> >>>> - pr_alert("BUG: Bad page map in process %s pte:%08llx pmd:%08llx\n", >>>> - current->comm, >>>> - (long long)pte_val(pte), (long long)pmd_val(*pmd)); >>>> + pr_alert("BUG: Bad page map in process %s entry:%08llx", current->comm, entry); >>> >>> Sort of wonder if this is even useful if you don't know what the 'entry' >>> is? But I guess the dump below will tell you. >> >> You probably missed in the patch description: >> >> "Whether it is a PTE or something else will usually become obvious from the >> page table dump or from the dumped stack. If ever required in the future, we >> could pass the entry level type similar to "enum rmap_level". For now, let's >> keep it simple." > > Yeah sorry I glossed over the commit msg, and now I pay for it ;) OK this > is fine then. Let me play with indicating the page table level, but it's the kind of stuff I wouldn't want to do in this series here. >> >>> >>> Then we have VM_IO, which strictly must not have an associated page right? >> >> VM_IO just means read/write side-effects, I think you could have ones with >> an memmap easily ... e.g., memory section (128MiB) spanning both memory and >> MMIO regions. > > Hmm, but why not have two separate VMAs? I guess I need to look into more > what this flag actually effects. Oh, I meant, that we might have a "struct page" for MMIO memory (pfn_valid() == true). In a MIXEDMAP that will get refcounted. Not sure if there are users that use VM_IO in a MIXEDMAP, I would assume so but didn't check. So VM_IO doesn't really interact with vm_normal_page(), really. It's all about PFNMAP and MIXEDMAP. -- Cheers, David / dhildenb