From owner-freebsd-ppc@freebsd.org Thu Jan 9 06:03:27 2020 Return-Path: Delivered-To: freebsd-ppc@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A6E4E22A6DB for ; Thu, 9 Jan 2020 06:03:27 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic311-25.consmr.mail.gq1.yahoo.com (sonic311-25.consmr.mail.gq1.yahoo.com [98.137.65.206]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 47tbC24j1tz4fmJ for ; Thu, 9 Jan 2020 06:03:26 +0000 (UTC) (envelope-from marklmi@yahoo.com) X-YMail-OSG: JIa3Z3EVM1kCYlu_BvXQFYmt9N2m25Van2PUN1gUE7hXYlYddWMl7nZ9S.N__RT Z5uKazyS44tMzR1C6NqBKlcxQhHiPts9Ibf3ftB90sDsVmcwNagrqKCquklKlkBtxEtvKc6jhPVm ZIChb_DLACAT9pNfNyx_kFNExy7EIf2yN3R7pP3Q.O9CA1S78B.TbwQFVHqZ.U1KaCvrjQpM.RhJ hkWHPLSf4Yu8Gp54htadRmJim9PwiwBHprbM5UChxgjb2HMSlWWsWkDk5QkG5L1HvswQ9eFOXvws z6yVTcvkvsa8fg_jOXEcV7Aa1slqJufXg4h6Cf8H1TH.K3wLcLMS.oJXa5MtdeA_Y0JfkECSzuZ6 HDfLtrEU9jnEuHA4qyhoSsxI98B1VKgynOlL2PZAxKg4qmA3akBEnLLMPu2WeyyUowkcwdtewCgF y21CzmOheEtteqSM4uaxitpGI84L666SNEYgh_dCl..AOH7kWbw6KfdT_w1X44yeggjxp3_hYX3V bnLXz8WevC5UVJ4dO16SUPzaLstYWAl2vrnMSEUkl2sWXIfsJ1LRjGoSvZJFwuAQDK..LpjrP_N. YVJp4lNgPG9Viw1MaXGpUE1cnYhOjVgzNC8C4QatRQCBYEgVDATwghl5aqpgdhqul2b_v7PT0huL Ap1Zx4.gQ1lr1eeKyvd2lDF8ZxcimiOuMYoEIEYpgsJt6LuULAJghhPX8MOK8wBEA4EOgfzpH8zO eEnXOVDQUJ5bVaawy1VZV8u9o5jbfQZfS2n.twXoJygrRO0w99oZtfTwDrrkqAZhlaGmWUx9BEYE uUlpyVyaXXWcQytJr_J6Ii6CKzpv5nTiuRSIX1Fb10aYL.CjIloMWAvnl4ue0k.JAOojL9177C1n jAad5zy55fZ7SebixLzNc0nW72Jo36VhX_9jiv1riNwyPeVRJVU.X7ii3ts3zVtjUgVOkKtbu8Vx KMg4MjODNyDIo0KyhWLia4zqxn_YNE.p6Tkf1S1q1cWJMfXKNKIjqSSh6LMaZeoIKxHTcu7FzHgb qLGRDoKkC7QizhOiq7.n1qnpI82Q6FHEyr6BtRfeKW3as6xNULMur5OkzZ_XoUCe2jXGp60YFRjj N0feXJDG1gVdrvByNb3UMfU8g0R.KrxrMSRds.QXThBqRNFOrPZPlK7Xv4hxMRWx58OJlBHA949T AQVr_OKSrLH7rVloBx_wsSqXukB3.RyMNPev_Lv4IxWSpnzpctVZ_bO._f0auO6ChlZ0gevpM1as hInWUQvfEZipGUMIgW6M9rku1nrKCjd1akWBapDXNHGlXwHLcpBphvDWu83hi3B_tLsnD2jFuo4K cnqfuUS6bEKROushvcmXgpV8l3vJ2DUoGtLf6HKwhnRaUsW0JEdwT9SSqM00KhbmphEaGUSu.Q3d o_afiAPLL5e8K5Vj7dgcYn.sm9jrVoRp0ON1FbTjN Received: from sonic.gate.mail.ne1.yahoo.com by sonic311.consmr.mail.gq1.yahoo.com with HTTP; Thu, 9 Jan 2020 06:03:24 +0000 Received: by smtp423.mail.gq1.yahoo.com (Oath Hermes SMTP Server) with ESMTPA ID 8f732fe2d7ac50a0a17c1c4b526a49bf; Thu, 09 Jan 2020 06:03:22 +0000 (UTC) From: Mark Millard Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Mac OS X Mail 13.0 \(3608.40.2.2.4\)) Subject: A possible unbounded loop in moea_sync_icache: why sys/vm/mlock_test:mlock__copy_on_write_vnode fails? Message-Id: <022334D3-B60E-440F-A514-8D8002B65CB4@yahoo.com> Date: Wed, 8 Jan 2020 22:03:21 -0800 Cc: "bdragon@freebsd.org" To: Justin Hibbits , FreeBSD PowerPC ML X-Mailer: Apple Mail (2.3608.40.2.2.4) References: <022334D3-B60E-440F-A514-8D8002B65CB4.ref@yahoo.com> X-Rspamd-Queue-Id: 47tbC24j1tz4fmJ X-Spamd-Bar: - X-Spamd-Result: default: False [-1.50 / 15.00]; TO_DN_EQ_ADDR_SOME(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ptr:yahoo.com]; FREEMAIL_FROM(0.00)[yahoo.com]; MV_CASE(0.50)[]; DKIM_TRACE(0.00)[yahoo.com:+]; DMARC_POLICY_ALLOW(-0.50)[yahoo.com,reject]; FREEMAIL_TO(0.00)[gmail.com]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; SUBJECT_ENDS_QUESTION(1.00)[]; FREEMAIL_ENVFROM(0.00)[yahoo.com]; ASN(0.00)[asn:36647, ipnet:98.137.64.0/21, country:US]; MID_RHS_MATCH_FROM(0.00)[]; DWL_DNSWL_NONE(0.00)[yahoo.com.dwl.dnswl.org : 127.0.5.0]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; R_DKIM_ALLOW(-0.20)[yahoo.com:s=s2048]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; IP_SCORE(0.00)[ip: (-3.28), ipnet: 98.137.64.0/21(0.87), asn: 36647(0.70), country: US(-0.05)]; IP_SCORE_FREEMAIL(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[206.65.137.98.list.dnswl.org : 127.0.5.0]; RCVD_TLS_LAST(0.00)[]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: freebsd-ppc@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Porting FreeBSD to the PowerPC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 06:03:27 -0000 In the statement: lim = round_page(va); later below in moea_sync_icache, it uses: #define round_page(x) (((x) + PAGE_MASK) & ~PAGE_MASK) So, for PAGE_MASK==(4096u-1u) the statement translates to, in essence (the u's are conceptual here): lim = ((va)+4095u) & ~4095u; That means that if va%4096u==0 then teh result is lim==va . In turn, that means that: len = MIN(lim - va, sz); results in len==0. That in turn means that: sz -= len; does not change sz. Overall result: the loop tesing sz>0 does not terminate. I expect that is why the kyua test: sys/vm/mlock_test:mlock__copy_on_write_vnode : is failing. The code in question: static void moea_sync_icache(mmu_t mmu, pmap_t pm, vm_offset_t va, vm_size_t sz) { struct pvo_entry *pvo; vm_offset_t lim; vm_paddr_t pa; vm_size_t len; PMAP_LOCK(pm); while (sz > 0) { lim = round_page(va); len = MIN(lim - va, sz); pvo = moea_pvo_find_va(pm, va & ~ADDR_POFF, NULL); if (pvo != NULL) { pa = (pvo->pvo_pte.pte.pte_lo & PTE_RPGN) | (va & ADDR_POFF); moea_syncicache(pa, len); } va += len; sz -= len; } PMAP_UNLOCK(pm); } === Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar)