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 E2C41C3DA7F for ; Wed, 31 Jul 2024 15:11:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 67F0E6B0082; Wed, 31 Jul 2024 11:11:49 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 62F176B0085; Wed, 31 Jul 2024 11:11:49 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4F74E6B0099; Wed, 31 Jul 2024 11:11:49 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 3094A6B0082 for ; Wed, 31 Jul 2024 11:11:49 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id EBBF6160419 for ; Wed, 31 Jul 2024 15:11:48 +0000 (UTC) X-FDA: 82400387496.17.5C5765E Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by imf24.hostedemail.com (Postfix) with ESMTP id 9267118000F for ; Wed, 31 Jul 2024 15:11:46 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=EIkWPSNS; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=3qN7f9Ie; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=EIkWPSNS; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=3qN7f9Ie; spf=pass (imf24.hostedemail.com: domain of osalvador@suse.de designates 195.135.223.131 as permitted sender) smtp.mailfrom=osalvador@suse.de; dmarc=pass (policy=none) header.from=suse.de ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1722438679; 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=Ivg4N38Q3G0SdX08ZmyhgKmq/Y3k/Z7pvtjhZ8a5AhU=; b=vl+7sm34VUAdEBSaUl+r+EBQnEgllxrdly2P+J5NgffEOOEhWw6RSKESM+SbwOApu18T+Y FXas82pyhVH8AadCFLrsh2OfAeXpe+UWEWsCr4V0bTumPlcV531dtD7suIWT7ucbr8nlJH Ow7Lf1k907mAW6DIbTkuLQP+OYKTIzo= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=EIkWPSNS; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=3qN7f9Ie; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=EIkWPSNS; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=3qN7f9Ie; spf=pass (imf24.hostedemail.com: domain of osalvador@suse.de designates 195.135.223.131 as permitted sender) smtp.mailfrom=osalvador@suse.de; dmarc=pass (policy=none) header.from=suse.de ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1722438679; a=rsa-sha256; cv=none; b=ZvvnNm/U6rL/M6LCl+8jPYRVMohAlNrpA2jTRoR62apCF5PV+gyRzyrkqH2rIKEbK3FxJa IgKoNM6uumXeAOAHpf1eGtadR9p7HKUTBivDU5h/1hlCMgS1d181U0Q9l018PiYOl5wWAl 498K4siMd5qMyS9ZWM8Kc3UTVuycVz8= Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 3DD601F833; Wed, 31 Jul 2024 15:11:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1722438705; h=from:from:reply-to: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; bh=Ivg4N38Q3G0SdX08ZmyhgKmq/Y3k/Z7pvtjhZ8a5AhU=; b=EIkWPSNSdz3TYY4sX0iuFviVPwYjsbyk1jiww0xT9D/LwMXKdOcsC1ou+4z2ymhcNI/R8l gw9D2Hh2COWXZGDKoRaGJqnYQEmyrzWMUkD9JwgnJDm7a4gd8NDocROoM9KsP6uwHTNxfr I1/C0KwQFdWEGw75TL39jxt2vLWPAok= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1722438705; h=from:from:reply-to: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; bh=Ivg4N38Q3G0SdX08ZmyhgKmq/Y3k/Z7pvtjhZ8a5AhU=; b=3qN7f9Ie7aEWsFTWpA/vDr+Sx7VbsTot9X8n/77BOJ4yMhffXRQkUBys6OeQuFiIH9at9l sDt9C+VjDWhz41Ag== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1722438705; h=from:from:reply-to: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; bh=Ivg4N38Q3G0SdX08ZmyhgKmq/Y3k/Z7pvtjhZ8a5AhU=; b=EIkWPSNSdz3TYY4sX0iuFviVPwYjsbyk1jiww0xT9D/LwMXKdOcsC1ou+4z2ymhcNI/R8l gw9D2Hh2COWXZGDKoRaGJqnYQEmyrzWMUkD9JwgnJDm7a4gd8NDocROoM9KsP6uwHTNxfr I1/C0KwQFdWEGw75TL39jxt2vLWPAok= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1722438705; h=from:from:reply-to: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; bh=Ivg4N38Q3G0SdX08ZmyhgKmq/Y3k/Z7pvtjhZ8a5AhU=; b=3qN7f9Ie7aEWsFTWpA/vDr+Sx7VbsTot9X8n/77BOJ4yMhffXRQkUBys6OeQuFiIH9at9l sDt9C+VjDWhz41Ag== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 8065413297; Wed, 31 Jul 2024 15:11:44 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id GroHHDBUqmbJAgAAD6G6ig (envelope-from ); Wed, 31 Jul 2024 15:11:44 +0000 Date: Wed, 31 Jul 2024 17:11:34 +0200 From: Oscar Salvador To: Lorenzo Stoakes Cc: Andrew Morton , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Peter Xu , Muchun Song , David Hildenbrand , Donet Tom , Matthew Wilcox , Vlastimil Babka , Michal Hocko Subject: Re: [PATCH v2 6/9] mm: Make hugetlb mappings go through mm_get_unmapped_area_vmflags Message-ID: References: <20240729091018.2152-1-osalvador@suse.de> <20240729091018.2152-7-osalvador@suse.de> <8a57e184-4994-4642-959d-44dc7efbceca@lucifer.local> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Rspamd-Server: rspam03 X-Rspam-User: X-Rspamd-Queue-Id: 9267118000F X-Stat-Signature: 6gtr4t1cr138sd7tep4rg38k98sicrj5 X-HE-Tag: 1722438706-420856 X-HE-Meta: U2FsdGVkX18QW7/kDG9fY95lEzLbUTKI6cMyRr99HFLqmv/qeaKFnuBIPLpjfVUVdnIAP/2wAn3KpEGStn3+TYi6CiL2ihFCMfLZleCRsY17HxTKo8qsnv/gs+aYwSHLzrkg9v+LyWjKiad25aVFFvyrn0BrI64Tj21jr3nHOidAEZ2h4SLSfO4o9iowHdIuEjqcUgOAWY7Y1bszN+kor7ggJU2qr335uf59FY49DVM6HqoyF85SisQoYZfuqM7tnwiHvFd51NUo0IvsYLz4XNG93fwZQIaExmm7vjJvduYfE4XnzCZmGU+5V5B4FmIlotZ4fXQu3Hd5YaM5glQfUFEd1NXlGBTi5aJMbklS/EoDfmsaKFfwsWFv4aD1wmLRBw5Rjq822aMyQqnXIAC1X/4T8SsNxlwx1oDoIkxvFyOwuH+bP/+kjY/H0e1SVgNxCfBGeJhl+fWfgPKK6nY4zxxFw573FWrdLurirUh9i9HNAUrF9cBEegW7MYVAfVyQRDPb5rREmtx1mBfd2DYhWUGEoeMQLSmYrJhQ+zSfrPNDPoVM6ccN2awPBKpR4QUsiU8Fc8q0oLoOkMsGJa+QExtjA2HmpWpJ3Wspzzh9tQcBDtZ/5VpL7FI132wHSOd6LZo/+vNYJsJrC1A0CdzpDfMVzNkB5HlrDPCJyDmdasqukDF2Kjdtm3Tk6ers2z/7CGq6qLnDCwpXJAKG0fV1ucdROdhoGZHZ0+xl1Q13wUdnNUnlSwUs7sJuGofs0oDZ5wIHaQpJ+r0TBbqZqfVIN8xWlKzEL90HGFvAJZjrcsx8Xk0SEFfXnNX3FvZcoXApZHTxbpossrO3IwBa2AmSrwOZVBUzaN2iW3KcRGmjVSNb9mTMxS0PE5eW90OOviGBhCPQi34NQk/hL4+SpZFqgu/duS+bUlc1qPJxaMN8nNsjiI4YT5vjMxy8qjt0pQk2K4sdH9Mi+QASqbOg5ku igYp9lR/ Zuw7YBfAdH6lX/22o1vZIuwd3rOqOvgjsGFnsrSpUQ3QCOB+gflGmKyzl/6BiU+GvnI24zO9FlnvE7B6WUAaD4ATHqrSI8PAOi6nFKoOwoUguUs8BPw1BtKzjZ0rbExghZcZzE6v0gIF6SvHCI50adcK1bGb7XVLvTRNd8DErIgfc4E+zToFyV6ys4knoQhblSuPiAV1monk2sQCygwWhLUNDz0Kqk6EMC4RqOGfIxMDTT10Zt/5x/vx+Uujk4KX/aDCLvLkLG1yP9uyExFClhBl6asuCrSEh13ZAkwlMSfTDXmuai3JoMskhfA== 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: On Wed, Jul 31, 2024 at 05:08:24PM +0200, Oscar Salvador wrote: > On Wed, Jul 31, 2024 at 12:02:47PM +0100, Lorenzo Stoakes wrote: > > On Mon, Jul 29, 2024 at 11:10:15AM GMT, Oscar Salvador wrote: > > > * Someone wants to read @bytes from a HWPOISON hugetlb @page from @offset. > > > @@ -1300,7 +1307,6 @@ static const struct file_operations hugetlbfs_file_operations = { > > > .read_iter = hugetlbfs_read_iter, > > > .mmap = hugetlbfs_file_mmap, > > > .fsync = noop_fsync, > > > - .get_unmapped_area = hugetlb_get_unmapped_area, > > > > This is causing a NULL pointer deref error in the mm self-tests, > > specifically hugepage-shm. > > > > This is because in __get_unmapped_area(), you check to see if the file has > > an f_ops->get_unampped_area() however ('wonderfully'...) the shm stuff > > wraps it, so this will be shm_get_unmapped_area() which then accesses the > > underlying hugetlb file and _unconditionally_ calls > > f_op->get_unmapped_area(), which you just made NULL and... kaboom :) > > > > You can't even add null check in to this wrapper as at this point > > everything assumes that you _can_ get an unmapped area. So yeah, it's kinda > > broken. > > > > This makes me think the whole thing is super-delicate and you probably need > > to rethink this approach carefully, or least _very carefully_ audit users > > of this operation. > > Thanks for reporting this Lorenzo, highly appreciated. > > I will check, but.. > > > By doing this you are causing an compilation error (at least on my compiler > > with an x86-64 defconfig-based build): > > > > arch/x86/mm/hugetlbpage.c:84:1: error: no previous prototype for > > ‘hugetlb_get_unmapped_area’ [-Werror=missing-prototypes] > > 84 | hugetlb_get_unmapped_area(struct file *file, unsigned long addr, > > | ^~~~~~~~~~~~~~~~~~~~~~~~~ > > Something is off here. > > git grep hugetlb_get_unmapped_area Heh, of course I saw what is wrong after pressing intro. Ok, with the entire series applied you should not see this problem as hugetlb_get_unmapped_area gets totally wiped out, but checking out only this commit indeed throws an error. I will see how I can reshufle this. thanks! -- Oscar Salvador SUSE Labs