From nobody Fri Nov 21 20:02:57 2025 X-Original-To: freebsd-current@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 4dCmNn0lQGz6Hh9G for ; Fri, 21 Nov 2025 20:03:05 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::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) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4dCmNl5j7fz3l83; Fri, 21 Nov 2025 20:03:03 +0000 (UTC) (envelope-from kostikbel@gmail.com) Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=fail reason="No valid SPF, No valid DKIM" header.from=gmail.com (policy=none); spf=softfail (mx1.freebsd.org: 2001:470:d5e7:1::1 is neither permitted nor denied by domain of kostikbel@gmail.com) smtp.mailfrom=kostikbel@gmail.com Received: from tom.home (kib@localhost [127.0.0.1] (may be forged)) by kib.kiev.ua (8.18.1/8.18.1) with ESMTP id 5ALK2vd4051087; Fri, 21 Nov 2025 22:03:00 +0200 (EET) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua 5ALK2vd4051087 Received: (from kostik@localhost) by tom.home (8.18.1/8.18.1/Submit) id 5ALK2v95051086; Fri, 21 Nov 2025 22:02:57 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Fri, 21 Nov 2025 22:02:57 +0200 From: Konstantin Belousov To: Michal Meloun Cc: FreeBSD Current Subject: Re: mmap( MAP_ANON) is broken on current. (was Still seeing Failed assertion: "p[i] == 0" on armv7 buildworld) Message-ID: References: <8657a2f4-cb32-49a5-bbf6-cd5a4394c7be@FreeBSD.org> List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Spamd-Bar: / X-Spamd-Result: default: False [0.69 / 15.00]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_SPAM_MEDIUM(1.00)[0.995]; NEURAL_SPAM_SHORT(0.70)[0.699]; DMARC_POLICY_SOFTFAIL(0.10)[gmail.com : No valid SPF, No valid DKIM,none]; MIME_GOOD(-0.10)[text/plain]; RCVD_TLS_LAST(0.00)[]; ARC_NA(0.00)[]; MISSING_XM_UA(0.00)[]; ASN(0.00)[asn:6939, ipnet:2001:470::/32, country:US]; FREEMAIL_FROM(0.00)[gmail.com]; MIME_TRACE(0.00)[0:+]; RCPT_COUNT_TWO(0.00)[2]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; FREEMAIL_ENVFROM(0.00)[gmail.com]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; R_DKIM_NA(0.00)[]; R_SPF_SOFTFAIL(0.00)[~all]; RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[]; TO_DN_ALL(0.00)[]; HAS_XAW(0.00)[] X-Rspamd-Queue-Id: 4dCmNl5j7fz3l83 On Fri, Nov 21, 2025 at 09:54:23PM +0200, Konstantin Belousov wrote: > On Fri, Nov 21, 2025 at 08:08:47PM +0100, Michal Meloun wrote: > > First, many thanks for your efforts, but this check doesn't trigger when the > > problem occurs > > > Hm, ok. This is a data point, in fact. > > > > > To be more precise, testing case > > on fresh kernel(d8bfcacd12aba73188c44a157c707908e275825d) > > with PMAP_DEBUG defined in pmap-v6.c and with > > trivial zero check for first page at this place -> > > https://cgit.freebsd.org/src/tree/contrib/jemalloc/src/pages.c#n281 > > > > causes this failure: > > > > __je_pages_map: addr: 0x0, ret: 0x3087b000, size: 4096, alignment: 4096, > > prot: 0x00000003, flags: 0x0C001002 > > __je_pages_map: i: 0, p[i]: 0xFFFFFFFF, p: 0x3087b000 > > __je_pages_map: i: 23, p[i]: 0x308E5F94, p: 0x3087b000 > > Could you, please, when the failure is detected, spawn 'procstat -v ' > and dump the memory map of the process? To be clear, I want to see all > of this: > - the address of the mapping returned by mmap > - its size > - the location of the first non-zero byte > - memory map Also, regardless of the output above, please try this as a wild guess: diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c index 5b4517d2bf0c..5c6ed51706bf 100644 --- a/sys/vm/vm_object.c +++ b/sys/vm/vm_object.c @@ -2222,7 +2222,7 @@ vm_object_coalesce(vm_object_t prev_object, vm_ooffset_t prev_offset, * Remove any pages that may still be in the object from a previous * deallocation. */ - if (next_pindex < prev_object->size) { + if (true || next_pindex < prev_object->size) { vm_object_page_remove(prev_object, next_pindex, next_pindex + next_size, 0); #if 0