From nobody Sun Jul 30 17:35:02 2023 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RDT6R4KxGz4pFyp; Sun, 30 Jul 2023 17:35:11 +0000 (UTC) (envelope-from alc@rice.edu) Received: from mx0b-0010f301.pphosted.com (mx0b-0010f301.pphosted.com [148.163.153.244]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "*.pphosted.com", Issuer "Sectigo RSA Organization Validation Secure Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RDT640Myvz3DGM; Sun, 30 Jul 2023 17:35:07 +0000 (UTC) (envelope-from alc@rice.edu) Authentication-Results: mx1.freebsd.org; none Received: from pps.filterd (m0102859.ppops.net [127.0.0.1]) by mx0b-0010f301.pphosted.com (8.17.1.22/8.17.1.22) with ESMTP id 36UHU1Fr020751; Sun, 30 Jul 2023 12:35:04 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rice.edu; h= message-id:date:mime-version:subject:to:cc:references:from :in-reply-to:content-type:content-transfer-encoding; s=ricemail; bh=bqc/bjdJ2hVo5qu/Q0nxbfLmVoLk5tFmkOzvnrDhGbM=; b=WHZNS521nte8 jnIQ3BHa5TB+GDkROi9rlOOdtD8DjU8JuDRlHacXy/dFqFiBoBlViwyAuv7RRe/a NSvX2t4MoivnKwNtAwBDbxPQ/9t0m18+aGf2yw1YSX0189yFzxUE6GLBuHB/2lmn RqmJGVkebJQN8KuR2Q855kJuF0Mst4gmCCnD2A7OtXlX/BThKkGYnIM/WAJqvlnd u+rG50Oi/O2LM4YvJyHZefav+EKC7jAU1Lq1dlIuBT+SIAqPdZors3Lk3uyQLJDt 7BdtZS5B6EEz9rHu0I5dqFDwM/OU7tAf2ayoAlzfs82thvmpFBKMkS8bbPD17Oy+ LyFq95CCaQ== Received: from mh3.mail.rice.edu (mh3.mail.rice.edu [128.42.199.10]) by mx0b-0010f301.pphosted.com (PPS) with ESMTPS id 3s5hacrd3q-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sun, 30 Jul 2023 12:35:04 -0500 (CDT) Received-X: from mh3.mail.rice.edu (localhost [127.0.0.1]) by mh3.mail.rice.edu (Postfix) with ESMTP id A19EA604084; Sun, 30 Jul 2023 12:35:03 -0500 (CDT) Received: from localhost (localhost [127.0.0.1]) by mh3.mail.rice.edu (Postfix) with ESMTP id A02496037D9; Sun, 30 Jul 2023 12:35:03 -0500 (CDT) X-Virus-Scanned: by amavis-2.12.1 at mh3.mail.rice.edu, auth channel Received: from mh3.mail.rice.edu ([127.0.0.1]) by localhost (mh3.mail.rice.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id QKheXE1uBzcN; Sun, 30 Jul 2023 12:35:03 -0500 (CDT) Received: from [108.254.203.201] (108-254-203-201.lightspeed.hstntx.sbcglobal.net [108.254.203.201]) (using TLSv1.2 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: alc) by mh3.mail.rice.edu (Postfix) with ESMTPSA id E8617209EA5; Sun, 30 Jul 2023 12:35:02 -0500 (CDT) Message-ID: Date: Sun, 30 Jul 2023 12:35:02 -0500 List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 Subject: Re: git: 50d663b14b31 - main - vm: Fix vm_map_find_min() Content-Language: en-US To: Dmitry Chagin , Alan Cox Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org References: <202307260525.36Q5PbRm027006@gitrepo.freebsd.org> From: Alan Cox In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-27_10,2023-07-26_01,2023-05-22_02 X-Rspamd-Queue-Id: 4RDT640Myvz3DGM X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:22843, ipnet:148.163.152.0/22, country:US] X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated I see.  That change fixed the case where the address hint is non-zero, e.g., 0x100000, but not zero. On 7/30/23 05:58, Dmitry Chagin wrote: > On Sun, Jul 30, 2023 at 01:30:37PM +0300, Dmitry Chagin wrote: >> On Wed, Jul 26, 2023 at 05:25:37AM +0000, Alan Cox wrote: >>> The branch main has been updated by alc: >>> >>> URL: https://urldefense.com/v3/__https://cgit.FreeBSD.org/src/commit/?id=50d663b14b310d6020b4b6cc92d4fae985f086f2__;!!BuQPrrmRaQ!mJGmkdRJ06TT6ocFnVe7lPS7hSNIIhrCQH9IKMbB6XZVJuiUc2_wPJ55o1zzD6AhClmQwgQKHvKnW4rs75yVrtax$ >>> >>> commit 50d663b14b310d6020b4b6cc92d4fae985f086f2 >>> Author: Alan Cox >>> AuthorDate: 2023-07-25 07:24:19 +0000 >>> Commit: Alan Cox >>> CommitDate: 2023-07-26 05:24:50 +0000 >>> >>> vm: Fix vm_map_find_min() >>> >>> Fix the handling of address hints that are less than min_addr by >>> vm_map_find_min(). >>> >> Thank you for fixing that, however it still fails under Linuxulator. >> >> >> #include >> #include >> >> #include >> #include >> #include >> #include >> #include >> #include >> >> int >> main(int argc, char** argv) >> { >> struct stat sb; >> void *s32; >> int f, r; >> >> f = open(argv[0], O_RDONLY); >> assert(f > 0); >> >> r = fstat(f, &sb); >> assert(r == 0); >> >> s32 = mmap(NULL, sb.st_size, PROT_READ, >> MAP_32BIT|MAP_PRIVATE, f, 0); >> assert(s32 != MAP_FAILED); >> assert((uintptr_t)s32 < 0x80000000); >> >> close(f); >> munmap(s32, sb.st_size); >> return (0); >> } >> > hmm, it also fails natively with disable aslr > > >> >>> Reported by: dchagin >>> Reviewed by: kib >>> Fixes: d8e6f4946cec0 "vm: Fix anonymous memory clustering under ASLR" >>> Differential Revision: https://urldefense.com/v3/__https://reviews.freebsd.org/D41159__;!!BuQPrrmRaQ!mJGmkdRJ06TT6ocFnVe7lPS7hSNIIhrCQH9IKMbB6XZVJuiUc2_wPJ55o1zzD6AhClmQwgQKHvKnW4rs70ygLqzX$ >>> --- >>> sys/vm/vm_map.c | 4 ++-- >>> 1 file changed, 2 insertions(+), 2 deletions(-) >>> >>> diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c >>> index 444e09986d4e..eb607d519247 100644 >>> --- a/sys/vm/vm_map.c >>> +++ b/sys/vm/vm_map.c >>> @@ -2255,10 +2255,10 @@ vm_map_find_min(vm_map_t map, vm_object_t object, vm_ooffset_t offset, >>> int rv; >>> >>> hint = *addr; >>> - if (hint == 0) >>> + if (hint == 0) { >>> cow |= MAP_NO_HINT; >>> - if (hint < min_addr) >>> *addr = hint = min_addr; >>> + } >>> for (;;) { >>> rv = vm_map_find(map, object, offset, addr, length, max_addr, >>> find_space, prot, max, cow);