From nobody Mon Jan 15 00:13:06 2024 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 4TCt042YdFz575CY for ; Mon, 15 Jan 2024 00:13:24 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic314-20.consmr.mail.gq1.yahoo.com (sonic314-20.consmr.mail.gq1.yahoo.com [98.137.69.83]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 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 4TCt0364gQz4fFl for ; Mon, 15 Jan 2024 00:13:23 +0000 (UTC) (envelope-from marklmi@yahoo.com) Authentication-Results: mx1.freebsd.org; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1705277601; bh=bkManvDA6O5oWMSTApBOIZ+adaN+ygezH4BsHB7rd1A=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From:Subject:Reply-To; b=a3OZtm1bpdZcsXhNlcDqeqUruEE9RP313D9nPxMT2u6EVA3lldDIgmrROhbGnEKw4PtU31j5rfAY1QK+zQuUBIPopB07EDPkkOODD9nPVnflylVk0Hf+wDVAQFglgQYtc8P884HVoCPY1QtW8PVEeigpKXVS5uIyNdV3XdD2TCj+HFun+s3NdDAokscJ/90LUzw5UgRVy8wW10dvfHCIm5gHNjPQMxEHiUMcivPPOQuzjs1Y0HgJK4eVAzZrGU4LybPIVipJut8qSZ/wOfe/HLGLg8mVd+CfsjcEbAcfkqePcUsr+Dg1hIaJyxhl95bu5xIcopd8Z59w+np1/jF6sg== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1705277601; bh=447CEZlsxrQCvlwo+BccnlQd8PhKly+uUEknN8ivFFl=; h=X-Sonic-MF:Subject:From:Date:To:From:Subject; b=R8lOA2SQBxwZr3SveSfwnJjfXt2inZAz50Q98DOu9h2B7aW3TtQzES7N8lDXOw0QlsqoZMwaVzGmrOQR1fDnVFZ4XHWUw4ytfNdMAgORpitlKWixUdTDkcIvzB1xg611owhq5Y8G3zdNLlPl0jk75mycL5sZRGNtKkZ0FOPXxN5KjoE+NP6fV4Ja16CjVpGeablMgz7HvLvqyM5O6I+aolCsq2qBxFxAaoqrEBK7CmcWW6PrmYZF4uo6vddoJR5HI3PGw6a+nlBTo2gYh3U2+IbQtynZflY4GILNqSfvVjF4kfuMTOHJtUCzdAaMTDDL+dL2hb9f3AWdCQB4ZEiw5g== X-YMail-OSG: cFYlUAoVM1kw4hjaXUKd3fdLaLckx5FHeDlRYFgvAHTJv9Z7vPzNJ5tDWM1XfuD DoO_Sn9Ktq2QqJ8q4.DchtLm9JbcXWRZ5eWwLDFndQJ5lSartUELTVj.MYXO7eOKTbC0gkx4r4dy g1YqI7K6ctqmXDibuPqqwl0bBAOA0WbRJbSfQHmfCqSmUShNWUrbbmynxzQEuFrKFKJ2XLOGb1ni P6eV1gqQ46B2mSYdydM9ZvADh0x.3usop.q2pGYN1GvhDzXqp.3nVa4lWhIU2.45giC5skwSzEV4 pi3dviqsnJAU6T6445jSmPqT0gWxPxQZ3p1Stu9JX6l1LGmiLiqG51n.NwRssQnLR0dvsp3VbUtw ez8cZ8mtkgk1va5_BqP8eQMMz_5wpXXY8iKpOrQXpA674PuscSduCr5ebd6F7t_zROnAeUPaeKSb 6nxLNbsjqC2uO250kjMmZo6QiO91xM9_UShCUOWkBNuCgQ5edOoH6FHJCyMXAvDMvxLJKmnLNLpb .rBhMhzA6T_yjgvKrmnif4c3d4D8Uq..koGbj9qo3FbsjMmsOTGbSw6MrrG3SNj0ggwflAoCSSp2 NyV8b3rMgdd3365XVUP9biWBsbGPCcj7cTlusligKnvqPAfDQgLc7QZZzRIimYm9nz8Wc6TwIP_h C.ZHBay7F4G4bxCnx5gr5GMUbzYCwGq4.qL4JTNxjqEIR0Lrq7dQ9mR_dSADrnHC6T.bkO_fF8hT AaYmRDika7N5owwEgZ72126FizHauby_5XDzPyVwHpJtCCjWuxsVtUyJADF4U_SzaEstpXcLUgVS 8yTT4V50FljNU6pXHzsLkD66POLTwKfjmjF83.JoWKmHFPBm0OgQTqLu.a9NFBCqsAVYBxIP4DdX 8SOXagih9C39zYehOfJO7YsG6Nj1RLEzvxAm43qj.mBxiUh_5kIK.mchyc4XiWMA9XJg3qPcU1GB Ihz91eD8jtbmeuA.zuHz4wIop9cghURxEXE9HFxQ_tfDA_tPwUx3sbCN1VtMyj3rKbFw9zVXhZ2H qyWH5W2XelnuAhTPuRv2bTMkyNTkN1get3fgPkrmBYpNa8xhmVQKwotmfTHhe5XJI9c0TSQLFC1J i99YjDF9APMmCivUQL18FMa6eZO7dzEP2LIM6SyU0Ei7MgywzwIRa.nGZNwc54fysh_LvTw.9bbF YrW5xuYn6NGVeOJO3JF.7vCJB1r4iC9Ij.ieAQ5i_8Hk4tUpkiJpBXV.urCG2Tb.9._dUBal0GfP 3si.DGqmjhvZR8K.Wq.vSE63ZsszHbU.C3k2BiKimWd1sj9LD6zNKpJ1spARblk4CcqRpmBGAnwi 361drsA7dIzuxIBSHhYZYPfEPtJ6ZqSQXe997MPo5j_e0IlHu1UAVALgPOhmJgfU3jGMheVNHe1h 6aJS7HBMxch1BhgDuot5lgmk8yPq259hDcHcLOUTSVWY1k3G_5KdsvDvDgVO.XrfNACQBqUNJuY2 UWXKNcC133.F.I8lgLonMfAx04BlRxtkyTcQBXN416U8G0Ufv8ODtz7FWxMCxBrJjMzb_Wl.YevJ CkreWrWO0C9sZVjt9SsedrEfjtoPTWJ70eLPJqMHOpQn6O2Mq8HbhCz_PuveDsgrNbjxR96Fiwt8 ie8YX3pTGrLLSJi1uyez0GvnFQFewJ1o2gPxmXWBVRdubnma5OqwloYikcfYUG5c_h9PxgCUfKsf xLd7PWeLGA0g41kXvuu.ai3.HQPbaxqUaN9jWVIiT9RrSXe16EzUgceAmxwGrK2xvOaksOlN5c9F biriGyy0Q7nanwrUHGGzL8mcMk2jIHjn2VsYTHP9C0EpJF7cvvMmvlGJeuSvWm777A1KBlP6_hyX iw73zFeReai9Snc5FeSudd7i_QhrxtXRX9PgsHeRJes4JV0oegUIX4dugKYFboM48clKs7Kfc3r. GM4wLLDdav7Ki9R8p7uGD9PaOXUNoi7OlcydvWdNoBdaLQBv6yA6sxJxZACzVa8RV3qx4yyiKvnM Hlu5RAze85.OSqyvCi5dPUFK1uj_s7EAFtK.VLtFij3tC6V0WvSXcJv60q6A1EaPyWR512Jp7RFT pywJiS3zslx1C7XZsQjmkA7NBQrsUT0MgXH3jKKxb9YW.mLINX2P_4NEyEBkzUXMCxPyYIRZZyjs MuQP9yqUz0hvnDwUC.lmH.0US7zMR1SkEH38y16ZcmQ0HAnuRX10siMXyyVkuqy53n0wuDawYQk. yFnZYhp.ARgC0HKXVRupvix7vbWvbq8u7ot5I3HfjgkPDmW0DILEOUF68btxi3OoeUACBSqlUcN3 d X-Sonic-MF: X-Sonic-ID: ea04ecac-3e19-4bfc-aa2d-5fea7967782a Received: from sonic.gate.mail.ne1.yahoo.com by sonic314.consmr.mail.gq1.yahoo.com with HTTP; Mon, 15 Jan 2024 00:13:21 +0000 Received: by hermes--production-gq1-78d49cd6df-c978w (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID d53c08fd5caffc3703a841f0c8884297; Mon, 15 Jan 2024 00:13:16 +0000 (UTC) Content-Type: text/plain; charset=us-ascii 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 (Mac OS X Mail 16.0 \(3774.300.61.1.2\)) Subject: Re: noatime on ufs2 From: Mark Millard In-Reply-To: <20240115072732.85c2213714a658d3b98ab830@dec.sakura.ne.jp> Date: Sun, 14 Jan 2024 16:13:06 -0800 Cc: Olivier Certner , Current FreeBSD Content-Transfer-Encoding: quoted-printable Message-Id: <259993C7-D14C-48CC-9593-25FCC1741115@yahoo.com> References: <3183964.fD0qBhBWp0@ravel> <6A477CBE-692E-49F9-B21E-2C0D29F09766@yahoo.com> <20240115072732.85c2213714a658d3b98ab830@dec.sakura.ne.jp> To: Tomoaki AOKI X-Mailer: Apple Mail (2.3774.300.61.1.2) X-Rspamd-Queue-Id: 4TCt0364gQz4fFl X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:36647, ipnet:98.137.64.0/20, country:US] On Jan 14, 2024, at 14:27, Tomoaki AOKI = wrote: > On Sun, 14 Jan 2024 10:53:34 -0800 > Mark Millard wrote: >=20 >> On Jan 14, 2024, at 08:39, Olivier Certner wrote: >>=20 >>> Hi Mark, >>>=20 >>>> I never use atime, always noatime, for UFS. That said, I'd never = propose >>>> changing the long standing defaults for commands and calls. >>>=20 >>> With this mail, you're giving more detailed objections on the = social/political aspects of the proposed changed, or as we usually say = more simply, POLA. >>>=20 >>> All your points are already largely weakened by the fact that, to = wrap-up in a single sentence at the risk of being slightly caricatural = (but then see my other mails), nobody really seems to care seriously = about access times. >>=20 >> I seriously care about having a lack of access times. Yet, I've no >> objection to needing to be explicit about it in commands and >> subroutine interfaces, given the long standing interfaces (defaults). >> It would be different if I could not achieve the lack of access >> times. That defaults do not block having the desired settings makes >> the change optional, not technically required. The defaults are, >> thus, primarily social/political aspects of interfaces, not >> technical requirements to make things work. >>=20 >> Given that, I explicitly claim that avoiding POLA at this late stage >> is my preference for the priority of competing considerations. I >> make no claim of knowing the majority view of the tradeoffs. I would >> claim that, if the majority is not by just some marginal amount, >> contradicting that majority view for this would not be appropriate. >> (Again: the social/political aspects.) >>=20 >> And, hopefully, this is my last contribution to this particular >> bike shed. >>=20 >> =3D=3D=3D >> Mark Millard >> marklmi at yahoo.com >=20 > I would prefer violating POLA here, with, for example, forcing admins > to choose explicitly with installer menu I've not reported any objection to bsdinstall having explicit choices required in its menus. Nor to changing how, say, official snapshots are generated (so long as well notified and documented). If my wording was unclear on that, I'm sorry. My focus was on things like mount command notation and /etc/fstab notation (that tracks mount defaults) or subroutine interface equivalents of such things and changing their behavior without requiring changing the notation already in place in various files. (I've tried to word the above without making new points, avoiding contributing more to the bike shed material.) > Choose whether you need to retain last file access time or not: > 1: Don't keep (current default) > 2: Keep last one (default before 15.0) >=20 > by hand, or via installer configuration or additional scripts. > Of course, existing installations should not be affected. >=20 =3D=3D=3D Mark Millard marklmi at yahoo.com From nobody Mon Jan 15 00:41:31 2024 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 4TCtcr1P2yz577XH for ; Mon, 15 Jan 2024 00:41:48 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic308-8.consmr.mail.gq1.yahoo.com (sonic308-8.consmr.mail.gq1.yahoo.com [98.137.68.32]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 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 4TCtcq5twkz4k14 for ; Mon, 15 Jan 2024 00:41:47 +0000 (UTC) (envelope-from marklmi@yahoo.com) Authentication-Results: mx1.freebsd.org; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1705279305; bh=w6djuVBFdOzva80qF36vfV7zqU3KW/ZZvm8t/9x4oyY=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From:Subject:Reply-To; b=Xsv9uzndzzKgzOQ8FtKxH11TkB3vuYbIbzm8vRpKo1dCAgCsEb1GrL5Va66A2FzW7rpbga0q3PSNBrNBMmt0OPAdYUuKA7m+29jDp5kSQht8zs9rjUty8nYyrwLVh2xsgl6dP5SYUlg3VaAJZ3jgp1yuJwMMPPU9Am9qHn1WnkCa2QcRIFr+yrNJbFqu2aevUck+AIt0gigZja1MMwmMSSESUDnCmrTCZqZQ9w2a5Ud2/LUFQZiqWAdW0kWWaf4m+akLvtTwT8byp4nhpjKIZueWDgLSCDFF1v8tnP8wfFFGmMOGFWOJDXR61PuSk8Ea0kyp3XDDCdOkw33o7Vwi7w== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1705279305; bh=riJpU4D8dnEjGx1OaxOCpc8NnA7RtGc5VTOWdjnCCfA=; h=X-Sonic-MF:Subject:From:Date:To:From:Subject; b=DmHQB93j7lQqAD9CTKyOF8dOwPmPagTcXzkUZT3x1ykXqRvvJ8ebEV672GfVIFY+DbQNGG9I7OPQKXC2rbjBZ1IKJP4cl0JeTErmcg7jYkG04pevz28qph+ZVt3Xb2FHNHhN1Dw/Ea3TGWp7aG18mpsmw+q1SfUMJwDBblC6yMIOWQHqtMJVBhAId1+uEaz4jOdYiIteA7k8LJ4Y/tZwlALbW7DSUUzDGlrgS3uaenG6JiBz8zKUSYKssZmyLtZF4rCfSWWJ2tRFHV2r5kd9TTfj4rW54rVb6JwlVdy0qCB5ZYQ5uGNF1mb8jG0taDScI1iQIA0IhPbD46qQM5FckA== X-YMail-OSG: QobEzYQVM1l2L4dpP1NL3_f9Xq7XsyLaFIoyzY7zbztzV_xT5jCUTslpXCrp3Vg kvOgwtmuIqtIU2HZBus4Hgm3EDsA2nH8y_gtajDP6QajcKXLo7pflQrTeoDAZcy2yvrNzUmw0VY6 D1ZZNyj2gJfHYELvn4gGvX4weeH3NePo9hNw5BWp9knuVMIT_k1ky4InmYMCkxw_Lw5avViI1HDi b9Yj9IZIGsXjK15o0fi9zn9fF79PFdgwcaS4hAVrXYzSytyeuRY9vAN3AAF4Ip6S0CBjlbpaDKq. 5tJHRc97H1lEVkxysBPNxSMYo2R6kA_H5WXoW5gWTlwDHETN4oQ_1nxfiOea2BfuIIMAdNRJbuXs c1TTot9.NPSmnKjqfVq5caLvneWzVi6D0l.zkiTXFYqD1V6sM259EbO4Zc.6akRzhac65cJHaaPm 2nBpJup3.Ed68keqKqD.QyqLTgAb8xAdS3W4aVruQTd62qFtCbo7b8vpRmeRT7mcqB.5q9eftdXT 2IgCyy9tMiae.W7wjCon9N7L3ucsfKW6r2aNQLfBnOWs3zyIXHg3yIfofmQqphivhDA2LRsLrqBT bxGTJUK_RtF8e_eZ8MZRwoPWHelk_OnC6pdzIoB7TkfFX3GT7HBfXyJPn6LXKAeTiYgBX8e09STy smmAZpj0a8EYochHGC1qxsXkwbxuBnYo1VRQzCoiMj9odtx3vUfrdQIzoLRXxw2fGbSX.paHtrl5 fTAlWdrj22lgNcvEYcDKK8nwbOY4.gJH08x2CAA4cVOZvjdW9H4SiYskA8SxW1k_ZjmYxxCQYP1s CU0QCLuHuZ7.l3JtAguKZcG3vZw0kTC.84mNyntAmF4ekCa.7kc3Phu9S6YgCIvnUMBCxziLTAv_ V3Hxc3nAyRrHOPzRIzaUMpWFpEHLwyZAHIvdgT9YpXKcvFQe.0qQ0tzIyOXc81i6yeFzmfSrpGpX Ioa.UOskkFpBYR0IO1_ubWMlKqJtSF9jzSln2ND8mTt2spCwfsRfcOHjQ0Wg3o2xlNYehe6npNc7 y3UDIeVmowXBAPf_FYQtWQXpG3zQZDDJQ1Tii0pCugz5nc7GWKaZUkhoXxfhP4QlTXb1UBHFm0gz bXnvVxEeT7jwnxgmKwW0rzPNi1T5vL1uPEf4CH7OjEqB.XhxDBfej56cVMfJVF1OXae.xZ4xLiC5 ou8GDEzBQ5z95NxBKcVWmEjGa5rJAXnmidxuW0Ax2HalL6FaPdXCqIsnfuj7okjDjRvv2qgsXl3Y VWIEJzjCx7z3rDsdUpnJcrbQldMmgKT.sSEiop5wC4jL0Z_E4odVO6jogyyUb_2pNk.pQAcFODbp gINoT73D3C5CR3gaEwlXFSW8l4uFsDZJtlX4qgDY_ZigaM57x9HSBZeUT6LqgVxuv5svWCta09WO HVzw7Amxh1meSrjdsNs9sJTxSMonNrsfQOE_A1VfcfOPKdXYu.ziqN5njJU_5.i2dh0t73dQaXSB _uUIUnwPpjYgVQzNGZRHtLWITnQ1TfsQGnayclsV2eVbvIpjlgn9fljL6oJ.1i5ZUHCktHTj1ti9 3lx7NZeiis2CCQgxj5v77Y9e9WPNjoHwkQMQqwFZT0LtdV6F4rBUlD_Nuk4FdjLNfI0suphk_el7 yA6OJiNHYIzzwyRKSHp.PXKHcBOXrZve1IeZBJd50.S45AYgX52J_NwHjW3ZjjEzguOf8f8cvNvt hVZmiqLk4ZpQ0gGtkCyUnW_QKoHbyV9PXAJCgiTuyWra3pnOrhOoLcZnEDx25wSu4tlihNGi_463 WLxS53RGVI57cNmIXGCAvTqwlyUhS1dd3jTW9XHchjmeVbmA_y89YAsonNE6NJftivnoZnrQjy5j 42gqTZ_quqN7ntGD7X40Hk85na6.WprelPcTYJpjIw_bbVgJ95J9aIZUrkaU0usvuBJQs4OUtKFS XcbOlkSAymMzsEMunuuf6QZ0oz_8mrobZ6zapwZ3Q3JnI.cFqg.R7LS0vgkUEFln5Gi305fDTNDO Nx_mWorc6Q60hp_lYB9Sp7E5Z.y56xhI1pKtafcjZfb4aQGrwJKaFw743l80UBH3LunYpD0Jx5rf 4NwQx.P9gQNfRSOx3sWl5FVWekewIi1wY4r4NWCSMWUoOhSqRnX.ii3Et9pvOQX4.JAIgkOEJjA9 p4j2YteNlvMAxnsjMC4gtKPupE_mitvtFQZo6DfgXpE3OYhulX0Ot461kHPSgL9rFXaebw.BVN7y j5W_Y0l9lkxs4K6lQX03wiK.T_WGu0x6IJoQitCHlPbKMMXuRDw41gnFjQMds.EW6LPAHCnfrUPo - X-Sonic-MF: X-Sonic-ID: 20d5e14e-8a36-4434-ba90-57e9be0fa66c Received: from sonic.gate.mail.ne1.yahoo.com by sonic308.consmr.mail.gq1.yahoo.com with HTTP; Mon, 15 Jan 2024 00:41:45 +0000 Received: by hermes--production-gq1-78d49cd6df-7zwgw (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 44a1b5ce37fa7a2dd70cd870d3b53abe; Mon, 15 Jan 2024 00:41:42 +0000 (UTC) Content-Type: text/plain; charset=us-ascii 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 (Mac OS X Mail 16.0 \(3774.300.61.1.2\)) Subject: Re: noatime on ufs2 From: Mark Millard In-Reply-To: <12921270.kl7XSLc1hW@ravel> Date: Sun, 14 Jan 2024 16:41:31 -0800 Cc: Current FreeBSD Content-Transfer-Encoding: quoted-printable Message-Id: <74B030A5-6141-4FE2-AE8C-79548B82FAF0@yahoo.com> References: <3183964.fD0qBhBWp0@ravel> <6A477CBE-692E-49F9-B21E-2C0D29F09766@yahoo.com> <12921270.kl7XSLc1hW@ravel> To: Olivier Certner X-Mailer: Apple Mail (2.3774.300.61.1.2) X-Rspamd-Queue-Id: 4TCtcq5twkz4k14 X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:36647, ipnet:98.137.64.0/20, country:US] On Jan 14, 2024, at 15:15, Olivier Certner wrote: > Hi Mark, >=20 >> I seriously care about having a lack of access times. >=20 > Then, I think elaborating on your use cases would be valuable to the = discussion, if by chance you want to and can share about them. I'm confused: I go to the trouble to produce the same end result as your suggested change of defaults would produce, ending up with no recording of access times. Nothing about that of itself implies that I'd want the defaults for mount notation or /etc/fstab notation or the like changed --or that I'd want them unchanged. To narrow of a context for such a judgment about defaults. In case the potential confusion is involved, I'll quote another reply that I just made relative to more potential use of notime: QUOTE I've not reported any objection to bsdinstall having explicit choices required in its menus. Nor to changing how, say, official snapshots are generated (so long as well notified and documented). If my wording was unclear on that, I'm sorry. My focus was on things like mount command notation and /etc/fstab notation (that tracks mount defaults) or subroutine interface equivalents of such things and changing their behavior without requiring changing the notation already in place in various files. (I've tried to word the above without making new points, avoiding contributing more to the bike shed material.) END QUOTE =3D=3D=3D Mark Millard marklmi at yahoo.com From nobody Mon Jan 15 04:34:12 2024 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 4TCzn41M0fz57cQB for ; Mon, 15 Jan 2024 04:34:16 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from omta001.cacentral1.a.cloudfilter.net (omta001.cacentral1.a.cloudfilter.net [3.97.99.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "Client", Issuer "CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4TCzn32brmz4KtS for ; Mon, 15 Jan 2024 04:34:15 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=none (mx1.freebsd.org: domain of cy.schubert@cschubert.com has no SPF policy when checking 3.97.99.32) smtp.mailfrom=cy.schubert@cschubert.com Received: from shw-obgw-4002a.ext.cloudfilter.net ([10.228.9.250]) by cmsmtp with ESMTPS id OzwwrFJv9xDxGPEfvrYao4; Mon, 15 Jan 2024 04:34:15 +0000 Received: from spqr.komquats.com ([70.66.152.170]) by cmsmtp with ESMTPSA id PEftruOsgwbmvPEfuraTLf; Mon, 15 Jan 2024 04:34:15 +0000 X-Authority-Analysis: v=2.4 cv=O6wqATxW c=1 sm=1 tr=0 ts=65a4b5c7 a=y8EK/9tc/U6QY+pUhnbtgQ==:117 a=y8EK/9tc/U6QY+pUhnbtgQ==:17 a=kj9zAlcOel0A:10 a=dEuoMetlWLkA:10 a=T8hboYP3AAAA:8 a=6I5d2MoRAAAA:8 a=YxBL1-UpAAAA:8 a=EkcXrb_YAAAA:8 a=UrBP3XFBGl7xFWMT2GsA:9 a=CjuIK1q_8ugA:10 a=3Xhr1e3L9Km7VwPPQCJS:22 a=IjZwj45LgO3ly-622nXo:22 a=Ia-lj3WSrqcvXOmTRaiG:22 a=LK5xJRSDVpKd5WXXoEvA:22 Received: from slippy.cwsent.com (slippy [10.1.1.91]) by spqr.komquats.com (Postfix) with ESMTP id 285E01C41; Sun, 14 Jan 2024 20:34:13 -0800 (PST) Received: by slippy.cwsent.com (Postfix, from userid 1000) id B6998C8; Sun, 14 Jan 2024 20:34:12 -0800 (PST) X-Mailer: exmh version 2.9.0 11/07/2018 with nmh-1.8+dev Reply-to: Cy Schubert From: Cy Schubert X-os: FreeBSD X-Sender: cy@cwsent.com X-URL: http://www.cschubert.com/ To: Rick Macklem cc: Ronald Klop , FreeBSD User , FreeBSD CURRENT Subject: Re: NFSv4 crash of CURRENT In-reply-to: References: <20240113193324.3fd54295@thor.intern.walstatt.dynvpn.de> <1369645989.13766.1705178331205@localhost> Comments: In-reply-to Rick Macklem message dated "Sat, 13 Jan 2024 19:41:30 -0800." 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 Date: Sun, 14 Jan 2024 20:34:12 -0800 Message-Id: <20240115043412.B6998C8@slippy.cwsent.com> X-CMAE-Envelope: MS4xfD/s3AwWzQFjOUvrrupCvPqPhkQxuTT6Vzp7WLelvsIXns+a0qThVkupPoJnS+fu3HB8Waf5tFhghZftpc8TlNfmOVsFRr6ASFf0IFRRsyhRxcR6V/nu zbFDOw8ZXOs/Dh5BHGv4Jscdy1+SI3iQZQx0N/5dFhckA4NiTO+9QbrQHmYDGYW1rewoZ2gW8dhDd5RQFjSy8N/hhx2xeZ2X8EO7t+0/D5B01fuM4MiQmhOn IYkCbikduskWD/47JqDGF2wwA7OdAD4lHlYIwwpyeudwCwb7u0ySV2Cb3o9pnoKDdTjumuABog1SmjLLzUum9g== X-Spamd-Bar: / X-Spamd-Result: default: False [-0.20 / 15.00]; SUSPICIOUS_RECIPS(1.50)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; AUTH_NA(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-0.999]; MV_CASE(0.50)[]; MIME_GOOD(-0.10)[text/plain]; RCVD_IN_DNSWL_LOW(-0.10)[3.97.99.32:from]; RCPT_COUNT_THREE(0.00)[4]; MIME_TRACE(0.00)[0:+]; TO_DN_ALL(0.00)[]; RCVD_TLS_LAST(0.00)[]; ARC_NA(0.00)[]; FREEMAIL_TO(0.00)[gmail.com]; DMARC_NA(0.00)[cschubert.com]; RCVD_COUNT_THREE(0.00)[4]; R_SPF_NA(0.00)[no SPF record]; ASN(0.00)[asn:16509, ipnet:3.96.0.0/15, country:US]; TO_MATCH_ENVRCPT_SOME(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; HAS_REPLYTO(0.00)[Cy.Schubert@cschubert.com]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; TAGGED_RCPT(0.00)[]; R_DKIM_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; REPLYTO_EQ_FROM(0.00)[] X-Rspamd-Queue-Id: 4TCzn32brmz4KtS In message , Rick Macklem writes: > On Sat, Jan 13, 2024 at 12:39=E2=80=AFPM Ronald Klop = > wrote: > > > > > > Van: FreeBSD User > > Datum: 13 januari 2024 19:34 > > Aan: FreeBSD CURRENT > > Onderwerp: NFSv4 crash of CURRENT > > > > Hello, > > > > running CURRENT client (FreeBSD 15.0-CURRENT #4 main-n267556-69748e62e82a= > : Sat Jan 13 18:08:32 > > CET 2024 amd64). One NFSv4 server is same OS revision as the mentioned cl= > ient, other is FreeBSD > > 13.2-RELEASE-p8. Both offer NFSv4 filesystems, non-kerberized. > > > > I can crash the client reproducable by accessing the one or other NFSv4 F= > S (a simple ls -la). > > The NFSv4 FS is backed by ZFS (if this matters). I do not have physicla a= > ccess to the client > > host, luckily the box recovers. > Did you rebuild both the nfscommon and nfscl modules from the same sources? > I did a commit to main that changes the interface between these two > modules and did bump the > __FreeBSD_version to 1500010, which should cause both to be rebuilt. > (If you have "options NFSCL" in your kernel config, both should have > been rebuilt as a part of > the kernel build.) > Is anyone by chance seeing autofs in the backtrace too? -- Cheers, Cy Schubert FreeBSD UNIX: Web: https://FreeBSD.org NTP: Web: https://nwtime.org e^(i*pi)+1=0 From nobody Mon Jan 15 05:46:37 2024 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 4TD1PG4q9Fz57kmZ for ; Mon, 15 Jan 2024 05:47:14 +0000 (UTC) (envelope-from freebsd@walstatt-de.de) Received: from smtp6.goneo.de (smtp6.goneo.de [IPv6:2001:1640:5::8:31]) (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 4TD1PF6QZJz4RdP for ; Mon, 15 Jan 2024 05:47:13 +0000 (UTC) (envelope-from freebsd@walstatt-de.de) Authentication-Results: mx1.freebsd.org; none Received: from hub1.goneo.de (hub1.goneo.de [85.220.129.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp6.goneo.de (Postfix) with ESMTPS id A9EF82407DC; Mon, 15 Jan 2024 06:47:08 +0100 (CET) Received: from hub1.goneo.de (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)) (No client certificate requested) by hub1.goneo.de (Postfix) with ESMTPS id 5C3C12407F4; Mon, 15 Jan 2024 06:47:05 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=walstatt-de.de; s=DKIM001; t=1705297625; 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; bh=0rFVvWBxui2sUZMXqJOSoZV0JLR9Z4LfcFCOFRxTlJQ=; b=oSpYDNYiya+L6xgMNbbyG64Mz6nFVU4nRYZG+lGPMqZvlCbsJqacq/Y8x97PFf5MLoHP6E mA35gq5xKe5QU50xeCyHGn8l/jkrj1ntCC+q2uPLHRX3DELRcnfMq3NKEcI/JrMhUHZbxW IxeUYm9WSOODhO6DpzzoxqovQqFd3A2SbO95IFU6ZpW+yfXlk7+p8Ur2rWL1otXNbDj0Ak tDvqgzO6ANHKP6Ai94cd/Og6cizR0Iv2Z0Qkhr3Zjw7Pn5VsMvXf6QlMBRCTWAkf/CdDwO SaUYwnTJhVrPHguofx8OrE0PPDuUC1WTxDm7Oqs3rYDn2vBhCjUyJV2YMezUAw== Received: from thor.intern.walstatt.dynvpn.de (dynamic-089-012-064-156.89.12.pool.telefonica.de [89.12.64.156]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by hub1.goneo.de (Postfix) with ESMTPSA id EA62B2404D7; Mon, 15 Jan 2024 06:47:04 +0100 (CET) Date: Mon, 15 Jan 2024 06:46:37 +0100 From: FreeBSD User To: Cy Schubert Cc: Rick Macklem , Ronald Klop , FreeBSD CURRENT Subject: Re: NFSv4 crash of CURRENT Message-ID: <20240115064704.611fe0c4@thor.intern.walstatt.dynvpn.de> In-Reply-To: <20240115043412.B6998C8@slippy.cwsent.com> References: <20240113193324.3fd54295@thor.intern.walstatt.dynvpn.de> <1369645989.13766.1705178331205@localhost> <20240115043412.B6998C8@slippy.cwsent.com> Organization: walstatt-de.de 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-Transfer-Encoding: 7bit X-Rspamd-UID: 411082 X-Rspamd-UID: 3b79b3 X-Rspamd-Queue-Id: 4TD1PF6QZJz4RdP X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; TAGGED_RCPT(0.00)[]; ASN(0.00)[asn:25394, ipnet:2001:1640::/32, country:DE] Am Sun, 14 Jan 2024 20:34:12 -0800 Cy Schubert schrieb: > In message om> > , Rick Macklem writes: > > On Sat, Jan 13, 2024 at 12:39=E2=80=AFPM Ronald Klop = > > wrote: > > > > > > > > > Van: FreeBSD User > > > Datum: 13 januari 2024 19:34 > > > Aan: FreeBSD CURRENT > > > Onderwerp: NFSv4 crash of CURRENT > > > > > > Hello, > > > > > > running CURRENT client (FreeBSD 15.0-CURRENT #4 main-n267556-69748e62e82a= > > : Sat Jan 13 18:08:32 > > > CET 2024 amd64). One NFSv4 server is same OS revision as the mentioned cl= > > ient, other is FreeBSD > > > 13.2-RELEASE-p8. Both offer NFSv4 filesystems, non-kerberized. > > > > > > I can crash the client reproducable by accessing the one or other NFSv4 F= > > S (a simple ls -la). > > > The NFSv4 FS is backed by ZFS (if this matters). I do not have physicla a= > > ccess to the client > > > host, luckily the box recovers. > > Did you rebuild both the nfscommon and nfscl modules from the same sources? > > I did a commit to main that changes the interface between these two > > modules and did bump the > > __FreeBSD_version to 1500010, which should cause both to be rebuilt. > > (If you have "options NFSCL" in your kernel config, both should have > > been rebuilt as a part of > > the kernel build.) > > > > Is anyone by chance seeing autofs in the backtrace too? > > Hello Cy Shubert, I forgot to mention that those crashes occur with autofs mounted filesystems. Good question, by the way, I will check whether crashes also happen when mounting the tradidional way. Kind regards, oh -- O. Hartmann From nobody Mon Jan 15 07:26:57 2024 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 4TD3cQ5fhKz56C8N for ; Mon, 15 Jan 2024 07:27:02 +0000 (UTC) (envelope-from gerrit.kuehn@aei.mpg.de) Received: from umail2.aei.mpg.de (umail2.aei.mpg.de [194.94.224.8]) (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 4TD3cQ2Cypz4bfy for ; Mon, 15 Jan 2024 07:27:02 +0000 (UTC) (envelope-from gerrit.kuehn@aei.mpg.de) Authentication-Results: mx1.freebsd.org; none Received: from arc.aei.uni-hannover.de (ahgate1.aei.uni-hannover.de [130.75.117.49]) by umail2.aei.mpg.de (Postfix) with ESMTPS id A24051FA5DD2; Mon, 15 Jan 2024 08:26:58 +0100 (CET) Date: Mon, 15 Jan 2024 08:26:57 +0100 From: Gerrit =?UTF-8?B?S8O8aG4=?= To: "Patrick M. Hausen" Cc: FreeBSD Current Subject: Re: noatime on ufs2 Message-ID: <20240115082657.5ca6da26@arc.aei.uni-hannover.de> In-Reply-To: <14AED5F5-CC24-4A04-89A6-F43628CE563F@hausen.com> References: <4014880.cjyAsbXg9l@ravel> <14AED5F5-CC24-4A04-89A6-F43628CE563F@hausen.com> Organization: MPG X-Mailer: Claws Mail 3.19.0 (GTK+ 2.24.33; amd64-portbld-freebsd13.1) 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: multipart/signed; boundary="Sig_/go6ra6EDg2tnbB0iQ8sfauY"; protocol="application/pkcs7-signature"; micalg=SHA384 X-Rspamd-Queue-Id: 4TD3cQ2Cypz4bfy X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:680, ipnet:194.94.0.0/15, country:DE] --Sig_/go6ra6EDg2tnbB0iQ8sfauY Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Am Sun, 14 Jan 2024 19:14:16 +0100 schrieb "Patrick M. Hausen" : > That number at first looks like a serious load on the write endurance > of your SSD. Then, doing the math it turns out it's absolutely > ridiculous. >=20 > 100 kB/s sums up to 8,640 GB/day (in decimal units). Even the small > SSDs typically used for embedded devices like firewalls (32 or 64 G > capacity) have a write endurance in the order of 100 or 200 TBW. >=20 > That's more than 10.000 days or roughly 30 years ... This highly depends on how your written data are distributed on the disk. I have seen cases of write amplification by orders of magnitude, e.g., when adding few bytes on many (several 10k) different files. cu Gerrit --Sig_/go6ra6EDg2tnbB0iQ8sfauY Content-Type: application/pkcs7-signature; name=smime.p7s Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=smime.p7s MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgIFADCABgkqhkiG9w0B BwEAAKCCF/QwggQyMIIDGqADAgECAgEBMA0GCSqGSIb3DQEBBQUAMHsxCzAJBgNV BAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcMB1Nh bGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSEwHwYDVQQDDBhBQUEg Q2VydGlmaWNhdGUgU2VydmljZXMwHhcNMDQwMTAxMDAwMDAwWhcNMjgxMjMxMjM1 OTU5WjB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVy MRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEh MB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0B AQEFAAOCAQ8AMIIBCgKCAQEAvkCd9G7h6naHHE1FRI6+RsiDBp3BKv4YH47kAvrz q11QihYxC5oG0MVwIs1JLVRjzLZuaEYLU+rLTCTAvHJO6vEVrvRUmhIKw3qyM2Di 2olV8yJY897cz++DhqKMlE+faPKYkEaEJ8d2v+PMNSyLXgdkZYLASLCokflhn3Yg UKiRx2a163hiA1bwihoT6jGjHqCZ/Tj29icyWG8H9Wu4+xQrr7eqzNZjX3OM2gWZ qDioyxd4NlGs6Z70eDqNzw/ZQuKYDKsvnw4B3u+fmUnxLd+sdE0bmLVHxeUp0fmQ GMdinL6DxyZ7Poolx8DdneY1aBAgnY/Y3tLDhJwNXugvyQIDAQABo4HAMIG9MB0G A1UdDgQWBBSgEQojPpbxB+zirynvgqV/0DCktDAOBgNVHQ8BAf8EBAMCAQYwDwYD VR0TAQH/BAUwAwEB/zB7BgNVHR8EdDByMDigNqA0hjJodHRwOi8vY3JsLmNvbW9k b2NhLmNvbS9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNybDA2oDSgMoYwaHR0cDov L2NybC5jb21vZG8ubmV0L0FBQUNlcnRpZmljYXRlU2VydmljZXMuY3JsMA0GCSqG SIb3DQEBBQUAA4IBAQAIVvwC8Jvo/6T61nvGRIDOT8TF9gBYzKa2vBRJaAR26Obu XewCD2DWjVAYTyZOAePmsKXuv7x0VEG//fwSuMdPWvSJYAV/YLcFSvP28cK/xLl0 hrYtfWvM0vNG3S/G4GrDwzQDLH2W3VrCDqcKmcEFi6sML/NcOs9sN1UJh95TQGxY 7/y2q2VuBPYb3DzgWhXGntnxWUgwIWUDbOzpIXPsmwOh4DetoBUYj/q6As6nLKkQ EyzU5QgmqyKXYPiQXnTUoppTvfKpaOCibsLXbLGjD56/62jnVvKu8uMrODoJgbVr hde+Le0/GreyY+L1YiyC1GoAQVDxOYOflek2lphuMIIFgTCCBGmgAwIBAgIQOXJE Ovkit1HX02wQ3TE1lTANBgkqhkiG9w0BAQwFADB7MQswCQYDVQQGEwJHQjEbMBkG A1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYD VQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRl IFNlcnZpY2VzMB4XDTE5MDMxMjAwMDAwMFoXDTI4MTIzMTIzNTk1OVowgYgxCzAJ BgNVBAYTAlVTMRMwEQYDVQQIEwpOZXcgSmVyc2V5MRQwEgYDVQQHEwtKZXJzZXkg Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMS4wLAYDVQQDEyVV U0VSVHJ1c3QgUlNBIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG 9w0BAQEFAAOCAg8AMIICCgKCAgEAgBJlFzYOw9sIs9CsVw127c0n00ytUINh4qog TQktZAnczomfzD2p7PbPwdzx07HWezcoEStH2jnGvDoZtF+mvX2do2NCtnbyqTsr kfjib9DsFiCQCT7i6HTJGLSR1GJk23+jBvGIGGqQIjy8/hPwhxR79uQfjtTkUcYR Z0YIUcuGFFQ/vDP+fmyc/xadGL1RjjWmp2bIcmfbIWax1Jt4A8BQOujM8Ny8nkz+ rwWWNR9XWrf/zvk9tyy29lTdyOcSOk2uTIq3XJq0tyA9yn8iNK5+O2hmAUTnAU5G U5szYPeUvlM3kHND8zLDU+/bqv50TmnHa4xgk97Exwzf4TKuzJM7UXiVZ4vuPVb+ DNBpDxsP8yUmazNt925H+nND5X4OpWaxKXwyhGNVicQNwZNUMBkTrNN9N6frXTps NVzbQdcS2qlJC9/YgIoJk2KOtWbPJYjNhLixP6Q5D9kCnusSTJV882sFqV4Wg8y4 Z+LoE53MW4LTTLPtW//e5XOsIzstAL81VXQJSdhJWBp/kjbmUZIO8yZ9HE0XvMns QybQv0FfQKlERPSZ51eHnlAfV1SoPv10Yy+xUGUJ5lhCLkMaTLTwJUdZ+gQek9Qm RkpQgbLevni3/GcV4clXhB4PY9bpYrrWX1Uu6lzGKAgEJTm4Diup8kyXHAc/DVL1 7e8vgg8CAwEAAaOB8jCB7zAfBgNVHSMEGDAWgBSgEQojPpbxB+zirynvgqV/0DCk tDAdBgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgGG MA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0gBAowCDAGBgRVHSAAMEMGA1UdHwQ8MDow OKA2oDSGMmh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL0FBQUNlcnRpZmljYXRlU2Vy dmljZXMuY3JsMDQGCCsGAQUFBwEBBCgwJjAkBggrBgEFBQcwAYYYaHR0cDovL29j c3AuY29tb2RvY2EuY29tMA0GCSqGSIb3DQEBDAUAA4IBAQAYh1HcdCE9nIrgJ7cz 0C7M7PDmy14R3iJvm3WOnnL+5Nb+qh+cli3vA0p+rvSNb3I8QzvAP+u431yqqcau 8vzY7qN7Q/aGNnwU4M309z/+3ri0ivCRlv79Q2R+/czSAaF9ffgZGclCKxO/WIu6 pKJmBHaIkU4MiRTOok3JMrO66BQavHHxW/BBC5gACiIDEOUMsfnNkjcZ7Tvx5Dq2 +UUTJnWvu6rvP3t3O9LEApE9GQDTF1w52z97GA1FzZOFli9d31kWTz9RvdVFGD/t So7oBmF0Ixa1DVBzJ0RHfxBdiSprhTEUxOipakyAvGp4z7h/jnZymQyd/teRCBah o1+VMIIG5jCCBM6gAwIBAgIQMQJw1DW+mySa+FbQ4eKFSTANBgkqhkiG9w0BAQwF ADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcT C0plcnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAs BgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcN MjAwMjE4MDAwMDAwWhcNMzMwNTAxMjM1OTU5WjBGMQswCQYDVQQGEwJOTDEZMBcG A1UEChMQR0VBTlQgVmVyZW5pZ2luZzEcMBoGA1UEAxMTR0VBTlQgUGVyc29uYWwg Q0EgNDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALNK4iJeJ1vpBFsU BDUyIBSutNIxQMbNUMAeoUTKr55KYX8tkN5imzNqLaRCypYBPP9wED2AaO6e8njk bjzJwLgPqDBkW9sG3kmi3GW6cF4Hwr5ysZqve/5EJDhV+9OhfTu/4dMnoR4Q41Hc jMk9MzLOADAQ0awBZ/29r0d49AUmIKELNeqEqmnTN6fndL7x/2K0TLToZLxqS7sy /Jvi0wEFr0CfdjcAsioh7KaD+Jizyb1aRKQzJ6Q20VEHX7UqWc1SkzTkbz6xj0S5 ydBBFQh0fNiy+qM/deVpK4HgmPSJrrpQZ+LlbHfWabmwoDPxF71QZVYiqrrAoUrG RJ+47iLBiIg8miIYS7Hd2ppvAUt24CugMXUjETjQ+oYh09fNi5n/AvoER8UBvTHL xt+blL0bvL+2z2YiUWk+2Qtn+dD+JU5Z2y71qV7+cr+4YXjvGzF5bYsi8HiwflTb 4Php3y+k1twKtchdcq2QGc0eDG6Y01nRHUiyr8/PtMAsLHEPNZ2wzsA7fb8mftHi V20ZFmYqknJ8AIOfwdTVA+E62JayOJ+sxadqcmFDorsz/mrPwGZ8+txr4xSuvVjg 0dlv0yuA+1YpBDIYNfL4bkX+IcZ1mTstL4Xw0f4N2iW3bBmnPnYmoYxMM8gflCiT gss73nBvG2f7v1PD7BDGYNO4iD4vAgMBAAGjggGLMIIBhzAfBgNVHSMEGDAWgBRT eb9aqitKz1SA4dibwJ3ysgNmyzAdBgNVHQ4EFgQUaQChxyFY+ODFGyCwCt2nUb8T 2eQwDgYDVR0PAQH/BAQDAgGGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0lBBYw FAYIKwYBBQUHAwIGCCsGAQUFBwMEMDgGA1UdIAQxMC8wLQYEVR0gADAlMCMGCCsG AQUFBwIBFhdodHRwczovL3NlY3RpZ28uY29tL0NQUzBQBgNVHR8ESTBHMEWgQ6BB hj9odHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVNFUlRydXN0UlNBQ2VydGlmaWNh dGlvbkF1dGhvcml0eS5jcmwwdgYIKwYBBQUHAQEEajBoMD8GCCsGAQUFBzAChjNo dHRwOi8vY3J0LnVzZXJ0cnVzdC5jb20vVVNFUlRydXN0UlNBQWRkVHJ1c3RDQS5j cnQwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJKoZI hvcNAQEMBQADggIBAAoFTnsNjx8TOQD9b+xixsPt7Req4wHMeNw/R5dddEPgQAQA YJZKz5BEv1cjGbH7nbPH3AxrxhN6OVH40p6OLIo9MXSrrfMzGs7/P+FTCjwgNxFE tLQ1KC9NboA3asJcl7mIs3l8h9iAgEH1zLUvq2s+5n++NQmbzudDsTFDMapY3kX1 TwyUCTRzmItqcbsYIyg2MeIXWfRtqPqC5R4bufmpzA5BPINLX340Sp/CNQ9QZqw3 VkfyHWwTo+vO9Gm2L6srNamJT6Lb+TeXZvl8UPL5a72O/pH0GgGHjt6z9QzPARna RKshVWviNK6ST4WmZHllu3CJg0BXqx1vWyswawgvNeWt1qxITacYe9mSWTbNR2Cf tvTUwerruDSY2jMaZPoNqbjUpuG/blYwWzzvVerBUhviAahPXJF/9V48ybWPBq6q KOEokW+s3B4ad5sY96KlovEijaIQDip1HO0SD+rLNYaiBcr9MV2aK+DfbZ8w9BaN CQyFEYwzxIKOVk3bYvzHRk5ihUDascmbk/bkiNl74c/KfuKQmJImaqWoWZR6jBcX cPV0WUIKz/nILTpFhGojZEQW77by3aezAi9jrEIUBHRG1LwzPbJc2V3SOzYyaJFQ atzuKZbN1Q9s9y/2x1QXtKwREY8jNgvx0iIfOK35gKgYJJcyDql4XfuEc2nVMIIH SzCCBTOgAwIBAgIRAMCEqCZW/bEp9AgcdlGEWuEwDQYJKoZIhvcNAQEMBQAwRjEL MAkGA1UEBhMCTkwxGTAXBgNVBAoTEEdFQU5UIFZlcmVuaWdpbmcxHDAaBgNVBAMT E0dFQU5UIFBlcnNvbmFsIENBIDQwHhcNMjMwODE1MDAwMDAwWhcNMjYwODE0MjM1 OTU5WjCB0zEOMAwGA1UEERMFODA1MzkxRzBFBgNVBAoMPk1heC1QbGFuY2stR2Vz ZWxsc2NoYWZ0IHp1ciBGw7ZyZGVydW5nIGRlciBXaXNzZW5zY2hhZnRlbiBlLlYu MRswGQYDVQQJDBJIb2ZnYXJ0ZW5zdHJhw59lIDgxDzANBgNVBAgTBkJheWVybjEL MAkGA1UEBhMCREUxFTATBgNVBAMTDEdlcnJpdCBLdWVobjEmMCQGCSqGSIb3DQEJ ARYXZ2Vycml0Lmt1ZWhuQGFlaS5tcGcuZGUwggIiMA0GCSqGSIb3DQEBAQUAA4IC DwAwggIKAoICAQCg7n7fRC0hIeomyBYF0RZ0L/jKjURwqPL3vBN+HvDxzp+Wcn0a Voeia3LPeXvf18d7BeIQ2SVFXWnWzVpVKzv7VUg4OD424GmcQrFXkChSvOc/rLaA FmNIaKWgYwUOAqmDh3t9JzQTVj6FrAeJwzXmnv42msNUfnhA2dRllOCmilLUqm/5 nOgrImuiA3R1S0CcljAmEr5PnUmKJaanbaq74Jb54gf622cRyWwylMJijMGboDYw uaGynrLgfo+rWbXc2TASO6pjSQDKAAfXO/NzLgp+BmneN1II9alVUAJRUpFDkgx9 peM+qUJryLtO+veOKElsOe2S4qvk0PaE/MVAcIJiThdY7qde8Q9FyOJsDN5kiX4g fsKmtF7EdB71Uc8N78L62r7/7Y5WL8gRxXCN8BsmLXSiCylvtIYsbJMDhK6C+37w 9Cg1A8AWeksg1TmCcvolEJy3+bfPx7NlmEfRdkdzuVb1KxfB0z4SbhSwOAR1WYVg mEAQuj1l9k7suUtdUY4ZeMnRLVPtmQh+bxcJPaRllpHSTYbYVQlSNXkP0al2/J8d jJHhulOsCX8oYfyQ9a33jHsKUf632Lpg8446ym19UrNPh9pntXRXVhhkw+/tPE8G BxH81BCvvSUhVu0Nckx8zOWiI1+6Z5t71udnXOEv9lJFvqDlY71lkiu+jQIDAQAB o4IBpDCCAaAwHwYDVR0jBBgwFoAUaQChxyFY+ODFGyCwCt2nUb8T2eQwHQYDVR0O BBYEFOsacOXMtCWA1hWcY7A/tb8e/tTSMA4GA1UdDwEB/wQEAwIFoDAMBgNVHRMB Af8EAjAAMB0GA1UdJQQWMBQGCCsGAQUFBwMEBggrBgEFBQcDAjA/BgNVHSAEODA2 MDQGCysGAQQBsjEBAgJPMCUwIwYIKwYBBQUHAgEWF2h0dHBzOi8vc2VjdGlnby5j b20vQ1BTMEIGA1UdHwQ7MDkwN6A1oDOGMWh0dHA6Ly9HRUFOVC5jcmwuc2VjdGln by5jb20vR0VBTlRQZXJzb25hbENBNC5jcmwweAYIKwYBBQUHAQEEbDBqMD0GCCsG AQUFBzAChjFodHRwOi8vR0VBTlQuY3J0LnNlY3RpZ28uY29tL0dFQU5UUGVyc29u YWxDQTQuY3J0MCkGCCsGAQUFBzABhh1odHRwOi8vR0VBTlQub2NzcC5zZWN0aWdv LmNvbTAiBgNVHREEGzAZgRdnZXJyaXQua3VlaG5AYWVpLm1wZy5kZTANBgkqhkiG 9w0BAQwFAAOCAgEAbUB7zWvNZ98vh3u7hzpnbA1K4U9bga1YkpVbOgv7/UY5RiZP Rk06O18f5TnRSWiiF3XImBG1uVjbcwVKIemliCQRQzVVt2JXOJVT1EafDDe9DK5o QaXGHY7NAT1lPLEwtgv8hxBBvthMaMa6lpibT/IUi83jHPZUgsGajCgPXd05Bh/L jCzWDOmHuwFdjRAMQs1VsPYx+OVcRvS1jmw0bT6o5/nruRwF5brxUK39Mftj3sIN b+UvVkXdAGw5iQWFwllGpwBgo3iESa1R72qkBMWph8D6Jbg795WBgjMULCPTiZkq eOif9sW1/37AoutSh7VMh7WMrEW9QURVWYR1hYjS0/TMo8aXfPOLtLYoSg/R6i+j eXqREsJQxMAl0e/JJej1TAFCsWg0r6Dg4mYq636plAr6pu7pJATNVPT0HrsBMYWu PV2WRH8Obs+n1xe4ftGxE4yDWiL56lnp6tnfVR8qinEqpGBfj7BAwEcO/Na9b+oK tDEmWHzupKkdmoOWktURY+Q/5RVWoiozNujYljc9iaK3agqBbJ5ZzRyrCKOPLnw4 9b8koO03WkXPqlm59nxAOdJE6ZQ2aQ8ev6ji+UlGnlIvgk70MsRukY2shpAiowb6 bKjKyK3QGNnT4zmL6ixSRmnYhC95U923Yf+hy+6jqS1Ec6kgpREYG53Qv5IxggMs MIIDKAIBATBbMEYxCzAJBgNVBAYTAk5MMRkwFwYDVQQKExBHRUFOVCBWZXJlbmln aW5nMRwwGgYDVQQDExNHRUFOVCBQZXJzb25hbCBDQSA0AhEAwISoJlb9sSn0CBx2 UYRa4TANBglghkgBZQMEAgIFAKCBozAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcB MBwGCSqGSIb3DQEJBTEPFw0yNDAxMTUwNzI2NTdaMCgGCSqGSIb3DQEJDzEbMBkw CwYJYIZIAWUDBAECMAoGCCqGSIb3DQMHMD8GCSqGSIb3DQEJBDEyBDB9b/yBF1iz LX+9l6Pcm4JUS+IxRf8J+XXBm2vz1hQD0soWebTk2kCUgApT9Dmih/0wDQYJKoZI hvcNAQEBBQAEggIAd+6DZsE64S3iC07DmdjTnq2J//MnOjx4avKL+a5zh7ZGKa94 xvG4+ToBYtG+afJOlfFI9s4pvtQeECj8MdT1Kup3rJz6H67biyWCVzm79NrIuYoi VYUDa5alF+mPHEE9uYD5STx+38aTszGRPwL1hPmFEOGODhLCAeT59ve3x+YpkXWx g01YGSlKsWRuJj6Ip1eu2DzhqWVrIr4JLw0J0llz40mpZem6dXh1COod2XKBugZE vchg+b8OCaazg6hO2P8Z4Wy0abDAzH4L9+gtlZ6KzoCa+1v+mmfztby/X5D+Nh+c EDBAD2x7gIvb+IKGZg3Xu95WH73iwZpZ2IDf41WtS1Ew4AIckU00kKuqMHmhHH+L NxzzyRZhJVAbNePfeiCZKHFYp8v1/2gkBq31+oUDw1r786n8WyGfUGQAO7CywoUW 2ipR1xnWhtoehYL8pK5oX6WnaHHTC44uw9UuemmWNCqAxV78TvgoFm6T5nQS/GHx tRyfVxsASkabCWTDmOXkeELHyIHiX/aEDaOHK0Ri+cXyA5GTo8YFQotT3g1Z6ocr TuKhXeZY7FSsy604/zWvJnKap014xa2+pX2IT2YiDrjGuj9LzScI68pquuDUR6Ke pWP8At9OLI6pCMOFU6KSoFmCiszBB+JXgWGrhoDpELh51DFQC+dDeE07J2EAAAAA AAA= --Sig_/go6ra6EDg2tnbB0iQ8sfauY-- From nobody Mon Jan 15 07:54:34 2024 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 4TD4FF5dt6z56Frw for ; Mon, 15 Jan 2024 07:55:29 +0000 (UTC) (envelope-from Alexander@Leidinger.net) Received: from mailgate.Leidinger.net (bastille.leidinger.net [89.238.82.207]) (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-signature ECDSA (P-256) client-digest SHA256) (Client CN "mailgate.leidinger.net", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4TD4FF1Tckz4fwp; Mon, 15 Jan 2024 07:55:29 +0000 (UTC) (envelope-from Alexander@Leidinger.net) Authentication-Results: mx1.freebsd.org; none 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=leidinger.net; s=outgoing-alex; t=1705305322; 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: in-reply-to:in-reply-to:references:references; bh=RGPlaMsmtgzAc8ZQK+rxjG1nUbuPLJBd3F7+oCn0ppQ=; b=mc2+HLPpa8RBlL3KSz6c11SPzWzOV+zVpNOgTOVUA9v0hwc+xfic8CUTcqJycoeOPzbxmK S0h9ErFQOdJZQAqI8F3norF69X6A8pTHVoXSE99SQkaYzlaQmseGeklN9xX9KgiTlTRLZm ajnz/DMzpF8yDw6dxbca/tp3S7uNVKoZcJ9YL5t+W0y3vvZ+s1AyKfI+AJZIHCmGg2CwX1 MOm5Xs4hggLfSKLADONSZsP86GCBEkjQMFXAZ7V3f7k7vago3w+de9ref1xghu0UeVNhak JxwtQ+ooFQO0Bavz1VTnL+EWFmV7t0/BCktff0cyaqQn7GNCqzQQxY+nPFnIyA== Date: Mon, 15 Jan 2024 08:54:34 +0100 From: Alexander Leidinger To: Olivier Certner Cc: Warner Losh , "Lyndon Nerenberg (VE7TFX/VE6BBM)" , Rick Macklem , FreeBSD Current Subject: Re: noatime on ufs2 In-Reply-To: <2798057.DSuhTWmZiM@ravel> References: <2798057.DSuhTWmZiM@ravel> Message-ID: Organization: No organization, this is a private message. Content-Type: multipart/signed; protocol="application/pgp-signature"; boundary="=_bed717be6ecceeb9b768d58ee500a606"; micalg=pgp-sha256 X-Rspamd-Queue-Id: 4TD4FF1Tckz4fwp X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:34240, ipnet:89.238.64.0/18, country:DE]; TAGGED_RCPT(0.00)[] This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --=_bed717be6ecceeb9b768d58ee500a606 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed Am 2024-01-15 00:08, schrieb Olivier Certner: > Hi Warner, > >> The consensus was we'd fix it in the installer. > > Isn't speaking about a "consensus", at least as a general response to > the idea of making 'noatime' the default, a little premature? I have > more to say on this topic (see below). Also, I would not dismiss > Lyndon's last mail too quickly, and in particular the last paragraph. > I'm as interested as he is about possible answers for it. > >> We can't change ZFS easily, and discovery of the problem, should your >> assertion be wrong, for UFS means metadata loss that can't be >> recovered. > > Why ZFS would need changing? If you're referring to an earlier > objection from Mark Millard, I don't think it stands, please see my > response to him. Else, I don't know what you're referring to. ZFS by default has atime=on. It is our installer which sets atime=off in the ZFS properties. I was understanding Warners comment about changing ZFS in the sense of changing the ZFS code to have a default of atime=off. I agree with Warner that we should not do that. And in my opinion we should keep the other FS which support atime/noatime consistent (those which don't support atime/noatime due to technial limitations don't count in my opinion). >> By pushing to the installer, most installations get most of benefits. >> And >> people with special needs see the issue and can make an informed >> choice. > > I agree for those who use the installer. But I'm not sure which > proportion of users they represent, and especially for those who care > about disabling access times. As for me, I don't think I have used the > installer in the past 10 years (to be safe). Is this such an atypical > behavior? I haven't used an installer myself since longer (either I was creating a new system by attaching a disk and prepping it from an existing system, or by creating an image and transferring it to the target over the network). But I would say this is atypical behavior by people which know exactly what they are doing, not what a normal consumer would do. Such experts know exactly what they want to do with atime and handle it as needed. > Additionally, the installer doesn't cover other use cases: > - Mounting filesystems by hand on USB keys or other removal medias > (which are not in '/etc/fstab'). This causes users to have to remember > to add 'noatime' on the command-line. Those which care about that and know where this makes a difference, have it in their finger-memory. > - Using auto-mounters. They have to be configured to use 'noatime'. If our automounter is not able to handle that, it is a bug / missing feature we can change. Personally I would have no objection to changing the automounter config to mount with noatime (if specifying noatime for a FS which don't support atime/noatime doesn't create failures). > - Desktop environments shipping a mount helper. Again, they have to be > configured, if at all possible. If they are not able to handle that, it is a bug. Typical media in desktop use-cases doesn't really need this. If you handle media which really _needs_ noatime in such a case, you may want to reconsider your way of operating. > So limiting action to the installer, while certainly a sensible and > pragmatic step, still seems to miss a lot. Nobody told to only limit this action to the installer. The pragmatic part here is to ask if it really matters for those use cases. For mounting by hand I disagree that it matters. For our automounter we should do something (at least making sure it is able to handle it, and if we don't want to swtich the default at least have a commented out entry in the config with a suitable comment). For the desktop helpers it is not our responsability, but interested people surely can file a bug report upstream. >> Though in all honesty, I've never been able to measure a speed >> difference. >> Nor have I worn out a ssd due to the tiny increase in write amp. Old >> (<100MB) SD and CF cards included. This includes my armv7 based dns >> server >> that I ran for a decade on a 256MB SD card with no special settings >> and >> full read/write and lots of logging. So the harm is minimal typically. >> I'm >> sure there are cases that it matters more than my experience. And it >> is >> good practice to enable noatime. Just that failure to do so typically >> has >> only a marginal effect. > > It seemed to make a difference on slow USB keys (well, not just evenly > slow, but which could exhibit strange pauses while writing), but I > didn't gather enough hard data to call that "scientific". I sometimes > manage to saturate M2 SSD I/O bandwidth but then I always use > 'noatime', so not sure how much a difference it makes. The "updatedb" > scenario that runs 'find' causes access time updates for all > directories, causing spikes in the number of writes which may affect > the response time during the process. That said, it is only run once a > week by default. > > I would say that most of the value of having 'noatime' the default is > in less tweaking by most people, and one less thing to worry about (for > them). > > I proposed in another mail having a sysctl which indicates the default > ('noatime' or 'atime') for all filesystems. This default would be used > at mount time if neither 'atime' nor 'noatime' is explicitly specified. > That way, people wanting 'noatime' by default everywhere could just > set it to that. It may also convince reticent people to have the > default (i.e., this sysctl's default value) changed to 'noatime', by > providing a very simple way to revert to the old behavior. While I agree that this would be an easy way of globally changing the default, what makes noatime special compared to nocover, or nfs4acl, or noexec, or nosuid, or whatever other option? Mounting noexec and nosuid by default and having those FS be mounted explicitely suid/exec which really need it would be a security benefit. And cover/nocover would prevent accidental foot-shooting. Where do you want to draw the line between "easy" and "explicit"? Only having atime/noatime handled like that looks inconsistent to me (which - I hope - not only me thinks is a POLA violation). I fully agree with you regarding switching to noatime by default. I think this should not be done by changing the defaults in each FS. I think that having a sysctl only for atime/noatime is an ugly inconsistency (probably I wouldn't use a generic framework which handles all sensible mount options like that, and I think it would be overkill, but I wouldn't object to it). In my opinion the correct way of handling it is to ask the user at install time, and existing systems shall be handled by those which administrate them (don't touch an existing fstab; changing the default in the automounter config for a .0 release would be OK in my opinion, for a .x release in the middle of a stable branch I would add a commented out noatime option to make it visible but not active). Bye, Alexander. -- http://www.Leidinger.net Alexander@Leidinger.net: PGP 0x8F31830F9F2772BF http://www.FreeBSD.org netchild@FreeBSD.org : PGP 0x8F31830F9F2772BF --=_bed717be6ecceeb9b768d58ee500a606 Content-Type: application/pgp-signature; name=signature.asc Content-Disposition: attachment; filename=signature.asc; size=833 Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEER9UlYXp1PSd08nWXEg2wmwP42IYFAmWk5MoACgkQEg2wmwP4 2Ib/WQ//aStg6Q/fzzYW+Y383eCe4pmGoQkVB/OJLbNJoKAGs4UbGkbSgHDX61gv q5B98iCvrQcN7gYFo5NnIUz5ZWjg0+dGi7qqgde5QRFeSZ+CrDxAKGLb77LdGKYl x4PCQtGSRwCUt8yDmE/txa4ysUILRb81oxy5mU1nzfSq8/LT0ikfugCvtcvf1PkU a+Fr6Ac3bpD+jYVsc+hsHp1+PitcDIwHZND0vr+5jBYbzhJcDJl3S3POW99hFwsh XnLvxgCSk6+abKXLE0xHEuGb4HDAa6+mBQ98rcMv8wN02XdBQjOd/Ce+jHgFC7/k yyqI3Ohion3V71mKgHb35oOCBS7B8GtpSOIlhFRDvci41Ej1/MPdR+kWuF4xX46c aC25FVLSa7Lqxw9U4sM3iAXGCoFZkaQ1Z5xqw6zeuQkt3/KWoJtUnSBj8FBEfQkW uXronqkdaiFerw/m5nZHP+XE/KU7yp16+NhBV1TGArnbyvBtgcAgHIEABmoOVkPE RAbPJyGT/7YgY75OMxbBQ+oqCHcECFRhiFmT5bOm2KWgIsFG5EDZAQfIABw9mLwk 94L1oD+/uCXF0zPqI1Wvu4niG4ak0w18dkHETif3LtTvTXSE/aBWtH0qpuCznngM tGSmdpIgCQO+lLKVyunIsElhKLgxhYKeFByRV0jhGcMXaESq/+4= =zLZ8 -----END PGP SIGNATURE----- --=_bed717be6ecceeb9b768d58ee500a606-- From nobody Mon Jan 15 08:07:37 2024 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 4TD4WQ1ZZbz56HlW for ; Mon, 15 Jan 2024 08:07:46 +0000 (UTC) (envelope-from lexi@le-fay.org) Received: from thyme.eden.le-Fay.ORG (THYME.EDEN.LE-FAY.ORG [81.187.47.194]) by mx1.freebsd.org (Postfix) with ESMTP id 4TD4WP1FWnz4hwk for ; Mon, 15 Jan 2024 08:07:45 +0000 (UTC) (envelope-from lexi@le-fay.org) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=le-fay.org header.s=thyme header.b="qnHfMk2/"; dmarc=none; spf=pass (mx1.freebsd.org: domain of lexi@le-fay.org designates 81.187.47.194 as permitted sender) smtp.mailfrom=lexi@le-fay.org Received: from iris.eden.le-Fay.ORG (IRIS.EDEN.LE-FAY.ORG [IPv6:2001:8b0:aab5:106::18]) by thyme.eden.le-Fay.ORG (Postfix) with ESMTP id 797CC2869F; Mon, 15 Jan 2024 08:07:37 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=le-fay.org; s=thyme; t=1705306057; bh=kWLAyrAxMFoGcbTlbV9Bdxd9+Lnh9TN0tqnsbEZvTds=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=qnHfMk2/xxaVhdVyieIRefIHIlAEuBcyv7ZkXcCLpS3892SqLy9IpKpq9JBBCHKLj WNsKQWb+mPmttJlHbwZ7QwoUthOEnNqevBIynaOrJaTnBPuIlf5EUfU13YLwy+tFIN tCniJeFTQ4f1HiTJFk4P/EN8bV3e+sT6Z8a3KkU8= Received: from ilythia.eden.le-fay.org (ILYTHIA.EDEN.LE-FAY.ORG [IPv6:2001:8b0:aab5:104:3::101]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by iris.eden.le-Fay.ORG (Postfix) with ESMTPSA id 617898057; Mon, 15 Jan 2024 08:07:37 +0000 (GMT) Date: Mon, 15 Jan 2024 08:07:37 +0000 From: Lexi Winter To: Mark Millard Cc: Current FreeBSD Subject: Re: poudriere: swap_pager: out of swap space Message-ID: References: <60C36CF0-43AC-4ACA-B6A5-6997F4425EC5.ref@yahoo.com> <60C36CF0-43AC-4ACA-B6A5-6997F4425EC5@yahoo.com> 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: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="ctTaYLvyk7SEw3yU" Content-Disposition: inline In-Reply-To: <60C36CF0-43AC-4ACA-B6A5-6997F4425EC5@yahoo.com> X-Spamd-Bar: ----- X-Spamd-Result: default: False [-5.50 / 15.00]; SIGNED_PGP(-2.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-1.000]; MIME_GOOD(-0.20)[multipart/signed,text/plain]; R_SPF_ALLOW(-0.20)[+ip4:81.187.47.194]; R_DKIM_ALLOW(-0.20)[le-fay.org:s=thyme]; RCVD_NO_TLS_LAST(0.10)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; ARC_NA(0.00)[]; DWL_DNSWL_NONE(0.00)[le-fay.org:dkim]; ASN(0.00)[asn:20712, ipnet:81.187.0.0/16, country:GB]; MISSING_XM_UA(0.00)[]; FROM_HAS_DN(0.00)[]; FREEMAIL_TO(0.00)[yahoo.com]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; DMARC_NA(0.00)[le-fay.org]; TO_DN_ALL(0.00)[]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; MID_RHS_MATCH_FROMTLD(0.00)[]; RCPT_COUNT_TWO(0.00)[2]; DKIM_TRACE(0.00)[le-fay.org:+] X-Rspamd-Queue-Id: 4TD4WP1FWnz4hwk --ctTaYLvyk7SEw3yU Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Mark Millard: > You seem to be under the impression that "Inact" means "page is not > dirty" and so can be freed without being written out to the swap > space. indeed, i was, because this is how sysutils/htop displays memory usage: top(1) Mem: 8502M Active, 15G Inact, 1568M Laundry, 5518M Wired, 1343M Buf, 690M Free htop(1): Mem[|||||||||||||||||||||||||||||||||||||||||| 13.7G/31.9G] i'm vaguely annoyed, but also not surprised, to find out that htop is wrong here... > Inact pages can be dirty and such pages can not be freed without > being written out to the swap space first. If the swap space > ends up filled, dirty pages that are not in active use stay or > propogate into the Inact or Laundry states, accumulating there > (for later potential use). so, how are Inact pages created? does this happen from filesystem writes, or something else? is there somewhere this that is documented? thanks, lexi. --ctTaYLvyk7SEw3yU Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQGzBAABCAAdFiEEuwt6MaPcv/+Mo+ftDHqbqZ41x5kFAmWk58UACgkQDHqbqZ41 x5kT1wv+Nf2H5ISfDSMexC1mqyIlhpUPodmjYk3ayW4EFc8tSfpdUF/SwTwj2WHK KXspdkRWLUI+kuz7xlxSmLQDjlga3GUkgX4JB0R3Hom2InETdjU5BYxBElGodNu4 1S+JqbBb8BCCc2erZS14QLhTCPgwl0GwBdkUct6ws73OZ7g+Sq3p7eAdEty0z7GI RHLxbAAPGfEndzgEsZI+WM6J8KRPgH7GUP1JHNANnorEiN4L0yZKkj5/n7skdpZl ZEifVgWgj2jA2ILqnkkncBE3n1AAn4XH9lYMIrCJYp8gyFMsNnPsuBYxbo/q9nwP rPPy3H12toWoU6JDmphbosfNpJ7ucc1d78cT+2t0IuP4pLytoC6h/PNiXgDI8rMA ZuM65bco1m8A8LA+vX8Sq5/zn1h56TFiHbPYo9Mc1Svuf8HVF5RJ/8ccoixrSUug M948nWl/lkFtccO866PastqZl/BtAR09OHb8CrXB9WUHLThYPDWzucSiuq6nFoCY WsFd2wHU =jdOw -----END PGP SIGNATURE----- --ctTaYLvyk7SEw3yU-- From nobody Mon Jan 15 08:31:16 2024 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 4TD52m0dJ1z56L4c for ; Mon, 15 Jan 2024 08:31:28 +0000 (UTC) (envelope-from pblok@bsd4all.org) Received: from mail.bsd4all.org (mail.bsd4all.org [88.99.169.216]) by mx1.freebsd.org (Postfix) with ESMTP id 4TD52l0C0Dz4n0M for ; Mon, 15 Jan 2024 08:31:26 +0000 (UTC) (envelope-from pblok@bsd4all.org) Authentication-Results: mx1.freebsd.org; none Received: from mail.bsd4all.org (localhost [127.0.0.1]) by mail.bsd4all.org (Postfix) with ESMTP id 53F4872E6; Mon, 15 Jan 2024 09:31:23 +0100 (CET) X-Virus-Scanned: amavisd-new at bsd4all.org Received: from mail.bsd4all.org ([127.0.0.1]) by mail.bsd4all.org (mail.bsd4all.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id recFAljcsVeK; Mon, 15 Jan 2024 09:31:22 +0100 (CET) Received: from smtpclient.apple (pony_ip [204.168.249.121]) by mail.bsd4all.org (Postfix) with ESMTPSA id 5208B72E3; Mon, 15 Jan 2024 09:31:21 +0100 (CET) From: Peter Blok Message-Id: Content-Type: multipart/alternative; boundary="Apple-Mail=_4DC50FFC-0461-4C1F-9E20-CFD2DE6F9458" 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 (Mac OS X Mail 16.0 \(3696.120.41.1.4\)) Subject: Re: NFSv4 crash of CURRENT Date: Mon, 15 Jan 2024 09:31:16 +0100 In-Reply-To: <20240115064704.611fe0c4@thor.intern.walstatt.dynvpn.de> Cc: Cy Schubert , Rick Macklem , Ronald Klop , FreeBSD CURRENT To: FreeBSD User References: <20240113193324.3fd54295@thor.intern.walstatt.dynvpn.de> <1369645989.13766.1705178331205@localhost> <20240115043412.B6998C8@slippy.cwsent.com> <20240115064704.611fe0c4@thor.intern.walstatt.dynvpn.de> X-Mailer: Apple Mail (2.3696.120.41.1.4) X-Rspamd-Queue-Id: 4TD52l0C0Dz4n0M X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; TAGGED_RCPT(0.00)[]; ASN(0.00)[asn:24940, ipnet:88.99.0.0/16, country:DE] --Apple-Mail=_4DC50FFC-0461-4C1F-9E20-CFD2DE6F9458 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii Hi, I do have a crash on a NFS client with stable of today = (4c4633fdffbe8e4b6d328c2bc9bb3edacc9ab50a). It is also autofs related. = Maybe it is the same problem. I have ports automounted on /am/ports. When I do cd /am/ports/sys and = type tab to autocomplete it crashes with the below stack trace. If I = plainly mount ports on /usr/ports and do the same everything works. I am = using NFSv3 Peter Fatal trap 12: page fault while in kernel mode cpuid =3D 2; apic id =3D 04 fault virtual address =3D 0x89 fault code =3D supervisor read data, page not present instruction pointer =3D 0x20:0xffffffff809645d4 stack pointer =3D 0x28:0xfffffe00acadb830 frame pointer =3D 0x28:0xfffffe00acadb830 code segment =3D base 0x0, limit 0xfffff, type 0x1b =3D DPL 0, pres 1, long 1, def32 0, gran 1 processor eflags =3D interrupt enabled, resume, IOPL =3D 0 current process =3D 6869 (csh) trap number =3D 12 panic: page fault cpuid =3D 2 time =3D 1705306940 KDB: stack backtrace: #0 0xffffffff806232f5 at kdb_backtrace+0x65 #1 0xffffffff805d7a02 at vpanic+0x152 #2 0xffffffff805d78a3 at panic+0x43 #3 0xffffffff809d58ad at trap_fatal+0x38d #4 0xffffffff809d58ff at trap_pfault+0x4f #5 0xffffffff809af048 at calltrap+0x8 #6 0xffffffff804c7a7e at ncl_bioread+0xb7e #7 0xffffffff804b9d90 at nfs_readdir+0x1f0 #8 0xffffffff8069c61a at vop_sigdefer+0x2a #9 0xffffffff809f8ae0 at VOP_READDIR_APV+0x20 #10 0xffffffff81ce75de at autofs_readdir+0x2ce #11 0xffffffff809f8ae0 at VOP_READDIR_APV+0x20 #12 0xffffffff806c3002 at kern_getdirentries+0x222 #13 0xffffffff806c33a9 at sys_getdirentries+0x29 #14 0xffffffff809d6180 at amd64_syscall+0x110 #15 0xffffffff809af95b at fast_syscall_common+0xf8 > On 15 Jan 2024, at 06:46, FreeBSD User wrote: >=20 > Am Sun, 14 Jan 2024 20:34:12 -0800 > Cy Schubert > schrieb: >=20 >> In message = > om> =20 >> , Rick Macklem writes: >>> On Sat, Jan 13, 2024 at 12:39=3DE2=3D80=3DAFPM Ronald Klop = =3D >>> wrote: =20 >>>>=20 >>>>=20 >>>> Van: FreeBSD User >>>> Datum: 13 januari 2024 19:34 >>>> Aan: FreeBSD CURRENT >>>> Onderwerp: NFSv4 crash of CURRENT >>>>=20 >>>> Hello, >>>>=20 >>>> running CURRENT client (FreeBSD 15.0-CURRENT #4 = main-n267556-69748e62e82a=3D =20 >>> : Sat Jan 13 18:08:32 =20 >>>> CET 2024 amd64). One NFSv4 server is same OS revision as the = mentioned cl=3D =20 >>> ient, other is FreeBSD =20 >>>> 13.2-RELEASE-p8. Both offer NFSv4 filesystems, non-kerberized. >>>>=20 >>>> I can crash the client reproducable by accessing the one or other = NFSv4 F=3D =20 >>> S (a simple ls -la). =20 >>>> The NFSv4 FS is backed by ZFS (if this matters). I do not have = physicla a=3D =20 >>> ccess to the client =20 >>>> host, luckily the box recovers. =20 >>> Did you rebuild both the nfscommon and nfscl modules from the same = sources? >>> I did a commit to main that changes the interface between these two >>> modules and did bump the >>> __FreeBSD_version to 1500010, which should cause both to be rebuilt. >>> (If you have "options NFSCL" in your kernel config, both should have >>> been rebuilt as a part of >>> the kernel build.) >>>=20 >>=20 >> Is anyone by chance seeing autofs in the backtrace too? >>=20 >>=20 >=20 > Hello Cy Shubert, >=20 > I forgot to mention that those crashes occur with autofs mounted = filesystems. Good question, > by the way, I will check whether crashes also happen when mounting the = tradidional way. >=20 > Kind regards, >=20 > oh >=20 > --=20 > O. Hartmann --Apple-Mail=_4DC50FFC-0461-4C1F-9E20-CFD2DE6F9458 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=us-ascii Hi,

I do = have a crash on a NFS client with stable of today = (4c4633fdffbe8e4b6d328c2bc9bb3edacc9ab50a). It is also autofs related. = Maybe it is the same problem.

I have ports automounted on /am/ports. = When I do cd /am/ports/sys and type tab to autocomplete it crashes with = the below stack trace. If I plainly mount ports on /usr/ports and do the = same everything works. I am using NFSv3

Peter




Fatal trap 12: page fault while in kernel mode
cpuid =3D 2; apic id =3D 04
fault = virtual address = =3D 0x89
fault code =3D= supervisor read data, page not present
instruction = pointer = =3D 0x20:0xffffffff809645d4
stack = pointer =        =3D 0x28:0xfffffe00acadb830
frame pointer        =3D = 0x28:0xfffffe00acadb830
code segment =3D= base 0x0, limit 0xfffff, type 0x1b
= =3D DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags =3D interrupt enabled, resume, = IOPL =3D 0
current process =3D= 6869 (csh)
trap number =3D 12
panic: page fault
cpuid =3D 2
time =3D 1705306940
KDB: stack = backtrace:
#0 0xffffffff806232f5 at = kdb_backtrace+0x65
#1 0xffffffff805d7a02 at = vpanic+0x152
#2 0xffffffff805d78a3 at = panic+0x43
#3 0xffffffff809d58ad at = trap_fatal+0x38d
#4 0xffffffff809d58ff at = trap_pfault+0x4f
#5 0xffffffff809af048 at = calltrap+0x8
#6 0xffffffff804c7a7e at = ncl_bioread+0xb7e
#7 0xffffffff804b9d90 at = nfs_readdir+0x1f0
#8 0xffffffff8069c61a at = vop_sigdefer+0x2a
#9 0xffffffff809f8ae0 at = VOP_READDIR_APV+0x20
#10 0xffffffff81ce75de at = autofs_readdir+0x2ce
#11 0xffffffff809f8ae0 at = VOP_READDIR_APV+0x20
#12 0xffffffff806c3002 at = kern_getdirentries+0x222
#13 0xffffffff806c33a9 at = sys_getdirentries+0x29
#14 0xffffffff809d6180 at = amd64_syscall+0x110
#15 0xffffffff809af95b at = fast_syscall_common+0xf8



On 15 Jan 2024, at 06:46, = FreeBSD User <freebsd@walstatt-de.de> wrote:

Am Sun, 14 Jan 2024 20:34:12 -0800
Cy Schubert <Cy.Schubert@cschubert.com> schrieb:

In message <CAM5tNy5aat8vUn2fsX9jV=3DD9yGZdnO20Q0Ea7qtszx+zSES2bw@mail.gmai= l.c
om>  
, Rick Macklem = writes:
On Sat, Jan = 13, 2024 at 12:39=3DE2=3D80=3DAFPM Ronald Klop <ronald-lists@klop.ws>=3D
wrote: =  


Van: FreeBSD User <freebsd@walstatt-de.de>
Datum: 13 = januari 2024 19:34
Aan: FreeBSD CURRENT <freebsd-current@freebsd.org>
Onderwerp: = NFSv4 crash of CURRENT

Hello,

running CURRENT client (FreeBSD 15.0-CURRENT = #4 main-n267556-69748e62e82a=3D  
: Sat = Jan 13 18:08:32  
CET 2024 amd64). One NFSv4 server is same OS revision as the = mentioned cl=3D  
ient, other is FreeBSD =  
13.2-RELEASE-p8.= Both offer NFSv4 filesystems, non-kerberized.

I can crash the client reproducable by accessing the one or = other NFSv4 F=3D  
S (a simple ls -la). =  
The NFSv4 FS = is backed by ZFS (if this matters). I do not have physicla a=3D =  
ccess to the client  
host, luckily the box = recovers.  
Did you rebuild both the = nfscommon and nfscl modules from the same sources?
I did a = commit to main that changes the interface between these two
modules and did bump the
__FreeBSD_version to = 1500010, which should cause both to be rebuilt.
(If you = have "options NFSCL" in your kernel config, both should have
been rebuilt as a part of
the kernel build.)


Is anyone by = chance seeing autofs in the backtrace too?



Hello Cy Shubert,

I forgot to mention that those crashes occur with autofs = mounted filesystems. Good question,
by the way, I will check whether crashes also happen when = mounting the tradidional way.

Kind regards,

oh

-- 
O. = Hartmann

= --Apple-Mail=_4DC50FFC-0461-4C1F-9E20-CFD2DE6F9458-- From nobody Mon Jan 15 09:27:13 2024 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 4TD6HC2zWpz56SDw for ; Mon, 15 Jan 2024 09:27:19 +0000 (UTC) (envelope-from junchoon@dec.sakura.ne.jp) Received: from www121.sakura.ne.jp (www121.sakura.ne.jp [153.125.133.21]) (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 4TD6HB3hsQz4tjG; Mon, 15 Jan 2024 09:27:18 +0000 (UTC) (envelope-from junchoon@dec.sakura.ne.jp) Authentication-Results: mx1.freebsd.org; none Received: from kalamity.joker.local (123-1-91-49.area1b.commufa.jp [123.1.91.49]) (authenticated bits=0) by www121.sakura.ne.jp (8.17.1/8.17.1/[SAKURA-WEB]/20201212) with ESMTPA id 40F9RDWW013932; Mon, 15 Jan 2024 18:27:14 +0900 (JST) (envelope-from junchoon@dec.sakura.ne.jp) Date: Mon, 15 Jan 2024 18:27:13 +0900 From: Tomoaki AOKI To: Mark Millard Cc: Olivier Certner , Current FreeBSD Subject: Re: noatime on ufs2 Message-Id: <20240115182713.5abeab262fc4750fb3c45b53@dec.sakura.ne.jp> In-Reply-To: <259993C7-D14C-48CC-9593-25FCC1741115@yahoo.com> References: <3183964.fD0qBhBWp0@ravel> <6A477CBE-692E-49F9-B21E-2C0D29F09766@yahoo.com> <20240115072732.85c2213714a658d3b98ab830@dec.sakura.ne.jp> <259993C7-D14C-48CC-9593-25FCC1741115@yahoo.com> Organization: Junchoon corps X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.33; amd64-portbld-freebsd14.0) 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-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 4TD6HB3hsQz4tjG X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:7684, ipnet:153.125.128.0/18, country:JP] On Sun, 14 Jan 2024 16:13:06 -0800 Mark Millard wrote: > On Jan 14, 2024, at 14:27, Tomoaki AOKI wrote: > > > On Sun, 14 Jan 2024 10:53:34 -0800 > > Mark Millard wrote: > > > >> On Jan 14, 2024, at 08:39, Olivier Certner wrote: > >> > >>> Hi Mark, > >>> > >>>> I never use atime, always noatime, for UFS. That said, I'd never propose > >>>> changing the long standing defaults for commands and calls. > >>> > >>> With this mail, you're giving more detailed objections on the social/political aspects of the proposed changed, or as we usually say more simply, POLA. > >>> > >>> All your points are already largely weakened by the fact that, to wrap-up in a single sentence at the risk of being slightly caricatural (but then see my other mails), nobody really seems to care seriously about access times. > >> > >> I seriously care about having a lack of access times. Yet, I've no > >> objection to needing to be explicit about it in commands and > >> subroutine interfaces, given the long standing interfaces (defaults). > >> It would be different if I could not achieve the lack of access > >> times. That defaults do not block having the desired settings makes > >> the change optional, not technically required. The defaults are, > >> thus, primarily social/political aspects of interfaces, not > >> technical requirements to make things work. > >> > >> Given that, I explicitly claim that avoiding POLA at this late stage > >> is my preference for the priority of competing considerations. I > >> make no claim of knowing the majority view of the tradeoffs. I would > >> claim that, if the majority is not by just some marginal amount, > >> contradicting that majority view for this would not be appropriate. > >> (Again: the social/political aspects.) > >> > >> And, hopefully, this is my last contribution to this particular > >> bike shed. > >> > >> === > >> Mark Millard > >> marklmi at yahoo.com > > > > I would prefer violating POLA here, with, for example, forcing admins > > to choose explicitly with installer menu > > I've not reported any objection to bsdinstall having explicit > choices required in its menus. Nor to changing how, say, > official snapshots are generated (so long as well notified > and documented). If my wording was unclear on that, I'm sorry. > > My focus was on things like mount command notation and > /etc/fstab notation (that tracks mount defaults) or subroutine > interface equivalents of such things and changing their > behavior without requiring changing the notation already in > place in various files. > > (I've tried to word the above without making new points, > avoiding contributing more to the bike shed material.) > > > Choose whether you need to retain last file access time or not: > > 1: Don't keep (current default) > > 2: Keep last one (default before 15.0) > > > > by hand, or via installer configuration or additional scripts. > > Of course, existing installations should not be affected. > > > > > === > Mark Millard > marklmi at yahoo.com So you mean changing behaviour of mount[_*] to default to noatime, in conjunction with configuration in /etc/fstab to default to noatime, right? So if changes are done as such, if anyone want atime active, add "-o atime" in mount[_*] command and/or "[,]atime" in /etc/fstab? -- Tomoaki AOKI From nobody Mon Jan 15 10:31:17 2024 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 4TD7jJ11XZz56Zp8 for ; Mon, 15 Jan 2024 10:31:32 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic310-20.consmr.mail.gq1.yahoo.com (sonic310-20.consmr.mail.gq1.yahoo.com [98.137.69.146]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 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 4TD7jH2WcCz461s for ; Mon, 15 Jan 2024 10:31:31 +0000 (UTC) (envelope-from marklmi@yahoo.com) Authentication-Results: mx1.freebsd.org; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1705314689; bh=Ehs+BLOHf3dX4Cxlgi+stbAYEbjgl2Ds/lUSuQgCXfg=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From:Subject:Reply-To; b=Vta6pDZmIBtPO2hCoaGQCVaN+MuLQh+AlrhXJCfMXVTsNuuN6hzsZlY+F0BMMn4m0Ip3qeOY08r5klY/F2zphGhvTLpuZyIEb31Aw9QzyQHwMLRNax2ZweoVz7k4sUEHjqjRKPp+JmfMf+p3Z3/7JB/Ryh+j9dhsrHuVpHSPsCXoPedSQxkp0R+NqpvJB8VrjPltLqJuCpzYBIgYgdE/THPDUvivkJ8xiVUZy0lPhNGmsAKIFg2A/rNCs21o8y0Y2U4QMwlnGP1nlF9/5mdDj0M5u+swLwfwoHHZDMDSDWAx8ByeMlxcjW+GmlXr3Yy/aFLtWz+FJ3toby6AW+NetQ== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1705314689; bh=Mh9g/QmUqIMYfRtI4HVMEO8CIVWIZGlMXaT8bq/4Wln=; h=X-Sonic-MF:Subject:From:Date:To:From:Subject; b=IBoS+bGcj2ivX7ipHZcnJjSjkxbhcuRTxo8CDvw2yVGCjaRimMmBXwit2R7DE5fHL5XfpeE3wgwBgiKnXzZr9RJcYzIEumooowJlDvH7SnTEPHw6DNv3TRxOrkhm93ngOHdxvqQhYNQvLX8NL8oxGxRV518yStM/jQ9QFNp+uUSdKy3YgCauADtOV5nNuM1Hm+VX5eRkdo/Bi3+zSFUO8CGBA9ZaLEiBSRIc+928ddc5Ue4SsH3sJf0sHB4pAIjZU/VgvSXF6PuulRU8PGoRSsMyeqMSgqw/+/iE41di1/sYC7DV0ZtTTP6bCZlQgWHEEUNd3TNnSk1VPhHHVf6WTA== X-YMail-OSG: xMuy51sVM1keEp7_x.1nqoDzQtVgdFvYheQ2DSIDanmZ2UAAcXxJL0Yb4S6JEya lqkaAdVz67ItAvc.NgrH8nm._YotGryrrS7KJ9PikIrLy150SBYNc.lmHtPKSLoJP595A_2toDey wGMwUvAtAOc2aVGQ2eXWAdSdKCGIRm.UYJuOXVly4vIpcHeJQqftTPNBoa1AU7pZxz1AcA0M0Ove 7rNQA1WOhAsn_.3OxOO84MgOe1FnxOijyeGzSfIeKIIFb3PxhFgBSgSkMsTet.GR1eZeE9jQGo21 Pc.wsyGj9PQ0S76hqYKyii5y7KPQ7Db1gNm8j9eVi0Up_TqE19WXuq0qysupN2hJ6UFiEvTdo1Fo UskUw2gCNw47czgKxbaZUM3CIq3.WIeVC1UN4rX0E0cPo_0v5fW3x3XDipUQLliQITnQkokas1Fv Se8O30Nhjpd19B2OhMNERDOqJW0pP4MK0fS.P7xEFLXAvxLDARqKnZ1F8HszcuopS7HxMlXK3cGF Wc3Tl4xPHiLaCAkS2rdBhiwzSnuHEsb0n83tO2FdFMDsXy1JygPSe7qd9f3uVUotFkZEBAOzTrNG 40_BYSbrDK7jx9HTQRj1FKBz0FdMhV.rrdEwYizGsZumJeXsjWyCzXQF.Ws1umJJfST9xLs1Jn_H m5CPVNavF5U27byQ_MM0rt7xVv3Xai2xA5C4v7zgduHy.QqvgTBK8OzCNzsMcrmK9o4L_5TUtlhH y6S6YnDTQJTzweJGpsZodOPbU8KQrRpjEFL8J9r2vI8GKqpVrlqOruUM2N0dPlE8e_mqN6Worox1 fEkKIk_UhgJH_7NrBu1g64hYXWH.PG_YONpxjxH_wXqCG3H_euXJitJ4v0Q_RQ3UGSB7J5VfPmtO K9TvMD017yv5FhD.h3BGnd4TavILYO.3X2xriIWkIfwCMoueiNBy3WnysnDpoSxJR_Q1x3NvJVzV mjBLJigzB26PYnrD.4hP9kToOteyNfkxcPQ52GRS67Req0.u1838wA2SPtNFO0Q4IpMfgUfg6_dD ERunG6uQP0icQMSnbpcHqinCAYtNdNY._.9..V6biu3daVTte7fYRpsC36tSXRhySTZK06qFVoUK zpF5zIAe_OzLGjxK09AtC6.FezBr2iSJ3uHoaj3kVnysQPAIfWkNMkS3JW2_gJWg74sLZDotmB_K zY2YHxWQNxLsMlWqttPLDR_iO98DmsBccoXOfepUfCHUQeetxaaW3Jrw6j0ffIR7.f4gkngp_aIr XXgQNCHuDXcmTKBUCOhWo7ELE9oypnZ6Kgy1rCeZMwlszuvks4c8nQ7ONmx5L_gjNltccjIAwF5k .dQGMroRGhD0GJPrbad9y4cIvhKjJvdQOGwFQoMUFKLY4u.l_L1UqnLrrn4n8xOeoPJYWuVAlIi9 GxuEMlO2ym9Re1Kaz7bED5KqnlKzZ2RsJ2pkUQWuxzAWpAAkm37GKMfU8mHocbJ1bULCGY.bimPQ tlOIZ0Cy0hJbrsz0qOlYVUDYeeGUKA7wqbssp5Uqr1iUQWZzQLXKsEQaza5dj7jkc4SgXVNs5OJ1 1OxfHjksyD8l7GJatSFCo7VvhiO6G2akywV0O7ev54_P6wkrS3SWytKUANNZkhw39SHRyajqxOGN vSJkv2SwYiStMFBScy44gBMMAEMxgd0dp3XTmPk6ihVDvMv1z7q_sJsPCAoZru2sx0ldmNnzYcZE 5AmVO_yDzCs3Lvq5PIDga83snbxDza.CfutfFdI3G2HARc1QBbk28PbJEvDtqOAgqPYEJmKw3wm7 NRZM2I69licFtw6wC1AtViSy9n7ntCcz6Z6T03m8P6f2mi8_cbGWa9MDjwR7l2rJ74I6.w5WYeoO 5.QRvxeopATuQpAyxkub1nKI0CAnnQ4Y7FXkQDNmPDJBlsXRFeXfjEPiabWtUYsBYX5Ax0RTZEAR hzO.UDHnS82TAYSQjVEBI.ItW8Bn2cIvhZHDBlMp6LtEzD1AWFo4.DOfRRuy6FnrF3WUcZK.yeVt ITGYp6nWGUEWVk3P8QJHZg27Xdyx0noBZE4k8sim_0uIqSjeI3tFmit2MErnxtPSTvygj0gU_ogf HnnpOJTmdEpHDVaARYL6P0o8t.HxjrzODA6qx5iHOvPZGuKlvlJXX9m285tNp4TWQFnYo51lZmP8 kHBGeSNhTSwRibm5j79oCjz0fRIB00BW0ljWTuZ3jF1M9a_fo9KQ4I9ll0OC8pesmQfcCGwpm5vc x8ETfH17NUU5wuPnAGY7qDwogTxs2NpMGClw.xfqNJjgPuW51PiIuHgprH6amdxk3x27ptmLbHj4 - X-Sonic-MF: X-Sonic-ID: 030ebbe5-a88c-47c7-b70f-82b18c63deaa Received: from sonic.gate.mail.ne1.yahoo.com by sonic310.consmr.mail.gq1.yahoo.com with HTTP; Mon, 15 Jan 2024 10:31:29 +0000 Received: by hermes--production-gq1-78d49cd6df-xzd4p (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID a9e19db6f12ba00c2a1a48eb84e1a7f8; Mon, 15 Jan 2024 10:31:28 +0000 (UTC) Content-Type: text/plain; charset=us-ascii 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 (Mac OS X Mail 16.0 \(3774.300.61.1.2\)) Subject: Re: noatime on ufs2 From: Mark Millard In-Reply-To: <20240115182713.5abeab262fc4750fb3c45b53@dec.sakura.ne.jp> Date: Mon, 15 Jan 2024 02:31:17 -0800 Cc: Olivier Certner , Current FreeBSD Content-Transfer-Encoding: quoted-printable Message-Id: References: <3183964.fD0qBhBWp0@ravel> <6A477CBE-692E-49F9-B21E-2C0D29F09766@yahoo.com> <20240115072732.85c2213714a658d3b98ab830@dec.sakura.ne.jp> <259993C7-D14C-48CC-9593-25FCC1741115@yahoo.com> <20240115182713.5abeab262fc4750fb3c45b53@dec.sakura.ne.jp> To: Tomoaki AOKI X-Mailer: Apple Mail (2.3774.300.61.1.2) X-Rspamd-Queue-Id: 4TD7jH2WcCz461s X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:36647, ipnet:98.137.64.0/20, country:US] On Jan 15, 2024, at 01:27, Tomoaki AOKI = wrote: > On Sun, 14 Jan 2024 16:13:06 -0800 > Mark Millard wrote: >=20 >> On Jan 14, 2024, at 14:27, Tomoaki AOKI = wrote: >>=20 >>> On Sun, 14 Jan 2024 10:53:34 -0800 >>> Mark Millard wrote: >>>=20 >>>> On Jan 14, 2024, at 08:39, Olivier Certner = wrote: >>>>=20 >>>>> Hi Mark, >>>>>=20 >>>>>> I never use atime, always noatime, for UFS. That said, I'd never = propose >>>>>> changing the long standing defaults for commands and calls. >>>>>=20 >>>>> With this mail, you're giving more detailed objections on the = social/political aspects of the proposed changed, or as we usually say = more simply, POLA. >>>>>=20 >>>>> All your points are already largely weakened by the fact that, to = wrap-up in a single sentence at the risk of being slightly caricatural = (but then see my other mails), nobody really seems to care seriously = about access times. >>>>=20 >>>> I seriously care about having a lack of access times. Yet, I've no >>>> objection to needing to be explicit about it in commands and >>>> subroutine interfaces, given the long standing interfaces = (defaults). >>>> It would be different if I could not achieve the lack of access >>>> times. That defaults do not block having the desired settings makes >>>> the change optional, not technically required. The defaults are, >>>> thus, primarily social/political aspects of interfaces, not >>>> technical requirements to make things work. >>>>=20 >>>> Given that, I explicitly claim that avoiding POLA at this late = stage >>>> is my preference for the priority of competing considerations. I >>>> make no claim of knowing the majority view of the tradeoffs. I = would >>>> claim that, if the majority is not by just some marginal amount, >>>> contradicting that majority view for this would not be appropriate. >>>> (Again: the social/political aspects.) >>>>=20 >>>> And, hopefully, this is my last contribution to this particular >>>> bike shed. >>>>=20 >>>> =3D=3D=3D >>>> Mark Millard >>>> marklmi at yahoo.com >>>=20 >>> I would prefer violating POLA here, with, for example, forcing = admins >>> to choose explicitly with installer menu >>=20 >> I've not reported any objection to bsdinstall having explicit >> choices required in its menus. Nor to changing how, say, >> official snapshots are generated (so long as well notified >> and documented). If my wording was unclear on that, I'm sorry. >>=20 >> My focus was on things like mount command notation and >> /etc/fstab notation (that tracks mount defaults) or subroutine >> interface equivalents of such things and changing their >> behavior without requiring changing the notation already in >> place in various files. >>=20 >> (I've tried to word the above without making new points, >> avoiding contributing more to the bike shed material.) >>=20 >>> Choose whether you need to retain last file access time or not: >>> 1: Don't keep (current default) >>> 2: Keep last one (default before 15.0) >>>=20 >>> by hand, or via installer configuration or additional scripts. >>> Of course, existing installations should not be affected. >>>=20 >>=20 >>=20 >> =3D=3D=3D >> Mark Millard >> marklmi at yahoo.com >=20 > So you mean changing behaviour of mount[_*] to default to noatime, in > conjunction with configuration in /etc/fstab to default to noatime, > right? > So if changes are done as such, if anyone want atime active, add > "-o atime" in mount[_*] command and/or "[,]atime" in /etc/fstab? In my stated view, if bsdinstall is modified for UFS it should generate /etc/fstab files with explicit "noatime" notation when the user selects to not have atime. If they select to have atime in use instead, two ways would work: be explicit in /etc/fstab with an "atime" or leave it implicit for what I've stated as my view. As far as I'm concerned, the generated /etc/fstab could always be explicit, avoiding any dependency on the default for lack of having explicit notation. But, I'll note that the existing "man mount" only mentions the "noatime" notation, not the possibility of an explicit "atime". The same goes for "man fstab". No matter what, the documentation could be explicit about both notations, noting which ends up being the default for when the user's notation is not explicit. I've indicated that my preference for the lack of explicit notation would be to continue to have it mean "atime" implicitly. But tools like bsdinstall need not output files that depend on that at all: the /etc/fstab files could always be generated with explicit notation. Hopefully, the above is clear and I can avoid having to yet again describe my view. Again I've tried to word the above without making new points, avoiding contributing more to the bike shed material. =3D=3D=3D Mark Millard marklmi at yahoo.com From nobody Mon Jan 15 10:53:31 2024 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 4TD8Bm61llz56dF5 for ; Mon, 15 Jan 2024 10:53:36 +0000 (UTC) (envelope-from pblok@bsd4all.org) Received: from mail.bsd4all.org (mail.bsd4all.org [88.99.169.216]) by mx1.freebsd.org (Postfix) with ESMTP id 4TD8Bl3vhMz4CWZ for ; Mon, 15 Jan 2024 10:53:35 +0000 (UTC) (envelope-from pblok@bsd4all.org) Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of pblok@bsd4all.org designates 88.99.169.216 as permitted sender) smtp.mailfrom=pblok@bsd4all.org Received: from mail.bsd4all.org (localhost [127.0.0.1]) by mail.bsd4all.org (Postfix) with ESMTP id 93DAA72FD; Mon, 15 Jan 2024 11:53:37 +0100 (CET) X-Virus-Scanned: amavisd-new at bsd4all.org Received: from mail.bsd4all.org ([127.0.0.1]) by mail.bsd4all.org (mail.bsd4all.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id VoPHWp6OvagA; Mon, 15 Jan 2024 11:53:36 +0100 (CET) Received: from smtpclient.apple (pony_ip [204.168.249.121]) by mail.bsd4all.org (Postfix) with ESMTPSA id 8A4E272F7; Mon, 15 Jan 2024 11:53:35 +0100 (CET) From: Peter Blok Message-Id: <683EF50F-6665-4664-A7CE-1EFE50076FB0@bsd4all.org> Content-Type: multipart/alternative; boundary="Apple-Mail=_727E0BFF-35CE-446A-A17B-7C5202616E94" 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 (Mac OS X Mail 16.0 \(3696.120.41.1.4\)) Subject: Re: NFSv4 crash of CURRENT Date: Mon, 15 Jan 2024 11:53:31 +0100 In-Reply-To: Cc: Cy Schubert , Rick Macklem , Ronald Klop , FreeBSD CURRENT To: FreeBSD User References: <20240113193324.3fd54295@thor.intern.walstatt.dynvpn.de> <1369645989.13766.1705178331205@localhost> <20240115043412.B6998C8@slippy.cwsent.com> <20240115064704.611fe0c4@thor.intern.walstatt.dynvpn.de> X-Mailer: Apple Mail (2.3696.120.41.1.4) X-Spamd-Bar: - X-Spamd-Result: default: False [-1.20 / 15.00]; SUSPICIOUS_RECIPS(1.50)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-1.000]; MV_CASE(0.50)[]; R_SPF_ALLOW(-0.20)[+mx]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; RCVD_NO_TLS_LAST(0.10)[]; FREEMAIL_CC(0.00)[cschubert.com,gmail.com,klop.ws,freebsd.org]; ARC_NA(0.00)[]; ASN(0.00)[asn:24940, ipnet:88.99.0.0/16, country:DE]; RCVD_VIA_SMTP_AUTH(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; TAGGED_RCPT(0.00)[]; R_DKIM_NA(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DMARC_NA(0.00)[bsd4all.org]; TO_DN_ALL(0.00)[]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; RCPT_COUNT_FIVE(0.00)[5] X-Rspamd-Queue-Id: 4TD8Bl3vhMz4CWZ --Apple-Mail=_727E0BFF-35CE-446A-A17B-7C5202616E94 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 Hi, Forgot to mention I=E2=80=99m on 13-stable. The fix that is causing the = crash with automounted NFS is: commit cc5cda1dbaa907ce52074f47264cc45b5a7d6c8b Author: Konstantin Belousov Date: Tue Jan 2 00:22:44 2024 +0200 nfsclient: limit situations when we do unlocked read-ahead by nfsiod =20 (cherry picked from commit 70dc6b2ce314a0f32755005ad02802fca7ed186e) When I remove the fix, the problem is gone. Add it back and the crash = happens. Peter > On 15 Jan 2024, at 09:31, Peter Blok wrote: >=20 > Hi, >=20 > I do have a crash on a NFS client with stable of today = (4c4633fdffbe8e4b6d328c2bc9bb3edacc9ab50a). It is also autofs related. = Maybe it is the same problem. >=20 > I have ports automounted on /am/ports. When I do cd /am/ports/sys and = type tab to autocomplete it crashes with the below stack trace. If I = plainly mount ports on /usr/ports and do the same everything works. I am = using NFSv3 >=20 > Peter >=20 >=20 >=20 >=20 > Fatal trap 12: page fault while in kernel mode > cpuid =3D 2; apic id =3D 04 > fault virtual address =3D 0x89 > fault code =3D supervisor read data, page not present > instruction pointer =3D 0x20:0xffffffff809645d4 > stack pointer =3D 0x28:0xfffffe00acadb830 > frame pointer =3D 0x28:0xfffffe00acadb830 > code segment =3D base 0x0, limit 0xfffff, type 0x1b > =3D DPL 0, pres 1, long 1, def32 0, gran 1 > processor eflags =3D interrupt enabled, resume, IOPL =3D 0 > current process =3D 6869 (csh) > trap number =3D 12 > panic: page fault > cpuid =3D 2 > time =3D 1705306940 > KDB: stack backtrace: > #0 0xffffffff806232f5 at kdb_backtrace+0x65 > #1 0xffffffff805d7a02 at vpanic+0x152 > #2 0xffffffff805d78a3 at panic+0x43 > #3 0xffffffff809d58ad at trap_fatal+0x38d > #4 0xffffffff809d58ff at trap_pfault+0x4f > #5 0xffffffff809af048 at calltrap+0x8 > #6 0xffffffff804c7a7e at ncl_bioread+0xb7e > #7 0xffffffff804b9d90 at nfs_readdir+0x1f0 > #8 0xffffffff8069c61a at vop_sigdefer+0x2a > #9 0xffffffff809f8ae0 at VOP_READDIR_APV+0x20 > #10 0xffffffff81ce75de at autofs_readdir+0x2ce > #11 0xffffffff809f8ae0 at VOP_READDIR_APV+0x20 > #12 0xffffffff806c3002 at kern_getdirentries+0x222 > #13 0xffffffff806c33a9 at sys_getdirentries+0x29 > #14 0xffffffff809d6180 at amd64_syscall+0x110 > #15 0xffffffff809af95b at fast_syscall_common+0xf8 >=20 >=20 >=20 >> On 15 Jan 2024, at 06:46, FreeBSD User > wrote: >>=20 >> Am Sun, 14 Jan 2024 20:34:12 -0800 >> Cy Schubert > schrieb: >>=20 >>> In message = >>> om> =20 >>> , Rick Macklem writes: >>>> On Sat, Jan 13, 2024 at 12:39=3DE2=3D80=3DAFPM Ronald Klop = >=3D >>>> wrote: =20 >>>>>=20 >>>>>=20 >>>>> Van: FreeBSD User > >>>>> Datum: 13 januari 2024 19:34 >>>>> Aan: FreeBSD CURRENT > >>>>> Onderwerp: NFSv4 crash of CURRENT >>>>>=20 >>>>> Hello, >>>>>=20 >>>>> running CURRENT client (FreeBSD 15.0-CURRENT #4 = main-n267556-69748e62e82a=3D =20 >>>> : Sat Jan 13 18:08:32 =20 >>>>> CET 2024 amd64). One NFSv4 server is same OS revision as the = mentioned cl=3D =20 >>>> ient, other is FreeBSD =20 >>>>> 13.2-RELEASE-p8. Both offer NFSv4 filesystems, non-kerberized. >>>>>=20 >>>>> I can crash the client reproducable by accessing the one or other = NFSv4 F=3D =20 >>>> S (a simple ls -la). =20 >>>>> The NFSv4 FS is backed by ZFS (if this matters). I do not have = physicla a=3D =20 >>>> ccess to the client =20 >>>>> host, luckily the box recovers. =20 >>>> Did you rebuild both the nfscommon and nfscl modules from the same = sources? >>>> I did a commit to main that changes the interface between these two >>>> modules and did bump the >>>> __FreeBSD_version to 1500010, which should cause both to be = rebuilt. >>>> (If you have "options NFSCL" in your kernel config, both should = have >>>> been rebuilt as a part of >>>> the kernel build.) >>>>=20 >>>=20 >>> Is anyone by chance seeing autofs in the backtrace too? >>>=20 >>>=20 >>=20 >> Hello Cy Shubert, >>=20 >> I forgot to mention that those crashes occur with autofs mounted = filesystems. Good question, >> by the way, I will check whether crashes also happen when mounting = the tradidional way. >>=20 >> Kind regards, >>=20 >> oh >>=20 >> --=20 >> O. Hartmann >=20 --Apple-Mail=_727E0BFF-35CE-446A-A17B-7C5202616E94 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8 Hi,

Forgot = to mention I=E2=80=99m on 13-stable. The fix that is causing the crash = with automounted NFS is:

commit = cc5cda1dbaa907ce52074f47264cc45b5a7d6c8b
Author: = Konstantin Belousov <kib@FreeBSD.org>
Date:   Tue = Jan 2 00:22:44 2024 +0200

    nfsclient: limit situations when we do unlocked = read-ahead by nfsiod
    
    (cherry picked from commit = 70dc6b2ce314a0f32755005ad02802fca7ed186e)

When I remove the fix, the problem is = gone. Add it back and the crash happens.

Peter

On 15 = Jan 2024, at 09:31, Peter Blok <pblok@bsd4all.org> wrote:

Hi,

I do have a crash on a NFS client with = stable of today (4c4633fdffbe8e4b6d328c2bc9bb3edacc9ab50a). It is also = autofs related. Maybe it is the same problem.

I have ports automounted on /am/ports. = When I do cd /am/ports/sys and type tab to autocomplete it crashes with = the below stack trace. If I plainly mount ports on /usr/ports and do the = same everything works. I am using NFSv3

Peter




Fatal trap 12: page fault while in kernel mode
cpuid =3D 2; apic id =3D 04
fault = virtual address = =3D 0x89
fault code =3D= supervisor read data, page not present
instruction = pointer = =3D 0x20:0xffffffff809645d4
stack = pointer =        =3D 0x28:0xfffffe00acadb830
frame pointer        =3D = 0x28:0xfffffe00acadb830
code segment =3D= base 0x0, limit 0xfffff, type 0x1b
= =3D DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags =3D interrupt enabled, resume, = IOPL =3D 0
current process =3D= 6869 (csh)
trap number =3D 12
panic: page fault
cpuid =3D 2
time =3D 1705306940
KDB: stack = backtrace:
#0 0xffffffff806232f5 at = kdb_backtrace+0x65
#1 0xffffffff805d7a02 at = vpanic+0x152
#2 0xffffffff805d78a3 at = panic+0x43
#3 0xffffffff809d58ad at = trap_fatal+0x38d
#4 0xffffffff809d58ff at = trap_pfault+0x4f
#5 0xffffffff809af048 at = calltrap+0x8
#6 0xffffffff804c7a7e at = ncl_bioread+0xb7e
#7 0xffffffff804b9d90 at = nfs_readdir+0x1f0
#8 0xffffffff8069c61a at = vop_sigdefer+0x2a
#9 0xffffffff809f8ae0 at = VOP_READDIR_APV+0x20
#10 0xffffffff81ce75de at = autofs_readdir+0x2ce
#11 0xffffffff809f8ae0 at = VOP_READDIR_APV+0x20
#12 0xffffffff806c3002 at = kern_getdirentries+0x222
#13 0xffffffff806c33a9 at = sys_getdirentries+0x29
#14 0xffffffff809d6180 at = amd64_syscall+0x110
#15 0xffffffff809af95b at = fast_syscall_common+0xf8



On 15 = Jan 2024, at 06:46, FreeBSD User <freebsd@walstatt-de.de> wrote:

Am Sun, 14 Jan 2024 20:34:12 -0800
Cy Schubert <Cy.Schubert@cschubert.com> schrieb:

In message <CAM5tNy5aat8vUn2fsX9jV=3DD9yGZdnO20Q0Ea7qtszx+zSES2bw@mail.gmai= l.c
om>  
, Rick Macklem = writes:
On Sat, Jan = 13, 2024 at 12:39=3DE2=3D80=3DAFPM Ronald Klop <ronald-lists@klop.ws>=3D
wrote: =  


Van: FreeBSD User <freebsd@walstatt-de.de>
Datum: 13 = januari 2024 19:34
Aan: FreeBSD CURRENT <freebsd-current@freebsd.org>
Onderwerp: = NFSv4 crash of CURRENT

Hello,

running CURRENT client (FreeBSD 15.0-CURRENT = #4 main-n267556-69748e62e82a=3D  
: Sat = Jan 13 18:08:32  
CET 2024 amd64). One NFSv4 server is same OS revision as the = mentioned cl=3D  
ient, other is FreeBSD =  
13.2-RELEASE-p8.= Both offer NFSv4 filesystems, non-kerberized.

I can crash the client reproducable by accessing the one or = other NFSv4 F=3D  
S (a simple ls -la). =  
The NFSv4 FS = is backed by ZFS (if this matters). I do not have physicla a=3D =  
ccess to the client  
host, luckily the box = recovers.  
Did you rebuild both the = nfscommon and nfscl modules from the same sources?
I did a = commit to main that changes the interface between these two
modules and did bump the
__FreeBSD_version to = 1500010, which should cause both to be rebuilt.
(If you = have "options NFSCL" in your kernel config, both should have
been rebuilt as a part of
the kernel build.)


Is anyone by = chance seeing autofs in the backtrace too?



Hello Cy Shubert,

I forgot to mention that those crashes occur with autofs = mounted filesystems. Good question,
by the way, I will check whether crashes also happen when = mounting the tradidional way.

Kind regards,

oh

-- 
O. = Hartmann


= --Apple-Mail=_727E0BFF-35CE-446A-A17B-7C5202616E94-- From nobody Mon Jan 15 11:15:45 2024 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 4TD8hf1WKlz56gZS for ; Mon, 15 Jan 2024 11:16:02 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic310-20.consmr.mail.gq1.yahoo.com (sonic310-20.consmr.mail.gq1.yahoo.com [98.137.69.146]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 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 4TD8hf0HPcz4Fpk for ; Mon, 15 Jan 2024 11:16:01 +0000 (UTC) (envelope-from marklmi@yahoo.com) Authentication-Results: mx1.freebsd.org; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1705317360; bh=cfCMy5VdtuMsk4Tjng6TEwC9YzmuIKz8ZOO7odpXUo4=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From:Subject:Reply-To; b=h/p4DpqkOdNoepMBQQpUF96G1NHvJRhmhQVh8GyuqS2ncUoNLsRMiTW95uIj7qk9rmU/9XkjpaE7zYT4ynqrXKb9DUJUll+EaX+xmpl+pERtHeOzsSvKlEucBWa1No9YeeQkaog2E24HlVloy4Yvr0zF/lTdwAnYVHz+i2AFiuBNgatOtdUHx/qYKe2VHUgjOc6b5qxLh4VQBs6Y6F+MDHzi1pwdDEd/3niTghSjrn/0Cpa3aCTKbw0+6U2w3ntS5wY4ndf/T5kzJKh8rVtU/KqLIqm1v9fw66+oGpPhF7tg4mjt1wpp4yL6s2BB86jeZvM566tYqlVbgHX0cN9M3A== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1705317360; bh=KG98Fx/UI8AnvRaTArIv39BOoPJKhC6HiAF3nuiMCbT=; h=X-Sonic-MF:Subject:From:Date:To:From:Subject; b=Y4bBsBA+QUMo8ifZr6h4ilr44YzABBf/G7Ou/dYqt8freIz288yi7y2KogcEgKBOncchil2tEIOuoansGjt0tmXIBKIvK5WYfn8AMO2uG4+8I1hvojQ4Zhgc8IHDYe0VpmEwALd5DPVn1vQDfZWy7mtYeSoOSCUntLokn5EjJynwPVc4OVMNY32u3xH4Iuyrdq3DqJ7x6BbkJlTPoX8g6GeO9Xv/JT5/SkOHs5pNuh68AUlm5ZOX56OrWBx20dZeoKdLHUBwKFALKPMpllKSpRwOmByzDbYnUdXxMvUNSbNfDY/gzsJKH5yGgzEfUAJgXdZIgHLHImpNFmgQ57RWRA== X-YMail-OSG: IETmSFEVM1khFMtG.pB1NT7wL.E0f7XiGWAQ2QnyrVWM.Oy5k5zRcT7P_uCclxG SQfCme3zV4I2eFitYPCE7IVF504nPyZy.G72nJvYqSVkkx7w2iJp.VhWbyqFmVqwSLKvZloxQvHD FRUO7vh4wjVsD6KTVURpOVCYcchTbztcwfUsGFtdDlrvT27cefN8N5qjAC2F.enWBS6xC4YZ6T.o mLH347DVkKByYCGGfVX_rWXtuKcLExh8gUiVuafPhDqesmBBze4FikAlKqdfgVlqEGoi6dlX7cQw kvQHOfeytdhlcDygj55sAna5Q6rggPcjCxiAR4Uv2.hXKJlujgh6O5b80M_b85UHbKj07hV39bsI or8vGJgSM2HAkW7KMkoK2o7kRahiIVVZAxxvsgZHfKHWVo6hz72urLSSFTfqUA6ehr_G2jWn4JdS xKsrN1b4Wv_oQylUwcTMhAjBlJHrFNxCne.1k7Jsvw6tecfuvNwgW.bs33GLa4EwNC8HgBIaANiC ssLAz2NJkH12IvO9DjKdqzyC2sjcoPoRmgHlpung9_Wr4tZYjaR0CfeOKB23KsA3CE4baYeakrYx KZpsakLJyBzZo0CIwAHWbqCAnk28LSu5yQN7raF6krTen1ZZD3HUNfGJnMPIFcDKSm0DnwksXBKz qqRjm7uJqzmGA.i.fk5U8oi1b18rJuITxDeXiTVwnQny4g9_RJILlkU45Z1ddzSV1i7Cncbl64mi paM9XoUGbwHT5RV30WPwTQ1dwXBuym.BiONcVoUPWvVTT7fWkib2SqiNvU8Li6F.hRahd_OAj793 baYI_k_rkg6pLEOXQK9rxTXaywlkUxh9PxRhjS_6FVhj7CD3i4pRk85TP72rMyKBtM1VH4OJU_Uc JXwwklK3wULPGznRXDzDxbKx2L_ycFygDFQlSeOIB4DFNioTnvC8hUhYB471z66DfcohlQgmSIoy e4iVUeO7pXqj5t6Ssa_kWkgb7MZA0pOSTNtFsW.qSgy7D4bjgASzDgXdHYkc1gloYZkh0tl4htQR GCA97HDhbY0xUpcdUm6IfZYqzcU7tD4DFLNjMlsBdnUS8I7lrZOnw4DgoNMb6ywU0oIVKjDmS1.7 izFJ9Sjgtx5SSHmYAYJLHKA8KhI1qZ1Hn2wT1oEEjntA5STa3BtGFOFzpv_PORKDFwT.N.JjEVzT 2QcAcn5KclJ8lSqEqYl.kAU14CjpabUZqNy21GZmP8vWraT16bphktYViAkkV2fcHUfr69WkYyL0 F2S9IAdOeQOtknwRjnwNeXiZhFNjtJVnuoBtoD1ahjsuNYoW9fx6ZxpXsx18QKMg3NuLcX_7Ww3K AJ.gW1PvK_ytcOkQdCiv8d8nvisz0XjfAiGsCRF9VOEDe.SvuwtV9g2BcWKGpmOfi1klt3j.u83A zQ5kVyZBL_8HV_0TFu1NGBCP9b17M77YNUqJQ1OlX.SzqbGYxbs5OeRi7uPyDYCEjjgSQ6NSdHP2 TMeThRnqPzWYgMxHOePWmZ9aFoZ9ncsoF5IAADQOX4okvoRIpwBkWKsvpPiMIGdc3JVhupk48uuS nmpqhEzoBtsl18NE2fU7JrtJRZ_EUF_WP3Ag5_YzoDySyJRwEPhfUjFlsaOp_UCxGaT4bRu11oE9 e.cYSszUSDAEIPIXo170XfQ5AJMA1p716pwdEetxkqFspEGSW4UzhG2VqA2_8Py1.bpGODmw2F6E VEmGbWUoZqrPTka0tF_nFRc8L22h9S5jxxmQOOmXXv4xCgEXKzA9spnLG98nEKHVBTni_AQs8Nnw kU6tDjcF9FWPECY_zEvxznc9UJsVGP3ZFJ1S.JW0mKvKMlhkHoPe58INb3X72Qlf.CPeK1kmW7XR xeNIflDDeuGy6ud69SDrhnPedeHr9oz6F74NbYNf5ClNegGoQ943r7U1zCblXaXpMfhX1XMEyzfD L9cdH2GmX1oRJN8qyhCXuP6I_XfU3S_12RDjDjWL.JPaQbOZ3yOiGfpe9TN_7_uDOFc7XtXiB.8f eJVZ26_WuC.0y4QfEOvVigJ_JjUfJKSpH2k4k813NN41xeEbm.j00hqx0fNBkahURFX8gy0i3oKB 1GB0g1nrc1T4Pb_U4jn4mru325x0jB0Yqo3JhX3gtk1kZHz6DLAfwcx7cgM_gkdOBCh5BpOkoolt WwWkew913P5xzNHJ6YLcEHmu0WLP3QEy7twVg3.hvXXxZ4vDQhONLuJ0RqYFBiMe...gwkkM6Mu3 GVDdJHNK3COF1YBc9uz06d.SbelkWnDe0lnCQvnA_HobfPpvQ5c8TOt60Qn5m_XmYVEiG_pvQ6uc FrzY- X-Sonic-MF: X-Sonic-ID: a384cd18-c956-49b3-9698-6686b5c88c25 Received: from sonic.gate.mail.ne1.yahoo.com by sonic310.consmr.mail.gq1.yahoo.com with HTTP; Mon, 15 Jan 2024 11:16:00 +0000 Received: by hermes--production-gq1-78d49cd6df-wz9pk (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 49575d90d026312df23127e85efc35ae; Mon, 15 Jan 2024 11:15:56 +0000 (UTC) Content-Type: text/plain; charset=us-ascii 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 (Mac OS X Mail 16.0 \(3774.300.61.1.2\)) Subject: Re: poudriere: swap_pager: out of swap space From: Mark Millard In-Reply-To: Date: Mon, 15 Jan 2024 03:15:45 -0800 Cc: Current FreeBSD Content-Transfer-Encoding: quoted-printable Message-Id: References: <60C36CF0-43AC-4ACA-B6A5-6997F4425EC5.ref@yahoo.com> <60C36CF0-43AC-4ACA-B6A5-6997F4425EC5@yahoo.com> To: Lexi Winter X-Mailer: Apple Mail (2.3774.300.61.1.2) X-Rspamd-Queue-Id: 4TD8hf0HPcz4Fpk X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:36647, ipnet:98.137.64.0/20, country:US] On Jan 15, 2024, at 00:07, Lexi Winter wrote: > Mark Millard: >> You seem to be under the impression that "Inact" means "page is not >> dirty" and so can be freed without being written out to the swap >> space. >=20 > indeed, i was, because this is how sysutils/htop displays memory = usage: >=20 > top(1) >=20 > Mem: 8502M Active, 15G Inact, 1568M Laundry, 5518M Wired, 1343M Buf, = 690M Free >=20 > htop(1): >=20 > Mem[|||||||||||||||||||||||||||||||||||||||||| = 13.7G/31.9G] >=20 > i'm vaguely annoyed, but also not surprised, to find out that htop is > wrong here... htop is not native to FreeBSD, unlike top. So making it fit is odd because Inact can be a mix of dirty and clean pages. >> Inact pages can be dirty and such pages can not be freed without >> being written out to the swap space first. If the swap space >> ends up filled, dirty pages that are not in active use stay or >> propogate into the Inact or Laundry states, accumulating there >> (for later potential use). >=20 > so, how are Inact pages created? They are just non-wired pages that have not been accessed in a sufficiently recent time, no matter if dirty vs. if clean. (Wired pages are never written to swap space while they are wired.) Buf pages (as top shows) are clean but can be active or inactive: it is not an independent category. But it counts only pages used for buffers/caches. There could be other clean pages not counted. FreeBSD does not page out active pages. Thus, a program that keeps all of the non-wired RAM Active will not page out to the swap space and can lead to OOM kills. There is a parameter that indirectly controls the time before such OOM kills happen: vm.pageout_oom_seq that has a default value of 12. Larger figures increase the time it takes for such OOM kills to happen. I use 120 to avoid OOM kills in my range of contexts: delays long enough for things to complete in my contexts. (I reference time to simplify the details.) > does this happen from filesystem > writes, or something else? All non-wired memory is subject to potentially being Inactive. It is not limited to file system memory at all. > is there somewhere this that is documented? Inactive pages that are not dirty are freed based on memory pressure. Inactive pages that are dirty can not be freed without loss of information. Inactive can be an arbitrary mix of dirty and clean pages. Only dirty pages are potentially moved to Laundry. I have seen wording indicating that all dirty pages are in the laundry --mixed in the same text that such pages are first inactive. The observed behavior is that the/some dirty pages that have not been accessed in a sufficiently recent time go inactive first and later can move to the Laundry --and the pages that are written to the swap space did make it into the Laundry first. One place to read a description is: https://klarasystems.com/articles/exploring-swap-on-freebsd/ Part of its text is: QUOTE The active and inactive queues contain both clean and dirty pages. When = reclaiming memory to alleviate a shortage, the page daemon will free = clean pages from the head of the inactive queue. Dirty pages must first = be cleaned by paging them out to swap or a file system. This is a lot of = work, so the page daemon moves them to the laundry queue for deferred = processing. The laundry queue is managed by a dedicated thread, the = laundry thread, which is responsible for deciding when and how much to = page out. END QUOTE There is a description of top's output as well: https://klarasystems.com/articles/explaining-top1-on-freebsd/ but it is not clear about the dirty vs. clean status of Inact vs. Laundry, where Laundry need not cover all dirty pages. Nor is it clear about Buf counting a mix of Active and Inactive pages in its count in general. =3D=3D=3D Mark Millard marklmi at yahoo.com From nobody Mon Jan 15 15:04:44 2024 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 4TDFmp2qvRz57740 for ; Mon, 15 Jan 2024 15:04:58 +0000 (UTC) (envelope-from rick.macklem@gmail.com) Received: from mail-pg1-x530.google.com (mail-pg1-x530.google.com [IPv6:2607:f8b0:4864:20::530]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1D4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4TDFmp26W5z4mfw for ; Mon, 15 Jan 2024 15:04:58 +0000 (UTC) (envelope-from rick.macklem@gmail.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-pg1-x530.google.com with SMTP id 41be03b00d2f7-5cf22a89a54so2329342a12.3 for ; Mon, 15 Jan 2024 07:04:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1705331097; x=1705935897; darn=freebsd.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=CPj8wL5x9FF47KR2ZD8AWOGBFcCn2OhU8cAjwfDsSwc=; b=XyS2lK4nuNuKZj1gI2DMXcQc+wlcPDhDZ5e9L6iMrwzzKpx0WP39VLuyB+i7FH94zL AHZVEk7cQL6I/FoglgOKuIUVqziqYGw5aN80V3A1x2YJq7Pc2Os7zok8UAtXbMqFc3Xp UbeBvpTBrPhAI6FU1tKLkgviau8oJJtPTYM5g9ysmEvzc2GMkdNGy0QerQ9dcaaNOamH YY7N3G8NtGk/dIpoG/NfyCCDbIopvCAI/Ea8DyaqhpYZZsMs+F6tWPa472RlULS0RXhM 8MS/S7gHpFU5pCY9eE8XpCgHR2s5FLWGBtlWDBzuvOSfjsSYFNWYTdH/J3tyCzlCsvdb aE3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705331097; x=1705935897; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=CPj8wL5x9FF47KR2ZD8AWOGBFcCn2OhU8cAjwfDsSwc=; b=Wntf0nGlrFN2Id3Nh9dmay3rNhCQvRc4rFx0kLw1/Uz247oMCPGyuvjaBVxgAwAFOE DOfgCz/db33fbPAqpZGf7knpWNYdEZAb6YUXbAcrk3x+C6I15fuKe1KhovvapRsibVXv 7ephPJqS6cNEkP0maWbl694K2qT33XLb7L+UQoFRRihItkNhbU9oD6hSA8SvYnaUimuh MTK7MWOPQjeG8fAYB8Dn8apooS3CLV+arAiUBAQzfrkQISM7KSY6JJkgeVsUkqFDru+v 7WyLT7Belk7g27mQRkOyeYBuPhdN7Y1EiHURYquhVyDLd26OYb0y+SYKnq6AuGfyM3yi wbQQ== X-Gm-Message-State: AOJu0YxcIlguBS1XTLhbeds1UcQqGvfFlASr8Frs+hY/5TXNtz3+I6xF 5xjtjj5ycqWNgIV72GfIIOsCzNt9Oj3YMbxGyg== X-Google-Smtp-Source: AGHT+IF6AXLl7Sz1ERW69qZfP5YcaVjgRcDDUeRXRnOQm7dmPFC/sqePcS6YHBvuDgQQG7zwuxcEY7OyIGNvlWvvvQs= X-Received: by 2002:a17:90a:3c86:b0:28d:2b16:b714 with SMTP id g6-20020a17090a3c8600b0028d2b16b714mr2543206pjc.27.1705331097064; Mon, 15 Jan 2024 07:04:57 -0800 (PST) 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 References: <20240113193324.3fd54295@thor.intern.walstatt.dynvpn.de> <1369645989.13766.1705178331205@localhost> <20240115043412.B6998C8@slippy.cwsent.com> <20240115064704.611fe0c4@thor.intern.walstatt.dynvpn.de> <683EF50F-6665-4664-A7CE-1EFE50076FB0@bsd4all.org> In-Reply-To: <683EF50F-6665-4664-A7CE-1EFE50076FB0@bsd4all.org> From: Rick Macklem Date: Mon, 15 Jan 2024 07:04:44 -0800 Message-ID: Subject: Re: NFSv4 crash of CURRENT To: Peter Blok Cc: FreeBSD User , Cy Schubert , Ronald Klop , FreeBSD CURRENT Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 4TDFmp26W5z4mfw X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; TAGGED_FROM(0.00)[]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US] On Mon, Jan 15, 2024 at 2:53=E2=80=AFAM Peter Blok wrot= e: > > Hi, > > Forgot to mention I=E2=80=99m on 13-stable. The fix that is causing the c= rash with automounted NFS is: > > commit cc5cda1dbaa907ce52074f47264cc45b5a7d6c8b > Author: Konstantin Belousov > Date: Tue Jan 2 00:22:44 2024 +0200 > > nfsclient: limit situations when we do unlocked read-ahead by nfsiod > > (cherry picked from commit 70dc6b2ce314a0f32755005ad02802fca7ed186e) > > When I remove the fix, the problem is gone. Add it back and the crash hap= pens. Kostik has already come up with a probable fix. If you want it right away, here it is, but he'll probably commit it soon anyhow: diff --git a/sys/fs/nfsclient/nfs_clbio.c b/sys/fs/nfsclient/nfs_clbio.c index c027d7d7c3fd..1cf45bb0c924 100644 --- a/sys/fs/nfsclient/nfs_clbio.c +++ b/sys/fs/nfsclient/nfs_clbio.c @@ -414,6 +414,18 @@ nfs_bioread_check_cons(struct vnode *vp, struct thread *td, struct ucred *cred) return (error); } +static bool +ncl_bioread_dora(struct vnode *vp) +{ + vm_object_t obj; + + obj =3D vp->v_object; + if (obj =3D=3D NULL) + return (true); + return (!vm_object_mightbedirty(vp->v_object) && + vp->v_object->un_pager.vnp.writemappings =3D=3D 0); +} + /* * Vnode op for read using bio */ @@ -486,9 +498,7 @@ ncl_bioread(struct vnode *vp, struct uio *uio, int ioflag, struct ucred *cred) * unlocked read by nfsiod could obliterate changes * done by userspace. */ - if (nmp->nm_readahead > 0 && - !vm_object_mightbedirty(vp->v_object) && - vp->v_object->un_pager.vnp.writemappings =3D=3D 0) { + if (nmp->nm_readahead > 0 && ncl_bioread_dora(vp)) { for (nra =3D 0; nra < nmp->nm_readahead && nra < seqcou= nt && (off_t)(lbn + 1 + nra) * biosize < nsize; nra++) { rabn =3D lbn + 1 + nra; @@ -675,9 +685,7 @@ ncl_bioread(struct vnode *vp, struct uio *uio, int ioflag, struct ucred *cred) * directory offset cookie of the next block.) */ NFSLOCKNODE(np); - if (nmp->nm_readahead > 0 && - !vm_object_mightbedirty(vp->v_object) && - vp->v_object->un_pager.vnp.writemappings =3D=3D 0 && + if (nmp->nm_readahead > 0 && ncl_bioread_dora(vp) && (bp->b_flags & B_INVAL) =3D=3D 0 && (np->n_direofoffset =3D=3D 0 || (lbn + 1) * NFS_DIRBLKSIZ < np->n_direofoffset) && rick ps: It appears that autofs causes the directory to be read before it is open'd for some reason. I've never looked at autofs. > > Peter > > On 15 Jan 2024, at 09:31, Peter Blok wrote: > > Hi, > > I do have a crash on a NFS client with stable of today (4c4633fdffbe8e4b6= d328c2bc9bb3edacc9ab50a). It is also autofs related. Maybe it is the same p= roblem. > > I have ports automounted on /am/ports. When I do cd /am/ports/sys and typ= e tab to autocomplete it crashes with the below stack trace. If I plainly m= ount ports on /usr/ports and do the same everything works. I am using NFSv3 > > Peter > > > > > Fatal trap 12: page fault while in kernel mode > cpuid =3D 2; apic id =3D 04 > fault virtual address =3D 0x89 > fault code =3D supervisor read data, page not present > instruction pointer =3D 0x20:0xffffffff809645d4 > stack pointer =3D 0x28:0xfffffe00acadb830 > frame pointer =3D 0x28:0xfffffe00acadb830 > code segment =3D base 0x0, limit 0xfffff, type 0x1b > =3D DPL 0, pres 1, long 1, def32 0, gran 1 > processor eflags =3D interrupt enabled, resume, IOPL =3D 0 > current process =3D 6869 (csh) > trap number =3D 12 > panic: page fault > cpuid =3D 2 > time =3D 1705306940 > KDB: stack backtrace: > #0 0xffffffff806232f5 at kdb_backtrace+0x65 > #1 0xffffffff805d7a02 at vpanic+0x152 > #2 0xffffffff805d78a3 at panic+0x43 > #3 0xffffffff809d58ad at trap_fatal+0x38d > #4 0xffffffff809d58ff at trap_pfault+0x4f > #5 0xffffffff809af048 at calltrap+0x8 > #6 0xffffffff804c7a7e at ncl_bioread+0xb7e > #7 0xffffffff804b9d90 at nfs_readdir+0x1f0 > #8 0xffffffff8069c61a at vop_sigdefer+0x2a > #9 0xffffffff809f8ae0 at VOP_READDIR_APV+0x20 > #10 0xffffffff81ce75de at autofs_readdir+0x2ce > #11 0xffffffff809f8ae0 at VOP_READDIR_APV+0x20 > #12 0xffffffff806c3002 at kern_getdirentries+0x222 > #13 0xffffffff806c33a9 at sys_getdirentries+0x29 > #14 0xffffffff809d6180 at amd64_syscall+0x110 > #15 0xffffffff809af95b at fast_syscall_common+0xf8 > > > > On 15 Jan 2024, at 06:46, FreeBSD User wrote: > > Am Sun, 14 Jan 2024 20:34:12 -0800 > Cy Schubert schrieb: > > In message om> > , Rick Macklem writes: > > On Sat, Jan 13, 2024 at 12:39=3DE2=3D80=3DAFPM Ronald Klop =3D > wrote: > > > > Van: FreeBSD User > Datum: 13 januari 2024 19:34 > Aan: FreeBSD CURRENT > Onderwerp: NFSv4 crash of CURRENT > > Hello, > > running CURRENT client (FreeBSD 15.0-CURRENT #4 main-n267556-69748e62e82a= =3D > > : Sat Jan 13 18:08:32 > > CET 2024 amd64). One NFSv4 server is same OS revision as the mentioned cl= =3D > > ient, other is FreeBSD > > 13.2-RELEASE-p8. Both offer NFSv4 filesystems, non-kerberized. > > I can crash the client reproducable by accessing the one or other NFSv4 F= =3D > > S (a simple ls -la). > > The NFSv4 FS is backed by ZFS (if this matters). I do not have physicla a= =3D > > ccess to the client > > host, luckily the box recovers. > > Did you rebuild both the nfscommon and nfscl modules from the same source= s? > I did a commit to main that changes the interface between these two > modules and did bump the > __FreeBSD_version to 1500010, which should cause both to be rebuilt. > (If you have "options NFSCL" in your kernel config, both should have > been rebuilt as a part of > the kernel build.) > > > Is anyone by chance seeing autofs in the backtrace too? > > > > Hello Cy Shubert, > > I forgot to mention that those crashes occur with autofs mounted filesyst= ems. Good question, > by the way, I will check whether crashes also happen when mounting the tr= adidional way. > > Kind regards, > > oh > > -- > O. Hartmann > > > From nobody Mon Jan 15 15:13:49 2024 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 4TDFz64ltvz5788X for ; Mon, 15 Jan 2024 15:13:54 +0000 (UTC) (envelope-from pblok@bsd4all.org) Received: from mail.bsd4all.org (mail.bsd4all.org [88.99.169.216]) by mx1.freebsd.org (Postfix) with ESMTP id 4TDFz54fBfz4pnd for ; Mon, 15 Jan 2024 15:13:53 +0000 (UTC) (envelope-from pblok@bsd4all.org) Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of pblok@bsd4all.org designates 88.99.169.216 as permitted sender) smtp.mailfrom=pblok@bsd4all.org Received: from mail.bsd4all.org (localhost [127.0.0.1]) by mail.bsd4all.org (Postfix) with ESMTP id 2D36750C8; Mon, 15 Jan 2024 16:13:56 +0100 (CET) X-Virus-Scanned: amavisd-new at bsd4all.org Received: from mail.bsd4all.org ([127.0.0.1]) by mail.bsd4all.org (mail.bsd4all.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id bsyECJlwDtjo; Mon, 15 Jan 2024 16:13:55 +0100 (CET) Received: from smtpclient.apple (pony_ip [204.168.249.121]) by mail.bsd4all.org (Postfix) with ESMTPSA id 008EA5063; Mon, 15 Jan 2024 16:13:53 +0100 (CET) From: Peter Blok Message-Id: Content-Type: multipart/alternative; boundary="Apple-Mail=_1A0F591D-D063-48DB-B399-46B93F76615D" 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 (Mac OS X Mail 16.0 \(3696.120.41.1.4\)) Subject: Re: NFSv4 crash of CURRENT Date: Mon, 15 Jan 2024 16:13:49 +0100 In-Reply-To: Cc: FreeBSD User , Cy Schubert , Ronald Klop , FreeBSD CURRENT To: Rick Macklem References: <20240113193324.3fd54295@thor.intern.walstatt.dynvpn.de> <1369645989.13766.1705178331205@localhost> <20240115043412.B6998C8@slippy.cwsent.com> <20240115064704.611fe0c4@thor.intern.walstatt.dynvpn.de> <683EF50F-6665-4664-A7CE-1EFE50076FB0@bsd4all.org> X-Mailer: Apple Mail (2.3696.120.41.1.4) X-Spamd-Bar: - X-Spamd-Result: default: False [-1.20 / 15.00]; SUSPICIOUS_RECIPS(1.50)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-1.000]; MV_CASE(0.50)[]; R_SPF_ALLOW(-0.20)[+mx]; RCVD_NO_TLS_LAST(0.10)[]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; FROM_HAS_DN(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; ARC_NA(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; ASN(0.00)[asn:24940, ipnet:88.99.0.0/16, country:DE]; TAGGED_RCPT(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; FREEMAIL_TO(0.00)[gmail.com]; TO_MATCH_ENVRCPT_SOME(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; RCVD_COUNT_THREE(0.00)[3]; TO_DN_ALL(0.00)[]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; DMARC_NA(0.00)[bsd4all.org]; R_DKIM_NA(0.00)[]; RCPT_COUNT_FIVE(0.00)[5] X-Rspamd-Queue-Id: 4TDFz54fBfz4pnd --Apple-Mail=_1A0F591D-D063-48DB-B399-46B93F76615D Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 I can give it a shot on one of my clients. > On 15 Jan 2024, at 16:04, Rick Macklem wrote: >=20 > On Mon, Jan 15, 2024 at 2:53=E2=80=AFAM Peter Blok > wrote: >>=20 >> Hi, >>=20 >> Forgot to mention I=E2=80=99m on 13-stable. The fix that is causing = the crash with automounted NFS is: >>=20 >> commit cc5cda1dbaa907ce52074f47264cc45b5a7d6c8b >> Author: Konstantin Belousov >> Date: Tue Jan 2 00:22:44 2024 +0200 >>=20 >> nfsclient: limit situations when we do unlocked read-ahead by = nfsiod >>=20 >> (cherry picked from commit = 70dc6b2ce314a0f32755005ad02802fca7ed186e) >>=20 >> When I remove the fix, the problem is gone. Add it back and the crash = happens. > Kostik has already come up with a probable fix. If you want it right > away, here it is, > but he'll probably commit it soon anyhow: > diff --git a/sys/fs/nfsclient/nfs_clbio.c = b/sys/fs/nfsclient/nfs_clbio.c > index c027d7d7c3fd..1cf45bb0c924 100644 > --- a/sys/fs/nfsclient/nfs_clbio.c > +++ b/sys/fs/nfsclient/nfs_clbio.c > @@ -414,6 +414,18 @@ nfs_bioread_check_cons(struct vnode *vp, struct > thread *td, struct ucred *cred) > return (error); > } >=20 > +static bool > +ncl_bioread_dora(struct vnode *vp) > +{ > + vm_object_t obj; > + > + obj =3D vp->v_object; > + if (obj =3D=3D NULL) > + return (true); > + return (!vm_object_mightbedirty(vp->v_object) && > + vp->v_object->un_pager.vnp.writemappings =3D=3D 0); > +} > + > /* > * Vnode op for read using bio > */ > @@ -486,9 +498,7 @@ ncl_bioread(struct vnode *vp, struct uio *uio, int > ioflag, struct ucred *cred) > * unlocked read by nfsiod could obliterate changes > * done by userspace. > */ > - if (nmp->nm_readahead > 0 && > - !vm_object_mightbedirty(vp->v_object) && > - vp->v_object->un_pager.vnp.writemappings =3D=3D 0) = { > + if (nmp->nm_readahead > 0 && ncl_bioread_dora(vp)) { > for (nra =3D 0; nra < nmp->nm_readahead && nra < = seqcount && > (off_t)(lbn + 1 + nra) * biosize < nsize; = nra++) { > rabn =3D lbn + 1 + nra; > @@ -675,9 +685,7 @@ ncl_bioread(struct vnode *vp, struct uio *uio, int > ioflag, struct ucred *cred) > * directory offset cookie of the next block.) > */ > NFSLOCKNODE(np); > - if (nmp->nm_readahead > 0 && > - !vm_object_mightbedirty(vp->v_object) && > - vp->v_object->un_pager.vnp.writemappings =3D=3D 0 = && > + if (nmp->nm_readahead > 0 && ncl_bioread_dora(vp) && > (bp->b_flags & B_INVAL) =3D=3D 0 && > (np->n_direofoffset =3D=3D 0 || > (lbn + 1) * NFS_DIRBLKSIZ < np->n_direofoffset) && >=20 > rick > ps: It appears that autofs causes the directory to be read before it > is open'd for > some reason. I've never looked at autofs. >=20 >>=20 >> Peter >>=20 >> On 15 Jan 2024, at 09:31, Peter Blok wrote: >>=20 >> Hi, >>=20 >> I do have a crash on a NFS client with stable of today = (4c4633fdffbe8e4b6d328c2bc9bb3edacc9ab50a). It is also autofs related. = Maybe it is the same problem. >>=20 >> I have ports automounted on /am/ports. When I do cd /am/ports/sys and = type tab to autocomplete it crashes with the below stack trace. If I = plainly mount ports on /usr/ports and do the same everything works. I am = using NFSv3 >>=20 >> Peter >>=20 >>=20 >>=20 >>=20 >> Fatal trap 12: page fault while in kernel mode >> cpuid =3D 2; apic id =3D 04 >> fault virtual address =3D 0x89 >> fault code =3D supervisor read data, page not present >> instruction pointer =3D 0x20:0xffffffff809645d4 >> stack pointer =3D 0x28:0xfffffe00acadb830 >> frame pointer =3D 0x28:0xfffffe00acadb830 >> code segment =3D base 0x0, limit 0xfffff, type 0x1b >> =3D DPL 0, pres 1, long 1, def32 0, gran 1 >> processor eflags =3D interrupt enabled, resume, IOPL =3D 0 >> current process =3D 6869 (csh) >> trap number =3D 12 >> panic: page fault >> cpuid =3D 2 >> time =3D 1705306940 >> KDB: stack backtrace: >> #0 0xffffffff806232f5 at kdb_backtrace+0x65 >> #1 0xffffffff805d7a02 at vpanic+0x152 >> #2 0xffffffff805d78a3 at panic+0x43 >> #3 0xffffffff809d58ad at trap_fatal+0x38d >> #4 0xffffffff809d58ff at trap_pfault+0x4f >> #5 0xffffffff809af048 at calltrap+0x8 >> #6 0xffffffff804c7a7e at ncl_bioread+0xb7e >> #7 0xffffffff804b9d90 at nfs_readdir+0x1f0 >> #8 0xffffffff8069c61a at vop_sigdefer+0x2a >> #9 0xffffffff809f8ae0 at VOP_READDIR_APV+0x20 >> #10 0xffffffff81ce75de at autofs_readdir+0x2ce >> #11 0xffffffff809f8ae0 at VOP_READDIR_APV+0x20 >> #12 0xffffffff806c3002 at kern_getdirentries+0x222 >> #13 0xffffffff806c33a9 at sys_getdirentries+0x29 >> #14 0xffffffff809d6180 at amd64_syscall+0x110 >> #15 0xffffffff809af95b at fast_syscall_common+0xf8 >>=20 >>=20 >>=20 >> On 15 Jan 2024, at 06:46, FreeBSD User = wrote: >>=20 >> Am Sun, 14 Jan 2024 20:34:12 -0800 >> Cy Schubert schrieb: >>=20 >> In message = > om> >> , Rick Macklem writes: >>=20 >> On Sat, Jan 13, 2024 at 12:39=3DE2=3D80=3DAFPM Ronald Klop = =3D >> wrote: >>=20 >>=20 >>=20 >> Van: FreeBSD User >> Datum: 13 januari 2024 19:34 >> Aan: FreeBSD CURRENT >> Onderwerp: NFSv4 crash of CURRENT >>=20 >> Hello, >>=20 >> running CURRENT client (FreeBSD 15.0-CURRENT #4 = main-n267556-69748e62e82a=3D >>=20 >> : Sat Jan 13 18:08:32 >>=20 >> CET 2024 amd64). One NFSv4 server is same OS revision as the = mentioned cl=3D >>=20 >> ient, other is FreeBSD >>=20 >> 13.2-RELEASE-p8. Both offer NFSv4 filesystems, non-kerberized. >>=20 >> I can crash the client reproducable by accessing the one or other = NFSv4 F=3D >>=20 >> S (a simple ls -la). >>=20 >> The NFSv4 FS is backed by ZFS (if this matters). I do not have = physicla a=3D >>=20 >> ccess to the client >>=20 >> host, luckily the box recovers. >>=20 >> Did you rebuild both the nfscommon and nfscl modules from the same = sources? >> I did a commit to main that changes the interface between these two >> modules and did bump the >> __FreeBSD_version to 1500010, which should cause both to be rebuilt. >> (If you have "options NFSCL" in your kernel config, both should have >> been rebuilt as a part of >> the kernel build.) >>=20 >>=20 >> Is anyone by chance seeing autofs in the backtrace too? >>=20 >>=20 >>=20 >> Hello Cy Shubert, >>=20 >> I forgot to mention that those crashes occur with autofs mounted = filesystems. Good question, >> by the way, I will check whether crashes also happen when mounting = the tradidional way. >>=20 >> Kind regards, >>=20 >> oh >>=20 >> -- >> O. Hartmann --Apple-Mail=_1A0F591D-D063-48DB-B399-46B93F76615D Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8 I = can give it a shot on one of my clients.

On 15 = Jan 2024, at 16:04, Rick Macklem <rick.macklem@gmail.com> wrote:

On Mon, Jan 15, 2024 at 2:53=E2=80=AFAM Peter Blok = <pblok@bsd4all.org> wrote:

Hi,

Forgot to mention I=E2=80=99m = on 13-stable. The fix that is causing the crash with automounted NFS = is:

commit = cc5cda1dbaa907ce52074f47264cc45b5a7d6c8b
Author: = Konstantin Belousov <kib@FreeBSD.org>
Date:   Tue = Jan 2 00:22:44 2024 +0200

   nfsclient: limit situations when we do = unlocked read-ahead by nfsiod

   (cherry picked from commit = 70dc6b2ce314a0f32755005ad02802fca7ed186e)

When I remove the fix, the problem is gone. Add it back and = the crash happens.
Kostik has already come up with a probable fix. If you want = it right
away, here it = is,
but he'll = probably commit it soon anyhow:
diff --git a/sys/fs/nfsclient/nfs_clbio.c = b/sys/fs/nfsclient/nfs_clbio.c
index c027d7d7c3fd..1cf45bb0c924 100644
--- = a/sys/fs/nfsclient/nfs_clbio.c
+++ b/sys/fs/nfsclient/nfs_clbio.c
@@ -414,6 +414,18 @@ = nfs_bioread_check_cons(struct vnode *vp, struct
thread *td, struct ucred = *cred)
       return = (error);
}

+static bool
+ncl_bioread_dora(struct vnode = *vp)
+{
+ =       vm_object_t obj;
+
+       obj =3D = vp->v_object;
+       if (obj =3D=3D = NULL)
+ =             &n= bsp; return (true);
+       return = (!vm_object_mightbedirty(vp->v_object) &&
+ =           vp->v_objec= t->un_pager.vnp.writemappings =3D=3D 0);
+}
+
/*
 * Vnode op for read using = bio
 */
@@ -486,9 +498,7 @@ ncl_bioread(struct vnode *vp, struct uio = *uio, int
ioflag, = struct ucred *cred)
          &nb= sp;     * unlocked read by nfsiod could = obliterate changes
          &nb= sp;     * done by userspace.
          &nb= sp;     */
- =             &n= bsp; if (nmp->nm_readahead > 0 &&
- =             &n= bsp;     !vm_object_mightbedirty(vp->v_object)= &&
- =             &n= bsp;     vp->v_object->un_pager.vnp.writema= ppings =3D=3D 0) {
+ =             &n= bsp; if (nmp->nm_readahead > 0 && = ncl_bioread_dora(vp)) {
          &nb= sp;        for (nra =3D 0; nra = < nmp->nm_readahead && nra < seqcount = &&
          &nb= sp;            = ;(off_t)(lbn + 1 + nra) * biosize < nsize; nra++) {
          &nb= sp;            = ;rabn =3D lbn + 1 + nra;
@@ -675,9 +685,7 @@ ncl_bioread(struct vnode *vp, struct uio = *uio, int
ioflag, = struct ucred *cred)
          &nb= sp;     *  directory offset cookie of the = next block.)
          &nb= sp;     */
          &nb= sp;    NFSLOCKNODE(np);
- =             &n= bsp; if (nmp->nm_readahead > 0 &&
- =             &n= bsp;     !vm_object_mightbedirty(vp->v_object)= &&
- =             &n= bsp;     vp->v_object->un_pager.vnp.writema= ppings =3D=3D 0 &&
+ =             &n= bsp; if (nmp->nm_readahead > 0 && = ncl_bioread_dora(vp) &&
          &nb= sp;        (bp->b_flags & = B_INVAL) =3D=3D 0 &&
          &nb= sp;        (np->n_direofoffset = =3D=3D 0 ||
          &nb= sp;        (lbn + 1) * = NFS_DIRBLKSIZ < np->n_direofoffset) &&

rick
ps: It appears that autofs = causes the directory to be read before it
is open'd for
     some reason. I've never looked = at autofs.


Peter

On 15 Jan 2024, at 09:31, = Peter Blok <pblok@bsd4all.org> wrote:

Hi,

I do have a crash on a NFS = client with stable of today (4c4633fdffbe8e4b6d328c2bc9bb3edacc9ab50a). = It is also autofs related. Maybe it is the same problem.
I have ports automounted on /am/ports. When I do cd = /am/ports/sys and type tab to autocomplete it crashes with the below = stack trace. If I plainly mount ports on /usr/ports and do the same = everything works. I am using NFSv3

Peter




Fatal trap 12: page fault while in kernel mode
cpuid =3D 2; apic id =3D 04
fault virtual = address =3D 0x89
fault code =3D supervisor read data, page = not present
instruction pointer =3D = 0x20:0xffffffff809645d4
stack pointer =        =3D 0x28:0xfffffe00acadb830
frame pointer        =3D = 0x28:0xfffffe00acadb830
code segment =3D base 0x0, limit = 0xfffff, type 0x1b
=3D DPL 0, pres 1, long 1, def32 0, = gran 1
processor eflags =3D interrupt enabled, resume, = IOPL =3D 0
current process =3D 6869 (csh)
trap= number =3D 12
panic: page fault
cpuid =3D = 2
time =3D 1705306940
KDB: stack = backtrace:
#0 0xffffffff806232f5 at kdb_backtrace+0x65
#1 0xffffffff805d7a02 at vpanic+0x152
#2 = 0xffffffff805d78a3 at panic+0x43
#3 0xffffffff809d58ad at = trap_fatal+0x38d
#4 0xffffffff809d58ff at = trap_pfault+0x4f
#5 0xffffffff809af048 at calltrap+0x8
#6 0xffffffff804c7a7e at ncl_bioread+0xb7e
#7 = 0xffffffff804b9d90 at nfs_readdir+0x1f0
#8 = 0xffffffff8069c61a at vop_sigdefer+0x2a
#9 = 0xffffffff809f8ae0 at VOP_READDIR_APV+0x20
#10 = 0xffffffff81ce75de at autofs_readdir+0x2ce
#11 = 0xffffffff809f8ae0 at VOP_READDIR_APV+0x20
#12 = 0xffffffff806c3002 at kern_getdirentries+0x222
#13 = 0xffffffff806c33a9 at sys_getdirentries+0x29
#14 = 0xffffffff809d6180 at amd64_syscall+0x110
#15 = 0xffffffff809af95b at fast_syscall_common+0xf8



On 15 Jan 2024, at 06:46, = FreeBSD User <freebsd@walstatt-de.de> wrote:

Am Sun, 14 Jan 2024 20:34:12 -0800
Cy Schubert = <Cy.Schubert@cschubert.com> schrieb:

In message <CAM5tNy5aat8vUn2fsX9jV=3DD9yGZdnO20Q0Ea7qtszx+zSES2bw@mail.gmai= l.c
om>
, Rick Macklem writes:

On Sat, Jan 13, 2024 at 12:39=3DE2=3D80=3DAFPM = Ronald Klop <ronald-lists@klop.ws>=3D
wrote:



Van: FreeBSD = User <freebsd@walstatt-de.de>
Datum: 13 = januari 2024 19:34
Aan: FreeBSD CURRENT <freebsd-current@freebsd.org>
Onderwerp: = NFSv4 crash of CURRENT

Hello,

running CURRENT client (FreeBSD 15.0-CURRENT = #4 main-n267556-69748e62e82a=3D

: Sat Jan = 13 18:08:32

CET 2024 amd64). One NFSv4 = server is same OS revision as the mentioned cl=3D

ient, other is FreeBSD

13.2-RELEASE-p8. Both offer NFSv4 filesystems, = non-kerberized.

I can crash the client = reproducable by accessing the one or other NFSv4 F=3D

S (a simple ls -la).

The NFSv4 = FS is backed by ZFS (if this matters). I do not have physicla a=3D

ccess to the client

host, luckily the box recovers.

Did you rebuild both the nfscommon and nfscl modules from the = same sources?
I did a commit to main that changes the = interface between these two
modules and did bump the
__FreeBSD_version to 1500010, which should cause both to be = rebuilt.
(If you have "options NFSCL" in your kernel = config, both should have
been rebuilt as a part of
the kernel build.)


Is anyone by chance seeing autofs in the backtrace too?



Hello Cy = Shubert,

I forgot to mention that those = crashes occur with autofs mounted filesystems. Good question,
by the way, I will check whether crashes also happen when = mounting the tradidional way.

Kind = regards,

oh

--
O. = Hartmann

= --Apple-Mail=_1A0F591D-D063-48DB-B399-46B93F76615D-- From nobody Mon Jan 15 15:59:07 2024 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 4TDGzM4hwKz57Dkt for ; Mon, 15 Jan 2024 15:59:11 +0000 (UTC) (envelope-from pblok@bsd4all.org) Received: from mail.bsd4all.org (mail.bsd4all.org [88.99.169.216]) by mx1.freebsd.org (Postfix) with ESMTP id 4TDGzL4GCgz4xwC for ; Mon, 15 Jan 2024 15:59:10 +0000 (UTC) (envelope-from pblok@bsd4all.org) Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of pblok@bsd4all.org designates 88.99.169.216 as permitted sender) smtp.mailfrom=pblok@bsd4all.org Received: from mail.bsd4all.org (localhost [127.0.0.1]) by mail.bsd4all.org (Postfix) with ESMTP id A704F50CD; Mon, 15 Jan 2024 16:59:13 +0100 (CET) X-Virus-Scanned: amavisd-new at bsd4all.org Received: from mail.bsd4all.org ([127.0.0.1]) by mail.bsd4all.org (mail.bsd4all.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 09t-Mrgnme4B; Mon, 15 Jan 2024 16:59:12 +0100 (CET) Received: from smtpclient.apple (pony_ip [204.168.249.121]) by mail.bsd4all.org (Postfix) with ESMTPSA id E6C10510A; Mon, 15 Jan 2024 16:59:11 +0100 (CET) From: Peter Blok Message-Id: Content-Type: multipart/alternative; boundary="Apple-Mail=_B446E3CF-0FF6-43D4-8183-BBBFFE305EFE" 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 (Mac OS X Mail 16.0 \(3696.120.41.1.4\)) Subject: Re: NFSv4 crash of CURRENT Date: Mon, 15 Jan 2024 16:59:07 +0100 In-Reply-To: Cc: FreeBSD User , Cy Schubert , Ronald Klop , FreeBSD CURRENT To: Rick Macklem References: <20240113193324.3fd54295@thor.intern.walstatt.dynvpn.de> <1369645989.13766.1705178331205@localhost> <20240115043412.B6998C8@slippy.cwsent.com> <20240115064704.611fe0c4@thor.intern.walstatt.dynvpn.de> <683EF50F-6665-4664-A7CE-1EFE50076FB0@bsd4all.org> X-Mailer: Apple Mail (2.3696.120.41.1.4) X-Spamd-Bar: - X-Spamd-Result: default: False [-1.20 / 15.00]; SUSPICIOUS_RECIPS(1.50)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-1.000]; MV_CASE(0.50)[]; R_SPF_ALLOW(-0.20)[+mx]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; RCVD_NO_TLS_LAST(0.10)[]; FROM_HAS_DN(0.00)[]; ARC_NA(0.00)[]; ASN(0.00)[asn:24940, ipnet:88.99.0.0/16, country:DE]; RCVD_VIA_SMTP_AUTH(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; TAGGED_RCPT(0.00)[]; R_DKIM_NA(0.00)[]; FREEMAIL_TO(0.00)[gmail.com]; TO_MATCH_ENVRCPT_SOME(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; TO_DN_ALL(0.00)[]; RCVD_COUNT_THREE(0.00)[3]; DMARC_NA(0.00)[bsd4all.org]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; RCPT_COUNT_FIVE(0.00)[5] X-Rspamd-Queue-Id: 4TDGzL4GCgz4xwC --Apple-Mail=_B446E3CF-0FF6-43D4-8183-BBBFFE305EFE Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 Rick, I can confirm Kostik=E2=80=99s fix works on 13-stable. Peter > On 15 Jan 2024, at 16:13, Peter Blok wrote: >=20 > I can give it a shot on one of my clients. >=20 >> On 15 Jan 2024, at 16:04, Rick Macklem > wrote: >>=20 >> On Mon, Jan 15, 2024 at 2:53=E2=80=AFAM Peter Blok > wrote: >>>=20 >>> Hi, >>>=20 >>> Forgot to mention I=E2=80=99m on 13-stable. The fix that is causing = the crash with automounted NFS is: >>>=20 >>> commit cc5cda1dbaa907ce52074f47264cc45b5a7d6c8b >>> Author: Konstantin Belousov > >>> Date: Tue Jan 2 00:22:44 2024 +0200 >>>=20 >>> nfsclient: limit situations when we do unlocked read-ahead by = nfsiod >>>=20 >>> (cherry picked from commit = 70dc6b2ce314a0f32755005ad02802fca7ed186e) >>>=20 >>> When I remove the fix, the problem is gone. Add it back and the = crash happens. >> Kostik has already come up with a probable fix. If you want it right >> away, here it is, >> but he'll probably commit it soon anyhow: >> diff --git a/sys/fs/nfsclient/nfs_clbio.c = b/sys/fs/nfsclient/nfs_clbio.c >> index c027d7d7c3fd..1cf45bb0c924 100644 >> --- a/sys/fs/nfsclient/nfs_clbio.c >> +++ b/sys/fs/nfsclient/nfs_clbio.c >> @@ -414,6 +414,18 @@ nfs_bioread_check_cons(struct vnode *vp, struct >> thread *td, struct ucred *cred) >> return (error); >> } >>=20 >> +static bool >> +ncl_bioread_dora(struct vnode *vp) >> +{ >> + vm_object_t obj; >> + >> + obj =3D vp->v_object; >> + if (obj =3D=3D NULL) >> + return (true); >> + return (!vm_object_mightbedirty(vp->v_object) && >> + vp->v_object->un_pager.vnp.writemappings =3D=3D 0); >> +} >> + >> /* >> * Vnode op for read using bio >> */ >> @@ -486,9 +498,7 @@ ncl_bioread(struct vnode *vp, struct uio *uio, = int >> ioflag, struct ucred *cred) >> * unlocked read by nfsiod could obliterate changes >> * done by userspace. >> */ >> - if (nmp->nm_readahead > 0 && >> - !vm_object_mightbedirty(vp->v_object) && >> - vp->v_object->un_pager.vnp.writemappings =3D=3D = 0) { >> + if (nmp->nm_readahead > 0 && ncl_bioread_dora(vp)) { >> for (nra =3D 0; nra < nmp->nm_readahead && nra < = seqcount && >> (off_t)(lbn + 1 + nra) * biosize < nsize; = nra++) { >> rabn =3D lbn + 1 + nra; >> @@ -675,9 +685,7 @@ ncl_bioread(struct vnode *vp, struct uio *uio, = int >> ioflag, struct ucred *cred) >> * directory offset cookie of the next block.) >> */ >> NFSLOCKNODE(np); >> - if (nmp->nm_readahead > 0 && >> - !vm_object_mightbedirty(vp->v_object) && >> - vp->v_object->un_pager.vnp.writemappings =3D=3D 0 = && >> + if (nmp->nm_readahead > 0 && ncl_bioread_dora(vp) && >> (bp->b_flags & B_INVAL) =3D=3D 0 && >> (np->n_direofoffset =3D=3D 0 || >> (lbn + 1) * NFS_DIRBLKSIZ < np->n_direofoffset) && >>=20 >> rick >> ps: It appears that autofs causes the directory to be read before it >> is open'd for >> some reason. I've never looked at autofs. >>=20 >>>=20 >>> Peter >>>=20 >>> On 15 Jan 2024, at 09:31, Peter Blok > wrote: >>>=20 >>> Hi, >>>=20 >>> I do have a crash on a NFS client with stable of today = (4c4633fdffbe8e4b6d328c2bc9bb3edacc9ab50a). It is also autofs related. = Maybe it is the same problem. >>>=20 >>> I have ports automounted on /am/ports. When I do cd /am/ports/sys = and type tab to autocomplete it crashes with the below stack trace. If I = plainly mount ports on /usr/ports and do the same everything works. I am = using NFSv3 >>>=20 >>> Peter >>>=20 >>>=20 >>>=20 >>>=20 >>> Fatal trap 12: page fault while in kernel mode >>> cpuid =3D 2; apic id =3D 04 >>> fault virtual address =3D 0x89 >>> fault code =3D supervisor read data, page not present >>> instruction pointer =3D 0x20:0xffffffff809645d4 >>> stack pointer =3D 0x28:0xfffffe00acadb830 >>> frame pointer =3D 0x28:0xfffffe00acadb830 >>> code segment =3D base 0x0, limit 0xfffff, type 0x1b >>> =3D DPL 0, pres 1, long 1, def32 0, gran 1 >>> processor eflags =3D interrupt enabled, resume, IOPL =3D 0 >>> current process =3D 6869 (csh) >>> trap number =3D 12 >>> panic: page fault >>> cpuid =3D 2 >>> time =3D 1705306940 >>> KDB: stack backtrace: >>> #0 0xffffffff806232f5 at kdb_backtrace+0x65 >>> #1 0xffffffff805d7a02 at vpanic+0x152 >>> #2 0xffffffff805d78a3 at panic+0x43 >>> #3 0xffffffff809d58ad at trap_fatal+0x38d >>> #4 0xffffffff809d58ff at trap_pfault+0x4f >>> #5 0xffffffff809af048 at calltrap+0x8 >>> #6 0xffffffff804c7a7e at ncl_bioread+0xb7e >>> #7 0xffffffff804b9d90 at nfs_readdir+0x1f0 >>> #8 0xffffffff8069c61a at vop_sigdefer+0x2a >>> #9 0xffffffff809f8ae0 at VOP_READDIR_APV+0x20 >>> #10 0xffffffff81ce75de at autofs_readdir+0x2ce >>> #11 0xffffffff809f8ae0 at VOP_READDIR_APV+0x20 >>> #12 0xffffffff806c3002 at kern_getdirentries+0x222 >>> #13 0xffffffff806c33a9 at sys_getdirentries+0x29 >>> #14 0xffffffff809d6180 at amd64_syscall+0x110 >>> #15 0xffffffff809af95b at fast_syscall_common+0xf8 >>>=20 >>>=20 >>>=20 >>> On 15 Jan 2024, at 06:46, FreeBSD User > wrote: >>>=20 >>> Am Sun, 14 Jan 2024 20:34:12 -0800 >>> Cy Schubert > schrieb: >>>=20 >>> In message = >>> om> >>> , Rick Macklem writes: >>>=20 >>> On Sat, Jan 13, 2024 at 12:39=3DE2=3D80=3DAFPM Ronald Klop = >=3D >>> wrote: >>>=20 >>>=20 >>>=20 >>> Van: FreeBSD User > >>> Datum: 13 januari 2024 19:34 >>> Aan: FreeBSD CURRENT > >>> Onderwerp: NFSv4 crash of CURRENT >>>=20 >>> Hello, >>>=20 >>> running CURRENT client (FreeBSD 15.0-CURRENT #4 = main-n267556-69748e62e82a=3D >>>=20 >>> : Sat Jan 13 18:08:32 >>>=20 >>> CET 2024 amd64). One NFSv4 server is same OS revision as the = mentioned cl=3D >>>=20 >>> ient, other is FreeBSD >>>=20 >>> 13.2-RELEASE-p8. Both offer NFSv4 filesystems, non-kerberized. >>>=20 >>> I can crash the client reproducable by accessing the one or other = NFSv4 F=3D >>>=20 >>> S (a simple ls -la). >>>=20 >>> The NFSv4 FS is backed by ZFS (if this matters). I do not have = physicla a=3D >>>=20 >>> ccess to the client >>>=20 >>> host, luckily the box recovers. >>>=20 >>> Did you rebuild both the nfscommon and nfscl modules from the same = sources? >>> I did a commit to main that changes the interface between these two >>> modules and did bump the >>> __FreeBSD_version to 1500010, which should cause both to be rebuilt. >>> (If you have "options NFSCL" in your kernel config, both should have >>> been rebuilt as a part of >>> the kernel build.) >>>=20 >>>=20 >>> Is anyone by chance seeing autofs in the backtrace too? >>>=20 >>>=20 >>>=20 >>> Hello Cy Shubert, >>>=20 >>> I forgot to mention that those crashes occur with autofs mounted = filesystems. Good question, >>> by the way, I will check whether crashes also happen when mounting = the tradidional way. >>>=20 >>> Kind regards, >>>=20 >>> oh >>>=20 >>> -- >>> O. Hartmann >=20 --Apple-Mail=_B446E3CF-0FF6-43D4-8183-BBBFFE305EFE Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8 Rick,

I = can confirm Kostik=E2=80=99s fix works on 13-stable.

Peter

On 15 Jan 2024, at 16:13, Peter Blok <pblok@bsd4all.org> = wrote:

I can give it a shot = on one of my clients.

On 15 = Jan 2024, at 16:04, Rick Macklem <rick.macklem@gmail.com> wrote:

On Mon, Jan 15, 2024 at 2:53=E2=80=AFAM Peter Blok = <pblok@bsd4all.org> wrote:

Hi,

Forgot to mention I=E2=80=99m = on 13-stable. The fix that is causing the crash with automounted NFS = is:

commit = cc5cda1dbaa907ce52074f47264cc45b5a7d6c8b
Author: = Konstantin Belousov <kib@FreeBSD.org>
Date:   Tue = Jan 2 00:22:44 2024 +0200

   nfsclient: limit situations when we do = unlocked read-ahead by nfsiod

   (cherry picked from commit = 70dc6b2ce314a0f32755005ad02802fca7ed186e)

When I remove the fix, the problem is gone. Add it back and = the crash happens.
Kostik has already come up with a probable fix. If you want = it right
away, here it = is,
but he'll = probably commit it soon anyhow:
diff --git a/sys/fs/nfsclient/nfs_clbio.c = b/sys/fs/nfsclient/nfs_clbio.c
index c027d7d7c3fd..1cf45bb0c924 100644
--- = a/sys/fs/nfsclient/nfs_clbio.c
+++ b/sys/fs/nfsclient/nfs_clbio.c
@@ -414,6 +414,18 @@ = nfs_bioread_check_cons(struct vnode *vp, struct
thread *td, struct ucred = *cred)
       return = (error);
}

+static bool
+ncl_bioread_dora(struct vnode = *vp)
+{
+ =       vm_object_t obj;
+
+       obj =3D = vp->v_object;
+       if (obj =3D=3D = NULL)
+ =             &n= bsp; return (true);
+       return = (!vm_object_mightbedirty(vp->v_object) &&
+ =           vp->v_objec= t->un_pager.vnp.writemappings =3D=3D 0);
+}
+
/*
 * Vnode op for read using = bio
 */
@@ -486,9 +498,7 @@ ncl_bioread(struct vnode *vp, struct uio = *uio, int
ioflag, = struct ucred *cred)
          &nb= sp;     * unlocked read by nfsiod could = obliterate changes
          &nb= sp;     * done by userspace.
          &nb= sp;     */
- =             &n= bsp; if (nmp->nm_readahead > 0 &&
- =             &n= bsp;     !vm_object_mightbedirty(vp->v_object)= &&
- =             &n= bsp;     vp->v_object->un_pager.vnp.writema= ppings =3D=3D 0) {
+ =             &n= bsp; if (nmp->nm_readahead > 0 && = ncl_bioread_dora(vp)) {
          &nb= sp;        for (nra =3D 0; nra = < nmp->nm_readahead && nra < seqcount = &&
          &nb= sp;            = ;(off_t)(lbn + 1 + nra) * biosize < nsize; nra++) {
          &nb= sp;            = ;rabn =3D lbn + 1 + nra;
@@ -675,9 +685,7 @@ ncl_bioread(struct vnode *vp, struct uio = *uio, int
ioflag, = struct ucred *cred)
          &nb= sp;     *  directory offset cookie of the = next block.)
          &nb= sp;     */
          &nb= sp;    NFSLOCKNODE(np);
- =             &n= bsp; if (nmp->nm_readahead > 0 &&
- =             &n= bsp;     !vm_object_mightbedirty(vp->v_object)= &&
- =             &n= bsp;     vp->v_object->un_pager.vnp.writema= ppings =3D=3D 0 &&
+ =             &n= bsp; if (nmp->nm_readahead > 0 && = ncl_bioread_dora(vp) &&
          &nb= sp;        (bp->b_flags & = B_INVAL) =3D=3D 0 &&
          &nb= sp;        (np->n_direofoffset = =3D=3D 0 ||
          &nb= sp;        (lbn + 1) * = NFS_DIRBLKSIZ < np->n_direofoffset) &&

rick
ps: It appears that autofs = causes the directory to be read before it
is open'd for
     some reason. I've never looked = at autofs.


Peter

On 15 Jan 2024, at 09:31, = Peter Blok <pblok@bsd4all.org> wrote:

Hi,

I do have a crash on a NFS = client with stable of today (4c4633fdffbe8e4b6d328c2bc9bb3edacc9ab50a). = It is also autofs related. Maybe it is the same problem.
I have ports automounted on /am/ports. When I do cd = /am/ports/sys and type tab to autocomplete it crashes with the below = stack trace. If I plainly mount ports on /usr/ports and do the same = everything works. I am using NFSv3

Peter




Fatal trap 12: page fault while in kernel mode
cpuid =3D 2; apic id =3D 04
fault virtual = address =3D 0x89
fault code =3D supervisor read data, page = not present
instruction pointer =3D = 0x20:0xffffffff809645d4
stack pointer =        =3D 0x28:0xfffffe00acadb830
frame pointer        =3D = 0x28:0xfffffe00acadb830
code segment =3D base 0x0, limit = 0xfffff, type 0x1b
=3D DPL 0, pres 1, long 1, def32 0, = gran 1
processor eflags =3D interrupt enabled, resume, = IOPL =3D 0
current process =3D 6869 (csh)
trap= number =3D 12
panic: page fault
cpuid =3D = 2
time =3D 1705306940
KDB: stack = backtrace:
#0 0xffffffff806232f5 at kdb_backtrace+0x65
#1 0xffffffff805d7a02 at vpanic+0x152
#2 = 0xffffffff805d78a3 at panic+0x43
#3 0xffffffff809d58ad at = trap_fatal+0x38d
#4 0xffffffff809d58ff at = trap_pfault+0x4f
#5 0xffffffff809af048 at calltrap+0x8
#6 0xffffffff804c7a7e at ncl_bioread+0xb7e
#7 = 0xffffffff804b9d90 at nfs_readdir+0x1f0
#8 = 0xffffffff8069c61a at vop_sigdefer+0x2a
#9 = 0xffffffff809f8ae0 at VOP_READDIR_APV+0x20
#10 = 0xffffffff81ce75de at autofs_readdir+0x2ce
#11 = 0xffffffff809f8ae0 at VOP_READDIR_APV+0x20
#12 = 0xffffffff806c3002 at kern_getdirentries+0x222
#13 = 0xffffffff806c33a9 at sys_getdirentries+0x29
#14 = 0xffffffff809d6180 at amd64_syscall+0x110
#15 = 0xffffffff809af95b at fast_syscall_common+0xf8



On 15 Jan 2024, at 06:46, = FreeBSD User <freebsd@walstatt-de.de> wrote:

Am Sun, 14 Jan 2024 20:34:12 -0800
Cy Schubert = <Cy.Schubert@cschubert.com> schrieb:

In message <CAM5tNy5aat8vUn2fsX9jV=3DD9yGZdnO20Q0Ea7qtszx+zSES2bw@mail.gmai= l.c
om>
, Rick Macklem writes:

On Sat, Jan 13, 2024 at 12:39=3DE2=3D80=3DAFPM = Ronald Klop <ronald-lists@klop.ws>=3D
wrote:



Van: FreeBSD = User <freebsd@walstatt-de.de>
Datum: 13 = januari 2024 19:34
Aan: FreeBSD CURRENT <freebsd-current@freebsd.org>
Onderwerp: = NFSv4 crash of CURRENT

Hello,

running CURRENT client (FreeBSD 15.0-CURRENT = #4 main-n267556-69748e62e82a=3D

: Sat Jan = 13 18:08:32

CET 2024 amd64). One NFSv4 = server is same OS revision as the mentioned cl=3D

ient, other is FreeBSD

13.2-RELEASE-p8. Both offer NFSv4 filesystems, = non-kerberized.

I can crash the client = reproducable by accessing the one or other NFSv4 F=3D

S (a simple ls -la).

The NFSv4 = FS is backed by ZFS (if this matters). I do not have physicla a=3D

ccess to the client

host, luckily the box recovers.

Did you rebuild both the nfscommon and nfscl modules from the = same sources?
I did a commit to main that changes the = interface between these two
modules and did bump the
__FreeBSD_version to 1500010, which should cause both to be = rebuilt.
(If you have "options NFSCL" in your kernel = config, both should have
been rebuilt as a part of
the kernel build.)


Is anyone by chance seeing autofs in the backtrace too?



Hello Cy = Shubert,

I forgot to mention that those = crashes occur with autofs mounted filesystems. Good question,
by the way, I will check whether crashes also happen when = mounting the tradidional way.

Kind = regards,

oh

--
O. = Hartmann


= --Apple-Mail=_B446E3CF-0FF6-43D4-8183-BBBFFE305EFE-- From nobody Mon Jan 15 15:59:33 2024 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 4TDH0Z2Kpjz57Dp0; Mon, 15 Jan 2024 16:00:14 +0000 (UTC) (envelope-from marietto2008@gmail.com) Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com [IPv6:2a00:1450:4864:20::130]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1D4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4TDH0Y1T0Nz50Bt; Mon, 15 Jan 2024 16:00:13 +0000 (UTC) (envelope-from marietto2008@gmail.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20230601 header.b="To6Aw/Nt"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of marietto2008@gmail.com designates 2a00:1450:4864:20::130 as permitted sender) smtp.mailfrom=marietto2008@gmail.com Received: by mail-lf1-x130.google.com with SMTP id 2adb3069b0e04-50e7e55c0f6so10657788e87.0; Mon, 15 Jan 2024 08:00:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1705334411; x=1705939211; darn=freebsd.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=MeN2YCNifzym6P3vO8NigRCG1X6V+r2EXdCsH9Ap1M4=; b=To6Aw/NtU90M+/gvfoqZkEmBCEmnSXm1rOBUDrPodFQFzyAFRwBKVYrTotr7Ixqy9x zG2kpVwuX7oXPT8jobVsi3iixPlp8GhwmX2BSeq5XumCP4HQJED1pQpUzDvkWt7GuTWg 684w6RLnEMt4d4W4M2MfTFbayr8jwYYEiEq0RSItR+udRe7Ic8GNzXaMdvrpUEUIjOEy lBRNADBADdU1u+YfPkpKvz/8JlBSn4vNZqjAH1fzpYD0HCxfV+i9bkxDzadCOioX2p9y UnN39XImo9sojclWevskXkUO7bex3e1sIt9uAvcdGRs+28wbO9CPUqHGLurJKE+zspqr oyZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705334411; x=1705939211; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=MeN2YCNifzym6P3vO8NigRCG1X6V+r2EXdCsH9Ap1M4=; b=myWCD2bl+Abvs5hf7KC9TaxkJ2vb1iJ3uIhXPGV1z9H9gwIvKrKdb85zUdP1ZVchJy vENYgBvEcPngqievcy9mSF+ccZsTKtR5jW1LBlHMLOdsXl47LGoQlRWB31dvCDxlTqWJ MMXBH0a5F7sV25l4hk8miN/5HliOjI7EVcmzGdV2r/I44+Nq1Nu7O1GiQutW1e5/oaMC bk38q225Sd4a99JTV4JYsY7aHz8SWhsj4/ozWB1FV3AaPMLcj/mFF4Ms2Mf0hPJ6AkCd PlRlQuWhd/xc0g7Btu5q7o1iQEU6GzxKRZIDaPDzzPyha78M4kQl355LzxBLfV6unnI1 ybjg== X-Gm-Message-State: AOJu0Yy6IUPycmNCo5QIOucOrU9fziZZOspmRRqBvg0aXlYA+MlhJf05 rxPBLL3IL3uwLXIl2rWsP8I0r0o9qv+0gBwXMo/T6c1pUVo= X-Google-Smtp-Source: AGHT+IF6Ch2abOmJVMbYH1Yw/59ZM8VbnCqGjyKn9R5rFUjXsct93Oh/It8rp2tCPMWoJdOuR33wSjVw+U/Y8SkSYeg= X-Received: by 2002:a05:6512:3d8d:b0:50e:84ad:3e29 with SMTP id k13-20020a0565123d8d00b0050e84ad3e29mr1675580lfv.136.1705334410138; Mon, 15 Jan 2024 08:00:10 -0800 (PST) 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 From: Mario Marietto Date: Mon, 15 Jan 2024 16:59:33 +0100 Message-ID: Subject: How to upgrade an EOL FreeBSD release or how to make it working again To: freebsd-arm , freebsd-hackers , FreeBSD Mailing List , freebsd-xen@freebsd.org, FreeBSD Current , Warner Losh , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= Content-Type: multipart/related; boundary="000000000000be129d060efe1b1a" X-Spamd-Bar: --- X-Spamd-Result: default: False [-4.00 / 15.00]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-1.000]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20230601]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4000::/36:c]; MIME_GOOD(-0.10)[multipart/related,multipart/alternative,text/plain]; MISSING_XM_UA(0.00)[]; ARC_NA(0.00)[]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; RCVD_COUNT_ONE(0.00)[1]; FREEMAIL_ENVFROM(0.00)[gmail.com]; FREEMAIL_FROM(0.00)[gmail.com]; MIME_TRACE(0.00)[0:+,1:+,2:+,3:~,4:~]; TO_DN_SOME(0.00)[]; RCPT_COUNT_SEVEN(0.00)[7]; MLMMJ_DEST(0.00)[freebsd-arm@freebsd.org,freebsd-hackers@freebsd.org,freebsd-questions@freebsd.org,freebsd-xen@freebsd.org,freebsd-current@freebsd.org]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[2a00:1450:4864:20::130:from]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_TLS_LAST(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; MID_RHS_MATCH_FROMTLD(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+] X-Rspamd-Queue-Id: 4TDH0Y1T0Nz50Bt --000000000000be129d060efe1b1a Content-Type: multipart/alternative; boundary="000000000000be129c060efe1b19" --000000000000be129c060efe1b19 Content-Type: text/plain; charset="UTF-8" Hello to everyone. I'm trying to install FreeBSD 14 natively on my ARM Chromebook model xe303c12 ; I've found only one tutorial that teaches how to do that,that's it : https://wiki.freebsd.org/arm/Chromebook The problem is that it ends with the installation of FreeBSD 11,that's very EOL. I can't use it as is. I need to upgrade it to 14 (but I'm on arm 32 bit,that's TIER-2,so I can't upgrade it automatically using the freebsd-update script. It is also true that I can't install 14 directly on that machine,as you can read below : [image: unnamed.png] I've looked all around and I found the tool pkgbase,that I'm talking about on the FreeBSD forum,to understand if it allows the 11 to be usable or upgradable. It does not seem to be the proper tool to achieve my goal. Do you have any suggestions that can help me ? Thanks. -- Mario. --000000000000be129c060efe1b19 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello to everyone.

I'm t= rying to install FreeBSD 14 natively on my ARM Chromebook model xe303c12 ; = I've found only one tutorial that teaches how to do that,that's it = :


Th= e problem is that it ends with the installation of FreeBSD 11,that's ve= ry EOL.
I can't use it as is. I need to upgrade it to 14 (but= I'm on arm 32 bit,that's TIER-2,so I can't upgrade it automati= cally using the freebsd-update script. It is also true that I can't ins= tall 14 directly on that machine,as you can read below :


3D"unnamed.png"

I've looked all= around and I found the tool pkgbase,that I'm talking about on the Free= BSD forum,to understand if it allows the 11 to be usable or upgradable. It = does not seem to be the proper tool to achieve my goal. Do you have any sug= gestions that can help me ? Thanks.

--
Mario.
--000000000000be129c060efe1b19-- --000000000000be129d060efe1b1a Content-Type: image/png; name="unnamed.png" Content-Disposition: inline; filename="unnamed.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: ii_lrf3zpy30 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 --000000000000be129d060efe1b1a-- From nobody Mon Jan 15 16:21:45 2024 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 4TDHTT751fz57H81; Mon, 15 Jan 2024 16:21:49 +0000 (UTC) (envelope-from jfc@mit.edu) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2100.outbound.protection.outlook.com [40.107.236.100]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "DigiCert Cloud Services CA-1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4TDHTT4p57z553X; Mon, 15 Jan 2024 16:21:49 +0000 (UTC) (envelope-from jfc@mit.edu) Authentication-Results: mx1.freebsd.org; none ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XSc52GqT+gs+DZrc6MhZLlEHCpks+SCv2uSXjxc3Tsxt88gNvY3PIo4G+eL5huGbNgeeNoe6FoETXdEA5qX2zj5f0GdybAGftMFma/spDBjDNVeMQ1WzmVYVVOGPZPtMHqyG96McAr0IYzUjCMnzL8ri5a3jjxlcEgpcXaa9acpGgOposYn3rE7pAAgCMfhdU7AHr2fJjWWZ3SCK/56544cRYCn2bPa9BWZENEdpoa5xB/iNVL96U5XJ4BRcbAoH8irDuvN/m7Vd+TJ7HNdyuYMRKOR4ysNSgy6MRNKoJy9LdKyGfRFtDAsP2y0y3eOf6yd0TttxxW10dE0IRM59Ow== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=nMBQoRtNIb/60PDmE8pomGxBteHACIn8/LZuhW+xh3I=; b=lemTnZbJo528jZ4pigWmGTGDlkohiBvY2eWw8cKlYjkQ1z+SGr1SUVxhW6oYEiM77/H4GdkV7w1KsXz4PzfARPbwxRU9Lgy5mwMNt+j9g0sXGGIIiMY+0AG28IICejh1SHhVNs143B4qTWThXCYMpqulBoVChM4XvuMzCel3yU6UrHBQcDQuprdyvGgZjATm/1j359CW+3x1BecvYi/Ru+8+CqQdz31C7vgQu/CqZHS2g0CE0QS/GumnYyjpGdDEzNYRekk/Y6G7QvIO+GLBQNIgKR+wEpUYuC1DkVMTkJ3383JSfVE+H1o/le4nq32fkuAoyLdgpE3PJUZQ1fEu/w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mit.edu; dmarc=pass action=none header.from=mit.edu; dkim=pass header.d=mit.edu; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mit.edu; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nMBQoRtNIb/60PDmE8pomGxBteHACIn8/LZuhW+xh3I=; b=cMqwEknym9+W6NQ8Iw6ymv8YAajxw2SVUgjjioYBy13uoUkSKHEM8J7ubIyD81MpxLUA8Q4+lLC0k+fnCb7BmvPxaChzKDip1CKoZz5I3xf0s6TenjqWhZ6Un8n8Zc6ff6G6x60obNRRX7cgjnqQ1usW6h32pPlmBKxNc1gdCVk= Received: from SA3PR01MB8450.prod.exchangelabs.com (2603:10b6:806:382::17) by PH0PR01MB6344.prod.exchangelabs.com (2603:10b6:510:18::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7181.21; Mon, 15 Jan 2024 16:21:45 +0000 Received: from SA3PR01MB8450.prod.exchangelabs.com ([fe80::dda2:5717:28f6:b5e6]) by SA3PR01MB8450.prod.exchangelabs.com ([fe80::dda2:5717:28f6:b5e6%4]) with mapi id 15.20.7181.022; Mon, 15 Jan 2024 16:21:45 +0000 From: John F Carr To: Mario Marietto CC: freebsd-arm , freebsd-hackers , FreeBSD Mailing List , "freebsd-xen@freebsd.org" , FreeBSD Current , Warner Losh , =?iso-8859-1?Q?Roger_Pau_Monn=E9?= Subject: Re: How to upgrade an EOL FreeBSD release or how to make it working again Thread-Topic: How to upgrade an EOL FreeBSD release or how to make it working again Thread-Index: AQHaR8wNjaM9fITeqECzuFLp5Ev1ybDbDjiA Date: Mon, 15 Jan 2024 16:21:45 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SA3PR01MB8450:EE_|PH0PR01MB6344:EE_ x-ms-office365-filtering-correlation-id: eb070884-94e2-4270-0fdf-08dc15e61158 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: dNTouAeQ0cyLrQ20qSVytXsNSHOYbb75/e/kNWT4uuwS3z/bU1TMbV/ojVITXhmx3PEM3BDujJWCk141YGMdKXGJPVlzCfxbi47qYcCps7ShTJc128w9vHPU6X4fsbIzAFu5N0YFCFYclV+EOSP08Z0aoxQ6/OgypWsIWdB4dbJHc7zWjKz7OObje30hdXDfhDhJopLHTh4wdb7MVrDvKVT2SjVrVuun5q31ciI+WsY1tuRAfW+aJ1feHa5uzpeqljm/oFjMJUsqonDF9GK5xpnRpdU/cHCFtZl2ovaVXyB/uzPsA+IKyqwJ0pbezSN9b6jHbjNHXVrMyurpsnipHvYkPwJjeIzXtaCQZtCWqMlhaL+0zOZys6WWwb0LLGcHC05wZAcCCNdL4t6DC90fm4EvJ0K0VIMXm5wVJ+xV6jAQQBNLx9Iy7r0Vu1xI/iTGQ6yHt8iAkcDBi3clhxv4UJoj2DCBkclSJcInJwZRMUYoYW1qiSTO+/wYWQnVQXrQcghZ/dqYyfYLmwDs70jbLMlWugqAfvR6pvgiL3mZPhdm4g9qFNWHvEBQXI9g44Zya/latzxGT/xZQJtXdvd8L0a2y2xjiuF8eoC9yDch0lr1Yp5TUHdYfhZss/SI/r0sAPnddu4KPzmPIEBKjriBpQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA3PR01MB8450.prod.exchangelabs.com;PTR:;CAT:NONE;SFS:(13230031)(376002)(39860400002)(346002)(396003)(366004)(136003)(230273577357003)(230173577357003)(230922051799003)(64100799003)(186009)(451199024)(1800799012)(6916009)(786003)(2906002)(5660300002)(41300700001)(71200400001)(8936002)(8676002)(66946007)(66556008)(91956017)(54906003)(66476007)(316002)(76116006)(4326008)(75432002)(66446008)(64756008)(38070700009)(478600001)(6512007)(33656002)(122000001)(6486002)(38100700002)(86362001)(2616005)(53546011)(966005)(83380400001)(6506007)(36756003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?+6nYydXaiwkEN7XbIeLOy1fbhuw0Qg4zU2Umar2Bnr3GeI5rOcA092cesC?= =?iso-8859-1?Q?hfrXYaNIsKbWkNxytcA1vANxweGqLX7gRYN5Mbt1ueJeqBZHGTg4ZjLND+?= =?iso-8859-1?Q?OnQOATDtQ2+q8UjzG0jJ5H6tADPK5kl4A6ylTYLmXy93yYKlh16pDcmK0q?= =?iso-8859-1?Q?6Ww+GQDkt1S3GZrPx0E1nS0bhmqpjBzvoDIO1V5bknfZOM+lKKOa2iSsjc?= =?iso-8859-1?Q?7xllt0mCCqn0ux3ImFZccdT3+YpL82iX0JGoZBqlLmTtg1vlP4DvoL/Prq?= =?iso-8859-1?Q?u/2LpAdKYkzHqhxMgLsTxMS5+9GMNN5M7LH1fOlvjBHYlj4+5H7qJVDTPC?= =?iso-8859-1?Q?uThhfYLJNwTKLvm6enzJCt45AeI7ikkHxoBEpa64kVPAZv/Bk2ab3r5BE3?= =?iso-8859-1?Q?yMchnXeSFn6E3IV6pkf5CF84tIZD5TaiTzxiLAeFJgaNa77zqncvGhS9t9?= =?iso-8859-1?Q?AnBUk839WwKjZplnQM3RGf9kjKuJ6OvRN8i1jHbTOFxGtUmYRf89HaWu4a?= =?iso-8859-1?Q?H0jUWX+b1sesDdoN4e7I8kr1hxDw1kSXFmFUIkInUMy/pPkwWWr/0sRHOR?= =?iso-8859-1?Q?apiqjKFJg0N7HAVjg0ujwvuVZh7xt+EgQ5+6YWv63KLeW2JGboZ+UJH+xK?= =?iso-8859-1?Q?wTP0z7ilKA7PkAAo/3mz8NdUVGHOWPBUdnKGKrZCa4ZVf1jzmoxhpdXLJL?= =?iso-8859-1?Q?5MFGailkC1GxkRzwBAU65AaDhHVDgPaWqsrvXrIUc5b2wmJ03bfW8AoURs?= =?iso-8859-1?Q?oBfJ0OODZE8AapFmTgQbHwb9a/ucnchYbIhB8eHJ5AmgiQGd2LeWQu5qUj?= =?iso-8859-1?Q?GgrDCivC0aMCaubEjsaxLJ+6YIe+X59zTqKq/O+f4d4sBpalkXsQfX7WRS?= =?iso-8859-1?Q?xNV0RwWW6k4QfwN4JwG7mbdvz6wBEoPgSIqkN5VGrWfNdk7LA4XEoiClFi?= =?iso-8859-1?Q?a3oKWepciBaATAH3K4BQ3Ywhre01meraUT6vQc50yj1QM6mpD2RJacsLpt?= =?iso-8859-1?Q?0VF9ENWzDckxUAUIe06gGs4LPeUc9I2PYMN2c5pqCEZsA0yCznhFNoWCsS?= =?iso-8859-1?Q?jPV56JmU3OWDd76BS6O21sQxOr3cMw7vQT6RMgaxjybor4TtOe4W1bDofG?= =?iso-8859-1?Q?zyfu/tUpVtjBnCx9oazB+VUyG/7NrjW+e8K4zSIrxTxh7g4hMnmHcuX41m?= =?iso-8859-1?Q?GNBVsUWV3nABCymgQYOId89sWOv1HloYIMYFKB120UJjGHvFbUyZC29cW4?= =?iso-8859-1?Q?wGOzYNU3AoAI9MWvNV7OunJYmZZTeCdZcnEvuvBV2Qkpgm9WNeLE6LMbLx?= =?iso-8859-1?Q?zmP0dHgI48OTxMe7685jWVmtZCJoLSt3XgTIlfWMiBgHg7uykrP7FLTrDV?= =?iso-8859-1?Q?XunBoU6hPE/qL2Fg5bn7+88UpGS320wqaJKFU5Amy9ehWcw45relHVi5E5?= =?iso-8859-1?Q?o2/7JIrJuwBpzjRszvpH9UUlZ7OMVtAAV09iKwR8g9cN4JCT95qqgGkQwY?= =?iso-8859-1?Q?u7gl4otWkMb7bjiCFhhJtTwZFQ4bpU89mos3VNldUIHEvCpht2MneP9IYN?= =?iso-8859-1?Q?+QR+kwYivmKKfv941KI8kNBnATAFF7XX3eb7hP9p3vCpbic6bh3fwpnGOQ?= =?iso-8859-1?Q?CFgr3yn/mG6NKxOwOKplYhnxDZKtXyWwDemFMUA5+hCcGTM2sfo76Z37Ix?= =?iso-8859-1?Q?z1qtLIN/rUBPzDfffJVxK+5VcdErmMStB8CjYrLP?= Content-Type: text/plain; charset="iso-8859-1" Content-ID: Content-Transfer-Encoding: quoted-printable 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 X-OriginatorOrg: mit.edu X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SA3PR01MB8450.prod.exchangelabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: eb070884-94e2-4270-0fdf-08dc15e61158 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Jan 2024 16:21:45.7004 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 64afd9ba-0ecf-4acf-bc36-935f6235ba8b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 5Q1U28AHeqqk3l5n/ICbTuAHlxQlSZWqQftu6FfOxIV/C/xbjJQYWqxa2IZop8Oa X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR01MB6344 X-Rspamd-Queue-Id: 4TDHTT4p57z553X X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:8075, ipnet:40.104.0.0/14, country:US] Judging by a commit message BSD on the ARM Chromebook didn't work when support was removed in 2019. >RK* Exynos* and Meson*/Odroid* don't even work with current >source code, if someone wants to make them work again they >better use the Linux DTS. https://cgit.freebsd.org/src/commit?id=3D9dfa2a54684978d1d6cef67bbf6242e825= 801f18 I have one of the "snow" Chromebooks. The warnings in the web page https://wiki.freebsd.org/arm/Chromebook led me not to try FreeBSD. None of the many bugs seemed likely to ever be fixed. I'm not using it so I could try an experiment, but fighting with u-boot is not how I want to spend my days. Even the popular Raspberry Pi takes skill or luck. (So "build an arm6 world and copy X, Y, and Z to the DOS partition on your USB drive" is the kind of advice I need to supplement the old Chromebook wiki page.) There is at least a little value in getting it to work because the armv6 code is bit rotting and will go away entirely unless people use it. John Carr > On Jan 15, 2024, at 10:59, Mario Marietto wrote: >=20 > Hello to everyone. >=20 > I'm trying to install FreeBSD 14 natively on my ARM Chromebook model xe30= 3c12 ; I've found only one tutorial that teaches how to do that,that's it : >=20 > https://wiki.freebsd.org/arm/Chromebook >=20 > The problem is that it ends with the installation of FreeBSD 11,that's ve= ry EOL. > I can't use it as is. I need to upgrade it to 14 (but I'm on arm 32 bit,t= hat's TIER-2,so I can't upgrade it automatically using the freebsd-update s= cript. It is also true that I can't install 14 directly on that machine,as = you can read below : >=20 >=20 > >=20 > I've looked all around and I found the tool pkgbase,that I'm talking abou= t on the FreeBSD forum,to understand if it allows the 11 to be usable or up= gradable. It does not seem to be the proper tool to achieve my goal. Do you= have any suggestions that can help me ? Thanks. >=20 > --=20 > Mario. From nobody Mon Jan 15 16:35:44 2024 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 4TDHpB6wYpz57JWN for ; Mon, 15 Jan 2024 16:36:18 +0000 (UTC) (envelope-from freebsd@walstatt-de.de) Received: from smtp052.goneo.de (smtp5.goneo.de [IPv6:2001:1640:5::8:30]) (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 4TDHpB4F8xz57cc for ; Mon, 15 Jan 2024 16:36:18 +0000 (UTC) (envelope-from freebsd@walstatt-de.de) Authentication-Results: mx1.freebsd.org; none Received: from hub1.goneo.de (hub1.goneo.de [IPv6:2001:1640:5::8:52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp5.goneo.de (Postfix) with ESMTPS id 60F0C240A8A; Mon, 15 Jan 2024 17:36:14 +0100 (CET) Received: from hub1.goneo.de (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)) (No client certificate requested) by hub1.goneo.de (Postfix) with ESMTPS id BB1A124087D; Mon, 15 Jan 2024 17:36:12 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=walstatt-de.de; s=DKIM001; t=1705336572; 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; bh=7Bcw48WB6y/P/tOfc3szd7JMQigsnkOKHXTBNRf48Hs=; b=KNlJlIamqZMQgO6fPjirT4XxL+xutmu9GYqzqIgISW60CK3SlaXD5EvXnqAFB5xiM7+M46 6LlLK5S23dNZLzbw8PrX7xcjWGYbrYdQM/XYe7VvFsXyKn6SiDkdvtbXgUq72KCcSScRKr JFxuMpQQlFpr+jTzRuvStAPzadhxoV902y990W5LNM5WNBtYGjUSg/Wl8quNfpXTCDhFvK 8dCjT4fkEmucZ0NScRii+IAA5XrWDiIX0o7Ssc3hm7tt73oyYNW47YZ7afAEvinmTgxGu7 jJKCZt1rfBx/ipKCizL36hkIZjpmG1F+0TasfUQwvZIPTvExR2OvXaPNJV5eGg== Received: from thor.intern.walstatt.dynvpn.de (dynamic-089-012-064-156.89.12.pool.telefonica.de [89.12.64.156]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by hub1.goneo.de (Postfix) with ESMTPSA id 0BB7F2407F4; Mon, 15 Jan 2024 17:36:12 +0100 (CET) Date: Mon, 15 Jan 2024 17:35:44 +0100 From: FreeBSD User To: Peter Blok Cc: Cy Schubert , Rick Macklem , Ronald Klop , FreeBSD CURRENT Subject: Re: NFSv4 crash of CURRENT Message-ID: <20240115173611.2b8e76d6@thor.intern.walstatt.dynvpn.de> In-Reply-To: <683EF50F-6665-4664-A7CE-1EFE50076FB0@bsd4all.org> References: <20240113193324.3fd54295@thor.intern.walstatt.dynvpn.de> <1369645989.13766.1705178331205@localhost> <20240115043412.B6998C8@slippy.cwsent.com> <20240115064704.611fe0c4@thor.intern.walstatt.dynvpn.de> <683EF50F-6665-4664-A7CE-1EFE50076FB0@bsd4all.org> Organization: walstatt-de.de 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=UTF-8 Content-Transfer-Encoding: quoted-printable X-Rspamd-UID: 82c11b X-Rspamd-UID: c817ba X-Rspamd-Queue-Id: 4TDHpB4F8xz57cc X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; TAGGED_RCPT(0.00)[]; ASN(0.00)[asn:25394, ipnet:2001:1640::/32, country:DE] Am Mon, 15 Jan 2024 11:53:31 +0100 Peter Blok schrieb: > Hi, >=20 > Forgot to mention I=E2=80=99m on 13-stable. The fix that is causing the c= rash with automounted NFS > is: >=20 > commit cc5cda1dbaa907ce52074f47264cc45b5a7d6c8b > Author: Konstantin Belousov > Date: Tue Jan 2 00:22:44 2024 +0200 >=20 > nfsclient: limit situations when we do unlocked read-ahead by nfsiod > =20 > (cherry picked from commit 70dc6b2ce314a0f32755005ad02802fca7ed186e) >=20 > When I remove the fix, the problem is gone. Add it back and the crash hap= pens. >=20 > Peter >=20 > > On 15 Jan 2024, at 09:31, Peter Blok wrote: > >=20 > > Hi, > >=20 > > I do have a crash on a NFS client with stable of today > > (4c4633fdffbe8e4b6d328c2bc9bb3edacc9ab50a). It is also autofs related. = Maybe it is the > > same problem. > >=20 > > I have ports automounted on /am/ports. When I do cd /am/ports/sys and t= ype tab to > > autocomplete it crashes with the below stack trace. If I plainly mount = ports on /usr/ports > > and do the same everything works. I am using NFSv3 > >=20 > > Peter > >=20 > >=20 > >=20 > >=20 > > Fatal trap 12: page fault while in kernel mode > > cpuid =3D 2; apic id =3D 04 > > fault virtual address =3D 0x89 > > fault code =3D supervisor read data, page not present > > instruction pointer =3D 0x20:0xffffffff809645d4 > > stack pointer =3D 0x28:0xfffffe00acadb830 > > frame pointer =3D 0x28:0xfffffe00acadb830 > > code segment =3D base 0x0, limit 0xfffff, type 0x1b > > =3D DPL 0, pres 1, long 1, def32 0, gran 1 > > processor eflags =3D interrupt enabled, resume, IOPL =3D 0 > > current process =3D 6869 (csh) > > trap number =3D 12 > > panic: page fault > > cpuid =3D 2 > > time =3D 1705306940 > > KDB: stack backtrace: > > #0 0xffffffff806232f5 at kdb_backtrace+0x65 > > #1 0xffffffff805d7a02 at vpanic+0x152 > > #2 0xffffffff805d78a3 at panic+0x43 > > #3 0xffffffff809d58ad at trap_fatal+0x38d > > #4 0xffffffff809d58ff at trap_pfault+0x4f > > #5 0xffffffff809af048 at calltrap+0x8 > > #6 0xffffffff804c7a7e at ncl_bioread+0xb7e > > #7 0xffffffff804b9d90 at nfs_readdir+0x1f0 > > #8 0xffffffff8069c61a at vop_sigdefer+0x2a > > #9 0xffffffff809f8ae0 at VOP_READDIR_APV+0x20 > > #10 0xffffffff81ce75de at autofs_readdir+0x2ce > > #11 0xffffffff809f8ae0 at VOP_READDIR_APV+0x20 > > #12 0xffffffff806c3002 at kern_getdirentries+0x222 > > #13 0xffffffff806c33a9 at sys_getdirentries+0x29 > > #14 0xffffffff809d6180 at amd64_syscall+0x110 > > #15 0xffffffff809af95b at fast_syscall_common+0xf8 > >=20 > >=20 > > =20 > >> On 15 Jan 2024, at 06:46, FreeBSD User >> > wrote: > >>=20 > >> Am Sun, 14 Jan 2024 20:34:12 -0800 > >> Cy Schubert > schrieb: > >> =20 > >>> In message >>> =20 > >>> om> =20 > >>> , Rick Macklem writes: =20 > >>>> On Sat, Jan 13, 2024 at 12:39=3DE2=3D80=3DAFPM Ronald Klop >>>> >=3D wrote: =20 > >>>>>=20 > >>>>>=20 > >>>>> Van: FreeBSD User > > >>>>> Datum: 13 januari 2024 19:34 > >>>>> Aan: FreeBSD CURRENT > > >>>>> Onderwerp: NFSv4 crash of CURRENT > >>>>>=20 > >>>>> Hello, > >>>>>=20 > >>>>> running CURRENT client (FreeBSD 15.0-CURRENT #4 main-n267556-69748e= 62e82a=3D =20 > >>>> : Sat Jan 13 18:08:32 =20 > >>>>> CET 2024 amd64). One NFSv4 server is same OS revision as the mentio= ned cl=3D =20 > >>>> ient, other is FreeBSD =20 > >>>>> 13.2-RELEASE-p8. Both offer NFSv4 filesystems, non-kerberized. > >>>>>=20 > >>>>> I can crash the client reproducable by accessing the one or other N= FSv4 F=3D =20 > >>>> S (a simple ls -la). =20 > >>>>> The NFSv4 FS is backed by ZFS (if this matters). I do not have phys= icla a=3D =20 > >>>> ccess to the client =20 > >>>>> host, luckily the box recovers. =20 > >>>> Did you rebuild both the nfscommon and nfscl modules from the same s= ources? > >>>> I did a commit to main that changes the interface between these two > >>>> modules and did bump the > >>>> __FreeBSD_version to 1500010, which should cause both to be rebuilt. > >>>> (If you have "options NFSCL" in your kernel config, both should have > >>>> been rebuilt as a part of > >>>> the kernel build.) > >>>> =20 > >>>=20 > >>> Is anyone by chance seeing autofs in the backtrace too? > >>>=20 > >>> =20 > >>=20 > >> Hello Cy Shubert, > >>=20 > >> I forgot to mention that those crashes occur with autofs mounted files= ystems. Good > >> question, by the way, I will check whether crashes also happen when mo= unting the > >> tradidional way. > >>=20 > >> Kind regards, > >>=20 > >> oh > >>=20 > >> --=20 > >> O. Hartmann =20 > > =20 >=20 good catch! --=20 O. Hartmann From nobody Mon Jan 15 16:36:24 2024 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 4TDHpv33PTz57JRC for ; Mon, 15 Jan 2024 16:36:55 +0000 (UTC) (envelope-from freebsd@walstatt-de.de) Received: from smtp052.goneo.de (smtp5.goneo.de [IPv6:2001:1640:5::8:30]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4TDHpt6zYKz591W for ; Mon, 15 Jan 2024 16:36:54 +0000 (UTC) (envelope-from freebsd@walstatt-de.de) Authentication-Results: mx1.freebsd.org; none Received: from hub1.goneo.de (hub1.goneo.de [IPv6:2001:1640:5::8:52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp5.goneo.de (Postfix) with ESMTPS id 4BD59240CF5; Mon, 15 Jan 2024 17:36:54 +0100 (CET) Received: from hub1.goneo.de (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)) (No client certificate requested) by hub1.goneo.de (Postfix) with ESMTPS id A2E642409B1; Mon, 15 Jan 2024 17:36:52 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=walstatt-de.de; s=DKIM001; t=1705336612; 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; bh=pXMGLdga9a8WXe146UXpS30vpqGCXRMMwnvE2RNOjsI=; b=ONifsAOMMp5Q3jeiiWG/UObLFrgm4XTQbt4/TDAFNJx/Vu5huVLjj1ySkV8ctiuPjspt5y wQZ3UOExDvMJBUv20EP6EiCasTBET9RU2errEY5sNJabPqnXjMT1HijCiMsMCvPMgHC3T0 GqgWAPt4+kcAzzZLz8lU1/4e0j4RorEn8Y4OuGrgd9KAgjswu9dn21wkBBuwIEnAapzLWg euY1BPCqJX3kArSbTIXIXq5SQcxtNOgT5LIFwYsbnqaoNpzw/bHnlQkIfNjxVCt6nvqQos 8Bz8PBPNWZ2XGJ5ujUmybBTbUZwY9r9y53K1PFdspmqwsTy/8aHdzDB1YWJFPw== Received: from thor.intern.walstatt.dynvpn.de (dynamic-089-012-064-156.89.12.pool.telefonica.de [89.12.64.156]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by hub1.goneo.de (Postfix) with ESMTPSA id 4702224087D; Mon, 15 Jan 2024 17:36:52 +0100 (CET) Date: Mon, 15 Jan 2024 17:36:24 +0100 From: FreeBSD User To: Peter Blok Cc: Rick Macklem , Cy Schubert , Ronald Klop , FreeBSD CURRENT Subject: Re: NFSv4 crash of CURRENT Message-ID: <20240115173651.5b1572c0@thor.intern.walstatt.dynvpn.de> In-Reply-To: References: <20240113193324.3fd54295@thor.intern.walstatt.dynvpn.de> <1369645989.13766.1705178331205@localhost> <20240115043412.B6998C8@slippy.cwsent.com> <20240115064704.611fe0c4@thor.intern.walstatt.dynvpn.de> <683EF50F-6665-4664-A7CE-1EFE50076FB0@bsd4all.org> Organization: walstatt-de.de 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=UTF-8 Content-Transfer-Encoding: quoted-printable X-Rspamd-UID: 43891d X-Rspamd-UID: df2d32 X-Rspamd-Queue-Id: 4TDHpt6zYKz591W X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; TAGGED_RCPT(0.00)[]; ASN(0.00)[asn:25394, ipnet:2001:1640::/32, country:DE] Am Mon, 15 Jan 2024 16:59:07 +0100 Peter Blok schrieb: > Rick, >=20 > I can confirm Kostik=E2=80=99s fix works on 13-stable. >=20 > Peter Me, too. The patch fixed the reported problem. Thank you very much. oh >=20 > > On 15 Jan 2024, at 16:13, Peter Blok wrote: > >=20 > > I can give it a shot on one of my clients. > > =20 > >> On 15 Jan 2024, at 16:04, Rick Macklem >> > wrote: > >>=20 > >> On Mon, Jan 15, 2024 at 2:53=E2=80=AFAM Peter Blok > > >> wrote: =20 > >>>=20 > >>> Hi, > >>>=20 > >>> Forgot to mention I=E2=80=99m on 13-stable. The fix that is causing t= he crash with automounted > >>> NFS is: > >>>=20 > >>> commit cc5cda1dbaa907ce52074f47264cc45b5a7d6c8b > >>> Author: Konstantin Belousov > > >>> Date: Tue Jan 2 00:22:44 2024 +0200 > >>>=20 > >>> nfsclient: limit situations when we do unlocked read-ahead by nfsi= od > >>>=20 > >>> (cherry picked from commit 70dc6b2ce314a0f32755005ad02802fca7ed186= e) > >>>=20 > >>> When I remove the fix, the problem is gone. Add it back and the crash= happens. =20 > >> Kostik has already come up with a probable fix. If you want it right > >> away, here it is, > >> but he'll probably commit it soon anyhow: > >> diff --git a/sys/fs/nfsclient/nfs_clbio.c b/sys/fs/nfsclient/nfs_clbio= .c > >> index c027d7d7c3fd..1cf45bb0c924 100644 > >> --- a/sys/fs/nfsclient/nfs_clbio.c > >> +++ b/sys/fs/nfsclient/nfs_clbio.c > >> @@ -414,6 +414,18 @@ nfs_bioread_check_cons(struct vnode *vp, struct > >> thread *td, struct ucred *cred) > >> return (error); > >> } > >>=20 > >> +static bool > >> +ncl_bioread_dora(struct vnode *vp) > >> +{ > >> + vm_object_t obj; > >> + > >> + obj =3D vp->v_object; > >> + if (obj =3D=3D NULL) > >> + return (true); > >> + return (!vm_object_mightbedirty(vp->v_object) && > >> + vp->v_object->un_pager.vnp.writemappings =3D=3D 0); > >> +} > >> + > >> /* > >> * Vnode op for read using bio > >> */ > >> @@ -486,9 +498,7 @@ ncl_bioread(struct vnode *vp, struct uio *uio, int > >> ioflag, struct ucred *cred) > >> * unlocked read by nfsiod could obliterate changes > >> * done by userspace. > >> */ > >> - if (nmp->nm_readahead > 0 && > >> - !vm_object_mightbedirty(vp->v_object) && > >> - vp->v_object->un_pager.vnp.writemappings =3D=3D 0)= { > >> + if (nmp->nm_readahead > 0 && ncl_bioread_dora(vp)) { > >> for (nra =3D 0; nra < nmp->nm_readahead && nra < se= qcount && > >> (off_t)(lbn + 1 + nra) * biosize < nsize; nra++= ) { > >> rabn =3D lbn + 1 + nra; > >> @@ -675,9 +685,7 @@ ncl_bioread(struct vnode *vp, struct uio *uio, int > >> ioflag, struct ucred *cred) > >> * directory offset cookie of the next block.) > >> */ > >> NFSLOCKNODE(np); > >> - if (nmp->nm_readahead > 0 && > >> - !vm_object_mightbedirty(vp->v_object) && > >> - vp->v_object->un_pager.vnp.writemappings =3D=3D 0 = && > >> + if (nmp->nm_readahead > 0 && ncl_bioread_dora(vp) && > >> (bp->b_flags & B_INVAL) =3D=3D 0 && > >> (np->n_direofoffset =3D=3D 0 || > >> (lbn + 1) * NFS_DIRBLKSIZ < np->n_direofoffset) && > >>=20 > >> rick > >> ps: It appears that autofs causes the directory to be read before it > >> is open'd for > >> some reason. I've never looked at autofs. > >> =20 > >>>=20 > >>> Peter > >>>=20 > >>> On 15 Jan 2024, at 09:31, Peter Blok > > >>> wrote: > >>>=20 > >>> Hi, > >>>=20 > >>> I do have a crash on a NFS client with stable of today > >>> (4c4633fdffbe8e4b6d328c2bc9bb3edacc9ab50a). It is also autofs related= . Maybe it is the > >>> same problem. > >>>=20 > >>> I have ports automounted on /am/ports. When I do cd /am/ports/sys and= type tab to > >>> autocomplete it crashes with the below stack trace. If I plainly moun= t ports on > >>> /usr/ports and do the same everything works. I am using NFSv3 > >>>=20 > >>> Peter > >>>=20 > >>>=20 > >>>=20 > >>>=20 > >>> Fatal trap 12: page fault while in kernel mode > >>> cpuid =3D 2; apic id =3D 04 > >>> fault virtual address =3D 0x89 > >>> fault code =3D supervisor read data, page not present > >>> instruction pointer =3D 0x20:0xffffffff809645d4 > >>> stack pointer =3D 0x28:0xfffffe00acadb830 > >>> frame pointer =3D 0x28:0xfffffe00acadb830 > >>> code segment =3D base 0x0, limit 0xfffff, type 0x1b > >>> =3D DPL 0, pres 1, long 1, def32 0, gran 1 > >>> processor eflags =3D interrupt enabled, resume, IOPL =3D 0 > >>> current process =3D 6869 (csh) > >>> trap number =3D 12 > >>> panic: page fault > >>> cpuid =3D 2 > >>> time =3D 1705306940 > >>> KDB: stack backtrace: > >>> #0 0xffffffff806232f5 at kdb_backtrace+0x65 > >>> #1 0xffffffff805d7a02 at vpanic+0x152 > >>> #2 0xffffffff805d78a3 at panic+0x43 > >>> #3 0xffffffff809d58ad at trap_fatal+0x38d > >>> #4 0xffffffff809d58ff at trap_pfault+0x4f > >>> #5 0xffffffff809af048 at calltrap+0x8 > >>> #6 0xffffffff804c7a7e at ncl_bioread+0xb7e > >>> #7 0xffffffff804b9d90 at nfs_readdir+0x1f0 > >>> #8 0xffffffff8069c61a at vop_sigdefer+0x2a > >>> #9 0xffffffff809f8ae0 at VOP_READDIR_APV+0x20 > >>> #10 0xffffffff81ce75de at autofs_readdir+0x2ce > >>> #11 0xffffffff809f8ae0 at VOP_READDIR_APV+0x20 > >>> #12 0xffffffff806c3002 at kern_getdirentries+0x222 > >>> #13 0xffffffff806c33a9 at sys_getdirentries+0x29 > >>> #14 0xffffffff809d6180 at amd64_syscall+0x110 > >>> #15 0xffffffff809af95b at fast_syscall_common+0xf8 > >>>=20 > >>>=20 > >>>=20 > >>> On 15 Jan 2024, at 06:46, FreeBSD User >>> > wrote: > >>>=20 > >>> Am Sun, 14 Jan 2024 20:34:12 -0800 > >>> Cy Schubert > schrieb: > >>>=20 > >>> In message >>> =20 > >>> om> =20 > >>> , Rick Macklem writes: > >>>=20 > >>> On Sat, Jan 13, 2024 at 12:39=3DE2=3D80=3DAFPM Ronald Klop >>> >=3D wrote: > >>>=20 > >>>=20 > >>>=20 > >>> Van: FreeBSD User > > >>> Datum: 13 januari 2024 19:34 > >>> Aan: FreeBSD CURRENT > > >>> Onderwerp: NFSv4 crash of CURRENT > >>>=20 > >>> Hello, > >>>=20 > >>> running CURRENT client (FreeBSD 15.0-CURRENT #4 main-n267556-69748e62= e82a=3D > >>>=20 > >>> : Sat Jan 13 18:08:32 > >>>=20 > >>> CET 2024 amd64). One NFSv4 server is same OS revision as the mentione= d cl=3D > >>>=20 > >>> ient, other is FreeBSD > >>>=20 > >>> 13.2-RELEASE-p8. Both offer NFSv4 filesystems, non-kerberized. > >>>=20 > >>> I can crash the client reproducable by accessing the one or other NFS= v4 F=3D > >>>=20 > >>> S (a simple ls -la). > >>>=20 > >>> The NFSv4 FS is backed by ZFS (if this matters). I do not have physic= la a=3D > >>>=20 > >>> ccess to the client > >>>=20 > >>> host, luckily the box recovers. > >>>=20 > >>> Did you rebuild both the nfscommon and nfscl modules from the same so= urces? > >>> I did a commit to main that changes the interface between these two > >>> modules and did bump the > >>> __FreeBSD_version to 1500010, which should cause both to be rebuilt. > >>> (If you have "options NFSCL" in your kernel config, both should have > >>> been rebuilt as a part of > >>> the kernel build.) > >>>=20 > >>>=20 > >>> Is anyone by chance seeing autofs in the backtrace too? > >>>=20 > >>>=20 > >>>=20 > >>> Hello Cy Shubert, > >>>=20 > >>> I forgot to mention that those crashes occur with autofs mounted file= systems. Good > >>> question, by the way, I will check whether crashes also happen when m= ounting the > >>> tradidional way. > >>>=20 > >>> Kind regards, > >>>=20 > >>> oh > >>>=20 > >>> -- > >>> O. Hartmann =20 > > =20 >=20 --=20 O. Hartmann From nobody Mon Jan 15 16:46:43 2024 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 4TDJ303kdnz574q2; Mon, 15 Jan 2024 16:47:24 +0000 (UTC) (envelope-from marietto2008@gmail.com) Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com [IPv6:2a00:1450:4864:20::636]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1D4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4TDJ301kplz40N2; Mon, 15 Jan 2024 16:47:24 +0000 (UTC) (envelope-from marietto2008@gmail.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-ej1-x636.google.com with SMTP id a640c23a62f3a-a29c4bbb2f4so928555866b.1; Mon, 15 Jan 2024 08:47:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1705337241; x=1705942041; darn=freebsd.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=6W/sfaPgUB5Zb93I5DLXs9+X5ngdj8yI5OJRtLAAgYI=; b=DkHy/0rxMcI4KKzaS37FbAqZBw7n1yG8WdQbVdtALPUWAIZkUiLoHDYlXSa1FrDMH/ zdTMHW3M7FGUoAQFgf4XewKjo5q2S4PtWVF3E8/NYf16t8U1+j5mquS0QNQ08s1tislE xowMd26slfKwfFbLhoSNy+bvGfckmMPk/3lpRDkTlKdOi79nJNDMjaf4bF6AtkR3Puiu G4pjDFK0je//c0zHessOylbOMcEuTjiV2SNnR6pZ+YJOP0+AxLfyNRSo8M9R7Lj+YuoX A2vonJ0bV5XX34VBT26C12mT4nPnf+Luav82bKK4L9lqQnYaaNcB5wW2/u0rpLq/Scbq 9/Zg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705337241; x=1705942041; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=6W/sfaPgUB5Zb93I5DLXs9+X5ngdj8yI5OJRtLAAgYI=; b=ceWlndzJBcHrSnrvvNawDFDbgbSuXznaMHiF/DCiUGgwx1tr/ge81Kzub1LH2j/7H7 YuV3u119btwCNSkQQb7H1Y4VtyXThI8m8ell2zVFywtUf5DzdHyJ3PwB1gkBVVCYzjYp xwpANQQFaWT4uUmW1TOW/fhI1ogJlFHH+Rb1p55c7t6F2JYhyrM2GX01yQfTcCT5jFHe 6UzQW4jZiTl9Cyfsyf93iQQmq6YonH81lEnCm5UCheJ8nYnXWnInRv8KW29AdAB3GM/l F7NF9rciaQnqL/E29/CPq1nwaBBlvE/w8aOgu8luXGrd4J7z97m+g53oPOvmKIlfrYhk xw5g== X-Gm-Message-State: AOJu0YyUDwFPv/4svwZiPe7udkJfkQVk6ZQUOvogTFzGvFjO3N8my8HF rJ/S3cnjKkLos+KKwdcqFoXmY59F4Drguti7vR+lWL7QNt8= X-Google-Smtp-Source: AGHT+IHl6D/d8tpDFUsKHrBumpqaf4HLONzJOKPf9HhD1UgbaNxbWvPM28wOFQbqGcLDGnRLHsmWpuMxvA04dRMDvSU= X-Received: by 2002:a17:906:4482:b0:a28:fc03:c5d4 with SMTP id y2-20020a170906448200b00a28fc03c5d4mr2385326ejo.20.1705337240260; Mon, 15 Jan 2024 08:47:20 -0800 (PST) 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 References: In-Reply-To: From: Mario Marietto Date: Mon, 15 Jan 2024 17:46:43 +0100 Message-ID: Subject: Re: How to upgrade an EOL FreeBSD release or how to make it working again To: John F Carr Cc: freebsd-arm , freebsd-hackers , FreeBSD Mailing List , "freebsd-xen@freebsd.org" , FreeBSD Current , Warner Losh , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= Content-Type: multipart/alternative; boundary="0000000000006d9686060efec4a3" X-Rspamd-Queue-Id: 4TDJ301kplz40N2 X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US] --0000000000006d9686060efec4a3 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable The ARM Chromebook is based on armv7,it is still recent. But let's change perspective for a moment,don't think about the ARM Chromebook. My question is : how to upgrade FreeBSD when it goes EOL. I ask this because there is a huge difference here between FreeBSD and Linux. Today if you need to use , for example Ubuntu 14.0, you can use it as is. Yes,there will be a lot of bugs,but it will work without crashes. But if you want to use an old FreeBSD system,nothing will work for you. So,do you know some methods to install even packages or ports ? You know,there are cases when you need to do some experiments so that you can keep your machine off the internet,so you aren't scared that someone can compromise it. Totally prohibiting the users to use an old system,removing ports and packages is not a choice that I approve of. And I'm not the only one that thinks like this. On Mon, Jan 15, 2024 at 5:21=E2=80=AFPM John F Carr wrote: > Judging by a commit message BSD on the ARM Chromebook didn't work > when support was removed in 2019. > > >RK* Exynos* and Meson*/Odroid* don't even work with current > >source code, if someone wants to make them work again they > >better use the Linux DTS. > > https://cgit.freebsd.org/src/commit?id=3D9dfa2a54684978d1d6cef67bbf6242e8= 25801f18 > > I have one of the "snow" Chromebooks. The warnings in the web page > https://wiki.freebsd.org/arm/Chromebook led me not to try FreeBSD. > None of the many bugs seemed likely to ever be fixed. I'm not using it > so I could try an experiment, but fighting with u-boot is not how I want > to spend my days. Even the popular Raspberry Pi takes skill or luck. > > (So "build an arm6 world and copy X, Y, and Z to the DOS partition > on your USB drive" is the kind of advice I need to supplement the old > Chromebook wiki page.) > > There is at least a little value in getting it to work because the armv6 > code is bit rotting and will go away entirely unless people use it. > > John Carr > > > > On Jan 15, 2024, at 10:59, Mario Marietto > wrote: > > > > Hello to everyone. > > > > I'm trying to install FreeBSD 14 natively on my ARM Chromebook model > xe303c12 ; I've found only one tutorial that teaches how to do that,that'= s > it : > > > > https://wiki.freebsd.org/arm/Chromebook > > > > The problem is that it ends with the installation of FreeBSD 11,that's > very EOL. > > I can't use it as is. I need to upgrade it to 14 (but I'm on arm 32 > bit,that's TIER-2,so I can't upgrade it automatically using the > freebsd-update script. It is also true that I can't install 14 directly o= n > that machine,as you can read below : > > > > > > > > > > I've looked all around and I found the tool pkgbase,that I'm talking > about on the FreeBSD forum,to understand if it allows the 11 to be usable > or upgradable. It does not seem to be the proper tool to achieve my goal. > Do you have any suggestions that can help me ? Thanks. > > > > -- > > Mario. > > --=20 Mario. --0000000000006d9686060efec4a3 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
The ARM Chromebook is based on armv7,it is still recent. B= ut let's change perspective for a moment,don't think about the ARM = Chromebook. My question is : how to upgrade FreeBSD when it goes EOL. I ask= this because there is a huge difference here between FreeBSD and Linux. To= day if you need to use , for example Ubuntu 14.0, you can use it as is. Yes= ,there will be a lot of bugs,but it will work without crashes. But if you w= ant to use an old FreeBSD system,nothing will work for you. So,do you know = some methods to install even packages or ports ? You know,there are cases w= hen you need to do some experiments so that you can keep your machine off t= he internet,so you aren't scared that someone can compromise it. Totall= y prohibiting the users to use an old system,removing ports and packages is= not a choice that I approve of. And I'm not the only one that thinks l= ike this.

On Mon, Jan 15, 2024 at 5:21=E2=80=AFPM John F Carr <jfc@mit.edu> wrote:
Judging by a commit m= essage BSD on the ARM Chromebook didn't work
when support was removed in 2019.

>RK* Exynos* and Meson*/Odroid* don't even work with current
>source code, if someone wants to make them work again they
>better use the Linux DTS.
https://cgit.freebs= d.org/src/commit?id=3D9dfa2a54684978d1d6cef67bbf6242e825801f18

I have one of the "snow" Chromebooks.=C2=A0 The warnings in the w= eb page
https://wiki.freebsd.org/arm/Chromebook led me not to try= FreeBSD.
None of the many bugs seemed likely to ever be fixed.=C2=A0 I'm not usi= ng it
so I could try an experiment, but fighting with u-boot is not how I want to spend my days.=C2=A0 Even the popular Raspberry Pi takes skill or luck.<= br>
(So "build an arm6 world and copy X, Y, and Z to the DOS partition
on your USB drive" is the kind of advice I need to supplement the old<= br> Chromebook wiki page.)

There is at least a little value in getting it to work because the armv6 code is bit rotting and will go away entirely unless people use it.

John Carr


> On Jan 15, 2024, at 10:59, Mario Marietto <marietto2008@gmail.com> wrote: >
> Hello to everyone.
>
> I'm trying to install FreeBSD 14 natively on my ARM Chromebook mod= el xe303c12 ; I've found only one tutorial that teaches how to do that,= that's it :
>
> https://wiki.freebsd.org/arm/Chromebook
>
> The problem is that it ends with the installation of FreeBSD 11,that&#= 39;s very EOL.
> I can't use it as is. I need to upgrade it to 14 (but I'm on a= rm 32 bit,that's TIER-2,so I can't upgrade it automatically using t= he freebsd-update script. It is also true that I can't install 14 direc= tly on that machine,as you can read below :
>
>
> <unnamed.png>
>
> I've looked all around and I found the tool pkgbase,that I'm t= alking about on the FreeBSD forum,to understand if it allows the 11 to be u= sable or upgradable. It does not seem to be the proper tool to achieve my g= oal. Do you have any suggestions that can help me ? Thanks.
>
> --
> Mario.



--
Mario.
--0000000000006d9686060efec4a3-- From nobody Mon Jan 15 17:24:02 2024 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 4TDJsV4PFpz578TP for ; Mon, 15 Jan 2024 17:24:14 +0000 (UTC) (envelope-from shuriku@shurik.kiev.ua) Received: from mail.flex-it.com.ua (mail.flex-it.com.ua [193.239.74.7]) (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 4TDJsT2YBpz46yX for ; Mon, 15 Jan 2024 17:24:13 +0000 (UTC) (envelope-from shuriku@shurik.kiev.ua) Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of shuriku@shurik.kiev.ua designates 193.239.74.7 as permitted sender) smtp.mailfrom=shuriku@shurik.kiev.ua Received: from 93.183.208.50.ipv4.datagroup.ua ([93.183.208.50] helo=[192.168.200.105]) by mail.flex-it.com.ua with esmtpsa (TLS1.3) tls TLS_AES_128_GCM_SHA256 (Exim 4.96.2 (FreeBSD)) (envelope-from ) id 1rPQgt-000Pef-1k for freebsd-current@FreeBSD.org; Mon, 15 Jan 2024 19:24:03 +0200 Content-Type: multipart/alternative; boundary="------------HhcJ2qsZrnsNQ13MgTcU5d9A" Message-ID: Date: Mon, 15 Jan 2024 19:24:02 +0200 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 User-Agent: Mozilla Thunderbird Content-Language: uk-UA To: freebsd-current@FreeBSD.org From: Oleksandr Kryvulia Subject: suspend to idle support X-ACL-Warn: SPF failed. 93.183.208.50 is not allowed to send mail from shurik.kiev.ua. X-Spamd-Bar: -- X-Spamd-Result: default: False [-2.20 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.87)[-0.868]; R_SPF_ALLOW(-0.20)[+mx]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; NEURAL_HAM_LONG(-0.04)[-0.039]; XM_UA_NO_VERSION(0.01)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; RCVD_COUNT_ONE(0.00)[1]; ASN(0.00)[asn:35297, ipnet:193.239.72.0/22, country:UA]; MIME_TRACE(0.00)[0:+,1:+,2:~]; RCVD_TLS_ALL(0.00)[]; R_DKIM_NA(0.00)[]; MLMMJ_DEST(0.00)[freebsd-current@FreeBSD.org]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; TO_DN_NONE(0.00)[]; DMARC_NA(0.00)[shurik.kiev.ua]; TO_MATCH_ENVRCPT_ALL(0.00)[]; ARC_NA(0.00)[] X-Rspamd-Queue-Id: 4TDJsT2YBpz46yX This is a multi-part message in MIME format. --------------HhcJ2qsZrnsNQ13MgTcU5d9A Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hello, What is a status of support suspend to idle? I found only two related reviews D17675 and D17676 and no more any information. It is a very desirable thing on modern laptops, where s3 is not supported like my X1 Carbon gen11[1]. [1] https://wiki.freebsd.org/Laptops/Thinkpad_X1_Carbon --------------HhcJ2qsZrnsNQ13MgTcU5d9A Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 7bit Hello,
What is a status of support suspend to idle? I found only two related reviews D17675 and D17676 and no more any information. It is a very desirable thing on modern laptops, where s3 is not supported like my X1 Carbon gen11[1].

[1] https://wiki.freebsd.org/Laptops/Thinkpad_X1_Carbon
--------------HhcJ2qsZrnsNQ13MgTcU5d9A-- From nobody Mon Jan 15 18:14:48 2024 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 4TDL061LSSz57Fn0; Mon, 15 Jan 2024 18:15:02 +0000 (UTC) (envelope-from theraven@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (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-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4TDL060q4yz4Kxg; Mon, 15 Jan 2024 18:15:02 +0000 (UTC) (envelope-from theraven@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1705342502; 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; bh=d0/IbcyKDemaHn7DKPTlbBlpVQncBceJ6kYfFdjJf1U=; b=uxi/zy1WLcTULjTCB8MGAEr7EAjawZPs46/9TAV+W6PFu7INdgBUto9oaLC8FsvLW++x72 eeVMsb+tPhug6Vq2eCX+uCGwVeMWBxLCFRJHiYVQwTBQDcTTQFy1LBhB057VgFz8E0CM0x ssQzBRLVmVwzsJ9RDRGwWQ+LH756jZhLtp79s0FOj2+MA58Aqg/TBJDvJqjUYAhb7U8H3k wcTpeLiuVgMZUM83vGhLKmt+mYt998tyKS2FLnSYrJ6Z5s9ilO3nEC5czIyuUS/OPTsVFA +Sk/CALqAw89gcIVlV23Op0MuK+O5YbZvGG0hMcSQbDuYzBY8h8iRU0/huB/Ew== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1705342502; 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; bh=d0/IbcyKDemaHn7DKPTlbBlpVQncBceJ6kYfFdjJf1U=; b=Mh7vnvBG8vQdDKKwicM2rovmymzCcHmlx0k4bBVM3/lR5WEj0lyYNbxy1zmVSWjgS50AtE jfc2GTkZV16fpBQ0qjty4GjS5FCwHVgvWTW45trTQsFMS/Jtpt9MC03XacWHCXPaJVIjCO ArX5DvmXqJQIxVApRTUSrCPJWEpGH0oiwiln66X0I7oOZapDW4y9oK2cy6wjHlFVeDqnRY aeWaEKhkQ5Iq+oPmDN0LOv0P2qBAZlwKNevyJtbKEp8CpqbJrUh6a5iSHKntbkU5IT4JXQ hCdntJxa5uc3Q3qMHJxWazpiyuDEhuFId+Qy2m1loONBBIK1EnGtQY7JOM0j0w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1705342502; a=rsa-sha256; cv=none; b=FHi9DpkyXsUV46FLnQ2+cZQSFYiuNytbQR3UBzwUvTHb3O0JG3/GruV9yqOY/WdHHzlASz ZZR4JoW2XzXUZFUy3goVX9LtJBkE0iLlSCJKTgn8cW1VtJrfF85Uvse2Z8ISstDfVeSKzB owOoCal0eipJGGUNVuboiGrb7vg2GF5q8kwvE5JH52BO4QSpcWgYqfhn+9kJNEuxiRg03e +8AhuJm6s5YyETimTmBROo71oNdaDR4+ibzrVv82Uofa1KhfaAnAEA72t7J+IVKsnU4HE2 ZkLJq5hZOrAMb+ORiVtX9v+2HTfO9OvyP0eL4n7bFIs+IMW+h3aRqg3ZvrgEhg== Received: from smtp.theravensnest.org (smtp.theravensnest.org [45.77.103.195]) (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) (Authenticated sender: theraven) by smtp.freebsd.org (Postfix) with ESMTPSA id 4TDL056m5xzM0B; Mon, 15 Jan 2024 18:15:01 +0000 (UTC) (envelope-from theraven@FreeBSD.org) Received: from smtpclient.apple (host81-141-223-70.range81-141.btcentralplus.com [81.141.223.70]) by smtp.theravensnest.org (Postfix) with ESMTPSA id 5CA86BE07; Mon, 15 Jan 2024 18:15:00 +0000 (GMT) Content-Type: text/plain; charset=utf-8 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 (Mac OS X Mail 16.0 \(3774.200.91.1.1\)) Subject: Re: How to upgrade an EOL FreeBSD release or how to make it working again From: David Chisnall In-Reply-To: Date: Mon, 15 Jan 2024 18:14:48 +0000 Cc: John F Carr , freebsd-arm , freebsd-hackers , FreeBSD Mailing List , "freebsd-xen@freebsd.org" , FreeBSD Current , Warner Losh , =?utf-8?Q?Roger_Pau_Monn=C3=A9?= Content-Transfer-Encoding: quoted-printable Message-Id: References: To: Mario Marietto X-Mailer: Apple Mail (2.3774.200.91.1.1) On 15 Jan 2024, at 16:46, Mario Marietto wrote: >=20 > The ARM Chromebook is based on armv7,it is still recent. For reference, the ARMv7 architecture was introduced in 2005. The last = cores that implemented the architecture were released in 2014. This is = not a =E2=80=98recent=E2=80=99 architecture, it=E2=80=99s one that=E2=80=99= s 19 years old and has been largely dead for several years. > But let's change perspective for a moment,don't think about the ARM = Chromebook. My question is : how to upgrade FreeBSD when it goes EOL. Generally, run `freebsd-update`. This is a very different question from = =E2=80=98how do I do a new install of an old an unsupported version?' > I ask this because there is a huge difference here between FreeBSD and = Linux. Today if you need to use , for example Ubuntu 14.0, you can use = it as is. Yes,there will be a lot of bugs,but it will work without = crashes. But if you want to use an old FreeBSD system,nothing will work = for you. So,do you know some methods to install even packages or ports ? = You know,there are cases when you need to do some experiments so that = you can keep your machine off the internet,so you aren't scared that = someone can compromise it. Totally prohibiting the users to use an old = system,removing ports and packages is not a choice that I approve of. = And I'm not the only one that thinks like this. If you want to use an old and unsupported version of FreeBSD, no one is = stopping you, but: - You will need to build the releases. The source code is still in = git, you can. The scripts for building the release images are right = there in the repo. Just grab the relevant release or releng branch and = go. - You will need to build packages. Newer versions of the ports tree = will not be tested with the older release, so you may need to use an = older checkout of the ports tree. Poudriere will build a package repo = for you. =20 In both cases, if you=E2=80=99re using older versions you almost = certainly *will* have security vulnerabilities. The project strongly = advises you not to do this and not to blame us when you install = known-insecure software and end up compromised. The project does not have enough active contributors to keep maintaining = things indefinitely. This is why release have a five-year supported = lifetime. If you want to pick up an old branch and maintain it, = you=E2=80=99re welcome to. In the past, companies have picked up old = branches and maintained them for customers that had a dependency on = them. If you want to pay someone to maintain an old branch (and have = deep pockets) then there are probably a few companies that will happily = take your money. Maintaining binaries is a slightly different issue, but it=E2=80=99s not = totally unrelated. Keeping old packages around consumes disk space and = costs the project money (remember, every package is mirrored across the = CDN, so this isn=E2=80=99t just a single disk). Even if it were free, = philosophically, I think making it easy for users to install = known-insecure software is a bad idea but if you want to keep a package = repo with out-of-date packages online indefinitely then you can. You = can run Poudriere and even cross-compile from a fairly beefy cloud = machine quite easily. It=E2=80=99s been a while since I did a full package build, but I would = guess that you could do a single package build (all ports) for about $50 = on a cloud VM, more (2-3x) if it=E2=80=99s emulated. Storing the = results for a small number of users will cost around $10-20/month. If = you think this is an important thing to do, then you are absolutely = welcome to spend your own money on doing it. David From nobody Mon Jan 15 18:48:06 2024 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 4TDLl40tt4z57LBn; Mon, 15 Jan 2024 18:48:48 +0000 (UTC) (envelope-from marietto2008@gmail.com) Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com [IPv6:2a00:1450:4864:20::52e]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1D4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4TDLl35vkYz4TJB; Mon, 15 Jan 2024 18:48:47 +0000 (UTC) (envelope-from marietto2008@gmail.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-ed1-x52e.google.com with SMTP id 4fb4d7f45d1cf-5592d2bc270so1656199a12.1; Mon, 15 Jan 2024 10:48:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1705344523; x=1705949323; darn=freebsd.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=I/WoT+Ay3mzobABXMuF7AlcLOD0UXEORhbexuiMS3jc=; b=maVx6eer64Codn/m4OY+Jx7XQH5qKPJcnTTQuvTeF+G4ED+LNbzJGPugA/yHfSoy+a NwhoBORj2B4MCAdyUeXXLcpryaq0sPi9M3WtYcihzp84HPJX2SAccLj+ZrwSzcwgIa78 1QN4b7TVM2sQ4zl6V4dypg40LmNDq0+UYXKMd4jvRJvv4r3hznI+pGK6PWVKKypUKaO+ AZBDOKAShlS0okILvs1VIdmozxCW2WhXkaTy4IWFu/loLzinK6K8kKprDDLQHSKmqRbK LrNjn1jGJ1ZsmfHq02Xq9E8UrZ0vOfQxjD1yXd/Bvjnplqoa2x0gBc5hOzpO/vmLLYlZ fYcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705344523; x=1705949323; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=I/WoT+Ay3mzobABXMuF7AlcLOD0UXEORhbexuiMS3jc=; b=IluRGduNITza3Xcx2E1pk6i4L1lABtcKu8mfy/lgtajN5u/qeJmXCsqBs63WUpYAtQ 2LrmvLdLPLcvEIcX0EdndiH5GTl+Qp8fLk9jSjpMX8SzylwXlM0RSgKVlTnNftFAbA5/ muXfeejE38BYvGVQvIGvIQXgQwmstiKL6PoHmBPE81IHMN7d6g57QpQ7P8scBkvpqjhF qPjdzITSar3RNlvA4h+NjAAlD1Wzin+GvAonw1BENWghaCxJhpXMqo6dOXq6c4G5D6TM TAPNJQFlvqt1ixtHrOtoGGA+8n7+XHL5rma4gVQb8EDjB3ec3aN9SNZ9EjcnfZUZmrJP xW7Q== X-Gm-Message-State: AOJu0YyE12BNTmDdKI3zX/AQKHKeIJXztMRezbuzkbbu5cGafLKymYi/ Tpfpq2ZszRf++VRX9lji+5RI3uWh1M9rPvRcPVzCRTn2CNI= X-Google-Smtp-Source: AGHT+IGS7eSa65YjqkaboRH6mDNUmVYlffE4MIJeRgh5P3fDXyd/r71xNmO94HTynry1lUgpQc6OxlxILxi8IC+yIM4= X-Received: by 2002:a17:906:9b44:b0:a2b:238d:50f2 with SMTP id ep4-20020a1709069b4400b00a2b238d50f2mr2263418ejc.152.1705344522663; Mon, 15 Jan 2024 10:48:42 -0800 (PST) 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 References: In-Reply-To: From: Mario Marietto Date: Mon, 15 Jan 2024 19:48:06 +0100 Message-ID: Subject: Re: How to upgrade an EOL FreeBSD release or how to make it working again To: David Chisnall , Mark Millard Cc: John F Carr , freebsd-arm , freebsd-hackers , FreeBSD Mailing List , "freebsd-xen@freebsd.org" , FreeBSD Current , Warner Losh , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= Content-Type: multipart/alternative; boundary="0000000000007e39b1060f007600" X-Rspamd-Queue-Id: 4TDLl35vkYz4TJB X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US] --0000000000007e39b1060f007600 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hello. Do you have deleted forever the set of packages and ports for FreeBSD 11 or you keep them stored in DVDs that I can buy or download for a small amount of money ? If yes,where ? To rebuild everything is out of my expertise. On Mon, Jan 15, 2024 at 7:15=E2=80=AFPM David Chisnall wrote: > On 15 Jan 2024, at 16:46, Mario Marietto wrote: > > > > The ARM Chromebook is based on armv7,it is still recent. > > For reference, the ARMv7 architecture was introduced in 2005. The last > cores that implemented the architecture were released in 2014. This is n= ot > a =E2=80=98recent=E2=80=99 architecture, it=E2=80=99s one that=E2=80=99s = 19 years old and has been largely > dead for several years. > > > But let's change perspective for a moment,don't think about the ARM > Chromebook. My question is : how to upgrade FreeBSD when it goes EOL. > > Generally, run `freebsd-update`. This is a very different question from > =E2=80=98how do I do a new install of an old an unsupported version?' > > > I ask this because there is a huge difference here between FreeBSD and > Linux. Today if you need to use , for example Ubuntu 14.0, you can use it > as is. Yes,there will be a lot of bugs,but it will work without crashes. > But if you want to use an old FreeBSD system,nothing will work for you. > So,do you know some methods to install even packages or ports ? You > know,there are cases when you need to do some experiments so that you can > keep your machine off the internet,so you aren't scared that someone can > compromise it. Totally prohibiting the users to use an old system,removin= g > ports and packages is not a choice that I approve of. And I'm not the onl= y > one that thinks like this. > > If you want to use an old and unsupported version of FreeBSD, no one is > stopping you, but: > > - You will need to build the releases. The source code is still in git, > you can. The scripts for building the release images are right there in > the repo. Just grab the relevant release or releng branch and go. > > - You will need to build packages. Newer versions of the ports tree wil= l > not be tested with the older release, so you may need to use an older > checkout of the ports tree. Poudriere will build a package repo for you. > > In both cases, if you=E2=80=99re using older versions you almost certainl= y *will* > have security vulnerabilities. The project strongly advises you not to d= o > this and not to blame us when you install known-insecure software and end > up compromised. > > The project does not have enough active contributors to keep maintaining > things indefinitely. This is why release have a five-year supported > lifetime. If you want to pick up an old branch and maintain it, you=E2= =80=99re > welcome to. In the past, companies have picked up old branches and > maintained them for customers that had a dependency on them. If you want > to pay someone to maintain an old branch (and have deep pockets) then the= re > are probably a few companies that will happily take your money. > > Maintaining binaries is a slightly different issue, but it=E2=80=99s not = totally > unrelated. Keeping old packages around consumes disk space and costs the > project money (remember, every package is mirrored across the CDN, so thi= s > isn=E2=80=99t just a single disk). Even if it were free, philosophically= , I think > making it easy for users to install known-insecure software is a bad idea > but if you want to keep a package repo with out-of-date packages online > indefinitely then you can. You can run Poudriere and even cross-compile > from a fairly beefy cloud machine quite easily. > > It=E2=80=99s been a while since I did a full package build, but I would g= uess that > you could do a single package build (all ports) for about $50 on a cloud > VM, more (2-3x) if it=E2=80=99s emulated. Storing the results for a smal= l number > of users will cost around $10-20/month. If you think this is an importan= t > thing to do, then you are absolutely welcome to spend your own money on > doing it. > > David > > --=20 Mario. --0000000000007e39b1060f007600 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello.

Do you have deleted f= orever the set of packages and ports for FreeBSD 11 or you keep them stored= in DVDs that I can buy or download for a small amount of money ? If yes,wh= ere ? To rebuild everything is out of my expertise.

On Mon, Jan 1= 5, 2024 at 7:15=E2=80=AFPM David Chisnall <theraven@freebsd.org> wrote:
On 15 Jan 2024, at 16:46, Mario Marietto &= lt;marietto2008= @gmail.com> wrote:
>
> The ARM Chromebook is based on armv7,it is still recent.

For reference, the ARMv7 architecture was introduced in 2005.=C2=A0 The las= t cores that implemented the architecture were released in 2014.=C2=A0 This= is not a =E2=80=98recent=E2=80=99 architecture, it=E2=80=99s one that=E2= =80=99s 19 years old and has been largely dead for several years.

> But let's change perspective for a moment,don't think about th= e ARM Chromebook. My question is : how to upgrade FreeBSD when it goes EOL.=

Generally, run `freebsd-update`.=C2=A0 This is a very different question fr= om =E2=80=98how do I do a new install of an old an unsupported version?'= ;

> I ask this because there is a huge difference here between FreeBSD and= Linux. Today if you need to use , for example Ubuntu 14.0, you can use it = as is. Yes,there will be a lot of bugs,but it will work without crashes.=C2= =A0 But if you want to use an old FreeBSD system,nothing will work for you.= So,do you know some methods to install even packages or ports ? You know,t= here are cases when you need to do some experiments so that you can keep yo= ur machine off the internet,so you aren't scared that someone can compr= omise it. Totally prohibiting the users to use an old system,removing ports= and packages is not a choice that I approve of. And I'm not the only o= ne that thinks like this.

If you want to use an old and unsupported version of FreeBSD, no one is sto= pping you, but:

=C2=A0- You will need to build the releases.=C2=A0 The source code is still= in git, you can.=C2=A0 The scripts for building the release images are rig= ht there in the repo.=C2=A0 Just grab the relevant release or releng branch= and go.

=C2=A0- You will need to build packages.=C2=A0 Newer versions of the ports = tree will not be tested with the older release, so you may need to use an o= lder checkout of the ports tree.=C2=A0 Poudriere will build a package repo = for you.=C2=A0

In both cases, if you=E2=80=99re using older versions you almost certainly = *will* have security vulnerabilities.=C2=A0 The project strongly advises yo= u not to do this and not to blame us when you install known-insecure softwa= re and end up compromised.

The project does not have enough active contributors to keep maintaining th= ings indefinitely.=C2=A0 This is why release have a five-year supported lif= etime.=C2=A0 If you want to pick up an old branch and maintain it, you=E2= =80=99re welcome to.=C2=A0 In the past, companies have picked up old branch= es and maintained them for customers that had a dependency on them.=C2=A0 I= f you want to pay someone to maintain an old branch (and have deep pockets)= then there are probably a few companies that will happily take your money.=

Maintaining binaries is a slightly different issue, but it=E2=80=99s not to= tally unrelated.=C2=A0 Keeping old packages around consumes disk space and = costs the project money (remember, every package is mirrored across the CDN= , so this isn=E2=80=99t just a single disk).=C2=A0 Even if it were free, ph= ilosophically, I think making it easy for users to install known-insecure s= oftware is a bad idea but if you want to keep a package repo with out-of-da= te packages online indefinitely then you can.=C2=A0 You can run Poudriere a= nd even cross-compile from a fairly beefy cloud machine quite easily.

It=E2=80=99s been a while since I did a full package build, but I would gue= ss that you could do a single package build (all ports) for about $50 on a = cloud VM, more (2-3x) if it=E2=80=99s emulated.=C2=A0 Storing the results f= or a small number of users will cost around $10-20/month.=C2=A0 If you thin= k this is an important thing to do, then you are absolutely welcome to spen= d your own money on doing it.

David



--
Mario.
--0000000000007e39b1060f007600-- From nobody Mon Jan 15 20:29:14 2024 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 4TDNzG6wHcz57Vtp for ; Mon, 15 Jan 2024 20:29:30 +0000 (UTC) (envelope-from rick.macklem@gmail.com) Received: from mail-pj1-x102f.google.com (mail-pj1-x102f.google.com [IPv6:2607:f8b0:4864:20::102f]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1D4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4TDNzG3YJtz4kbl for ; Mon, 15 Jan 2024 20:29:30 +0000 (UTC) (envelope-from rick.macklem@gmail.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-pj1-x102f.google.com with SMTP id 98e67ed59e1d1-28e0786edb3so2691212a91.2 for ; Mon, 15 Jan 2024 12:29:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1705350568; x=1705955368; darn=freebsd.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=4bBSzZMfiGcUeSr3kTOHu/8/DuhYKJ3HGe7EpiUm7AM=; b=g5Jgkv32lVNhdM3s2ZbteYBQxZ68EKTNDs8pxow5tWccZ2BkwSjK/bvRR8Ro5A7UjX vhcDDC5/IdyqHaZuyckhCcRCiwqJfSUNeQTHFuqaTSNyqr4uwZEgZLYwPr/fHaxAbsVm gIhzOSxd02IU/S2DQxhSLNsNHTT/C3nQA6I5nHG/BB6toDjka7G0VNFZnrzRVsnIHbMp ZT1/kfRpMQULSJzF4vuEspPHvvK/qE/Z04taTFmZ8hJ/2RF3lpF5AmhW/SESsqT5v3b3 ELCq5FfErIb+DO4b8SpRa8BVxu/0+L3tacIoHSmjjok8U+vt0hFI1AlXVeBXmSQLxL96 8IsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705350568; x=1705955368; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4bBSzZMfiGcUeSr3kTOHu/8/DuhYKJ3HGe7EpiUm7AM=; b=HuNHGv2qJLipwbhrh1tC0w38xdrU1zJ76u/WpIibown1upqUrX0RDtE/kaa0Pm5ZT7 vTUWtiN2M/NiWw97h1BtZUiH/UC3v51H76C9JdwIx75uVz8WjCpZhB55mmFZcYCShjk9 1tLUh4v4+63I1UCNBAnh3QB8D5ACVR1xT9PMvBmxd7oEvSzinCa5jc8hAYpa6Lfys11B PX5VUjHEpYT0kMEfP5KoouVoBxIqw3YljucugT0XV6mr+WqlUmfHgZe30YHzPIXMdYOC FUwkIdwHEGbzgjrGe9lXyLOGamxOMxBVwMw4pGxyAiEwUpVHscY0y5KD6YMplJHF++Ru meXw== X-Gm-Message-State: AOJu0Yxnod4RQThYFFztW8dzjHrbRx65uQQ88iYnPh8TNaVt6GME85yL 9X1McFvN4TocmJRtrxCptBm66PAUQN+Grjx05w== X-Google-Smtp-Source: AGHT+IEetDO6bQKoc1JNDZ5G79Je+MIFLmurDZuSDC2PQwDC/AMaydIdZk6aRO2mymq0CBwEpKk/jSLmf5Z5QfehgZw= X-Received: by 2002:a17:90b:1e43:b0:28c:f07a:2986 with SMTP id pi3-20020a17090b1e4300b0028cf07a2986mr3964628pjb.85.1705350567911; Mon, 15 Jan 2024 12:29:27 -0800 (PST) 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 References: <20240113193324.3fd54295@thor.intern.walstatt.dynvpn.de> <1369645989.13766.1705178331205@localhost> <20240115043412.B6998C8@slippy.cwsent.com> <20240115064704.611fe0c4@thor.intern.walstatt.dynvpn.de> <683EF50F-6665-4664-A7CE-1EFE50076FB0@bsd4all.org> <20240115173611.2b8e76d6@thor.intern.walstatt.dynvpn.de> In-Reply-To: <20240115173611.2b8e76d6@thor.intern.walstatt.dynvpn.de> From: Rick Macklem Date: Mon, 15 Jan 2024 12:29:14 -0800 Message-ID: Subject: Re: NFSv4 crash of CURRENT To: FreeBSD User Cc: Peter Blok , Cy Schubert , Ronald Klop , FreeBSD CURRENT Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 4TDNzG3YJtz4kbl X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; TAGGED_FROM(0.00)[]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US] On Mon, Jan 15, 2024 at 11:03=E2=80=AFAM FreeBSD User wrote: > > Am Mon, 15 Jan 2024 11:53:31 +0100 > Peter Blok schrieb: > > > Hi, > > > > Forgot to mention I=E2=80=99m on 13-stable. The fix that is causing the= crash with automounted NFS > > is: > > > > commit cc5cda1dbaa907ce52074f47264cc45b5a7d6c8b > > Author: Konstantin Belousov > > Date: Tue Jan 2 00:22:44 2024 +0200 > > > > nfsclient: limit situations when we do unlocked read-ahead by nfsio= d > > > > (cherry picked from commit 70dc6b2ce314a0f32755005ad02802fca7ed186e= ) > > > > When I remove the fix, the problem is gone. Add it back and the crash h= appens. > > > > Peter > > > > > On 15 Jan 2024, at 09:31, Peter Blok wrote: > > > > > > Hi, > > > > > > I do have a crash on a NFS client with stable of today > > > (4c4633fdffbe8e4b6d328c2bc9bb3edacc9ab50a). It is also autofs related= . Maybe it is the > > > same problem. > > > > > > I have ports automounted on /am/ports. When I do cd /am/ports/sys and= type tab to > > > autocomplete it crashes with the below stack trace. If I plainly moun= t ports on /usr/ports > > > and do the same everything works. I am using NFSv3 > > > > > > Peter > > > > > > > > > > > > > > > Fatal trap 12: page fault while in kernel mode > > > cpuid =3D 2; apic id =3D 04 > > > fault virtual address =3D 0x89 > > > fault code =3D supervisor read data, page not present > > > instruction pointer =3D 0x20:0xffffffff809645d4 > > > stack pointer =3D 0x28:0xfffffe00acadb830 > > > frame pointer =3D 0x28:0xfffffe00acadb830 > > > code segment =3D base 0x0, limit 0xfffff, type 0x1b > > > =3D DPL 0, pres 1, long 1, def32 0, gran 1 > > > processor eflags =3D interrupt enabled, resume, IOPL =3D 0 > > > current process =3D 6869 (csh) > > > trap number =3D 12 > > > panic: page fault > > > cpuid =3D 2 > > > time =3D 1705306940 > > > KDB: stack backtrace: > > > #0 0xffffffff806232f5 at kdb_backtrace+0x65 > > > #1 0xffffffff805d7a02 at vpanic+0x152 > > > #2 0xffffffff805d78a3 at panic+0x43 > > > #3 0xffffffff809d58ad at trap_fatal+0x38d > > > #4 0xffffffff809d58ff at trap_pfault+0x4f > > > #5 0xffffffff809af048 at calltrap+0x8 > > > #6 0xffffffff804c7a7e at ncl_bioread+0xb7e > > > #7 0xffffffff804b9d90 at nfs_readdir+0x1f0 > > > #8 0xffffffff8069c61a at vop_sigdefer+0x2a > > > #9 0xffffffff809f8ae0 at VOP_READDIR_APV+0x20 > > > #10 0xffffffff81ce75de at autofs_readdir+0x2ce > > > #11 0xffffffff809f8ae0 at VOP_READDIR_APV+0x20 > > > #12 0xffffffff806c3002 at kern_getdirentries+0x222 > > > #13 0xffffffff806c33a9 at sys_getdirentries+0x29 > > > #14 0xffffffff809d6180 at amd64_syscall+0x110 > > > #15 0xffffffff809af95b at fast_syscall_common+0xf8 > > > > > > > > > > > >> On 15 Jan 2024, at 06:46, FreeBSD User > >> > wrote: > > >> > > >> Am Sun, 14 Jan 2024 20:34:12 -0800 > > >> Cy Schubert > schrieb: > > >> > > >>> In message > >>> > > >>> om> > > >>> , Rick Macklem writes: > > >>>> On Sat, Jan 13, 2024 at 12:39=3DE2=3D80=3DAFPM Ronald Klop > >>>> >=3D wrote: > > >>>>> > > >>>>> > > >>>>> Van: FreeBSD User > > > >>>>> Datum: 13 januari 2024 19:34 > > >>>>> Aan: FreeBSD CURRENT > > > >>>>> Onderwerp: NFSv4 crash of CURRENT > > >>>>> > > >>>>> Hello, > > >>>>> > > >>>>> running CURRENT client (FreeBSD 15.0-CURRENT #4 main-n267556-6974= 8e62e82a=3D > > >>>> : Sat Jan 13 18:08:32 > > >>>>> CET 2024 amd64). One NFSv4 server is same OS revision as the ment= ioned cl=3D > > >>>> ient, other is FreeBSD > > >>>>> 13.2-RELEASE-p8. Both offer NFSv4 filesystems, non-kerberized. > > >>>>> > > >>>>> I can crash the client reproducable by accessing the one or other= NFSv4 F=3D > > >>>> S (a simple ls -la). > > >>>>> The NFSv4 FS is backed by ZFS (if this matters). I do not have ph= ysicla a=3D > > >>>> ccess to the client > > >>>>> host, luckily the box recovers. > > >>>> Did you rebuild both the nfscommon and nfscl modules from the same= sources? > > >>>> I did a commit to main that changes the interface between these tw= o > > >>>> modules and did bump the > > >>>> __FreeBSD_version to 1500010, which should cause both to be rebuil= t. > > >>>> (If you have "options NFSCL" in your kernel config, both should ha= ve > > >>>> been rebuilt as a part of > > >>>> the kernel build.) > > >>>> > > >>> > > >>> Is anyone by chance seeing autofs in the backtrace too? > > >>> > > >>> > > >> > > >> Hello Cy Shubert, > > >> > > >> I forgot to mention that those crashes occur with autofs mounted fil= esystems. Good > > >> question, by the way, I will check whether crashes also happen when = mounting the > > >> tradidional way. > > >> > > >> Kind regards, > > >> > > >> oh > > >> > > >> -- > > >> O. Hartmann > > > > > > > good catch! Don't thank me, thank Kostik. He's already committed the patch. Btw, I didn't look at fixing this because I knew Kostik would fix it before I had it figured out;-) Thanks everyone for reporting it, rick > > -- > O. Hartmann From nobody Mon Jan 15 23:00:06 2024 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 4TDSKQ3TD7z57m6N; Mon, 15 Jan 2024 23:00:26 +0000 (UTC) (envelope-from kob6558@gmail.com) Received: from mail-yb1-xb2a.google.com (mail-yb1-xb2a.google.com [IPv6:2607:f8b0:4864:20::b2a]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1D4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4TDSKP4qs9z49F0; Mon, 15 Jan 2024 23:00:25 +0000 (UTC) (envelope-from kob6558@gmail.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-yb1-xb2a.google.com with SMTP id 3f1490d57ef6-dbed729a51eso7826168276.0; Mon, 15 Jan 2024 15:00:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1705359625; x=1705964425; darn=freebsd.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=PsVXX15UHu4Qcjw0sP4U9EK+cycLKXDb71Uh3W4eg0Y=; b=fMhrHc0Q9eO9Bwxah30GBkr951kcRdG9B3+PU+pmVUWlJDRUJXTa1CZRrpj4apu/RY QllnFcoj23KVF4dXLAqb3qP0S+5JV9XWR1gx7pts9CALHiVKIOxH0MqgShgQjzHajC03 FOATZFV9b4VqERkqx+ejlr2BLh8JgRcYC+/DZjHtQIO3PM45D4Q3TZ47PZhavrgWZdNk DOT03I7BMbokf7CoForSPMTLV/3zh+1zkU7POBmlRf9pzl1ofVoYwrkXHIGEpJbFBEpg rYq44SI6ePF7LH1VFprluxJiHqu6xxgsBL/zmwx6j226olJlKSBqg9bqfsbQmq/QsITv 46Kw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705359625; x=1705964425; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=PsVXX15UHu4Qcjw0sP4U9EK+cycLKXDb71Uh3W4eg0Y=; b=X8H5WdB+F8FxZmhNArxFOyvMM36I380ZpdtAlKQp/10IMVuS/fETNlLSyMfp+W5yqM wIIQHWqodyoeeNmDDwYM5fARWC5/pdEu85DC8qVzxM02ubLV0P1b47i5DUBBZti8cMfX KJBwy8/I8bLz+7fmxVMFi48A7rd2CIcPRk7uzKthRHseFZx6YfueEzXupGmRFVZ2HkMS oBIXvQl+URyPplh13+WBPbIGJR18KkZ/7e9xg+OQ4y3uuD8pj6bl/UoDVanZyL5Sl5qs chxXL0+Yqguk6T9F+mpGcQ8sePidvH2/iCdeH7/VEiBlxomNPernzELN4uU6E6WHhE1W gt9g== X-Gm-Message-State: AOJu0YzwNPtB0YgftiAp9denElQlOK7mEOG28Ie59U03iMW+onAzxdB5 P7pa9hh08vOzUCg1Eui8IlQ7XeGfJQuxybC3AzE= X-Google-Smtp-Source: AGHT+IFIdUYaXMoW24GcjvwS/NypNSOb4pdEavyqA7JXIsk9sZmxgB/E9hQYhHj/5Pw2NcBzKuERrHeJWZlqOTvmUMg= X-Received: by 2002:a05:6902:2204:b0:dbe:30ec:6220 with SMTP id dm4-20020a056902220400b00dbe30ec6220mr3389705ybb.85.1705359622496; Mon, 15 Jan 2024 15:00:22 -0800 (PST) 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 References: In-Reply-To: From: Kevin Oberman Date: Mon, 15 Jan 2024 15:00:06 -0800 Message-ID: Subject: Re: How to upgrade an EOL FreeBSD release or how to make it working again To: Mario Marietto Cc: David Chisnall , Mark Millard , John F Carr , freebsd-arm , freebsd-hackers , FreeBSD Mailing List , "freebsd-xen@freebsd.org" , FreeBSD Current , Warner Losh , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= Content-Type: multipart/alternative; boundary="000000000000836581060f03fa2e" X-Rspamd-Queue-Id: 4TDSKP4qs9z49F0 X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US] --000000000000836581060f03fa2e Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Old packages are not retained after EOL, but ports are version agnostic (more or less, as the current ports tree is only ar tested to run on supported versions and some are marked as "BROKEN" for some versions). All ports are available from the GIT repo (cgit.freebsd.org). On Mon, Jan 15, 2024 at 10:49=E2=80=AFAM Mario Marietto wrote: > Hello. > > Do you have deleted forever the set of packages and ports for FreeBSD 11 > or you keep them stored in DVDs that I can buy or download for a small > amount of money ? If yes,where ? To rebuild everything is out of my > expertise. > > On Mon, Jan 15, 2024 at 7:15=E2=80=AFPM David Chisnall > wrote: > >> On 15 Jan 2024, at 16:46, Mario Marietto wrote: >> > >> > The ARM Chromebook is based on armv7,it is still recent. >> >> For reference, the ARMv7 architecture was introduced in 2005. The last >> cores that implemented the architecture were released in 2014. This is = not >> a =E2=80=98recent=E2=80=99 architecture, it=E2=80=99s one that=E2=80=99s= 19 years old and has been largely >> dead for several years. >> >> > But let's change perspective for a moment,don't think about the ARM >> Chromebook. My question is : how to upgrade FreeBSD when it goes EOL. >> >> Generally, run `freebsd-update`. This is a very different question from >> =E2=80=98how do I do a new install of an old an unsupported version?' >> >> > I ask this because there is a huge difference here between FreeBSD and >> Linux. Today if you need to use , for example Ubuntu 14.0, you can use i= t >> as is. Yes,there will be a lot of bugs,but it will work without crashes. >> But if you want to use an old FreeBSD system,nothing will work for you. >> So,do you know some methods to install even packages or ports ? You >> know,there are cases when you need to do some experiments so that you ca= n >> keep your machine off the internet,so you aren't scared that someone can >> compromise it. Totally prohibiting the users to use an old system,removi= ng >> ports and packages is not a choice that I approve of. And I'm not the on= ly >> one that thinks like this. >> >> If you want to use an old and unsupported version of FreeBSD, no one is >> stopping you, but: >> >> - You will need to build the releases. The source code is still in git= , >> you can. The scripts for building the release images are right there in >> the repo. Just grab the relevant release or releng branch and go. >> >> - You will need to build packages. Newer versions of the ports tree >> will not be tested with the older release, so you may need to use an old= er >> checkout of the ports tree. Poudriere will build a package repo for you= . >> >> In both cases, if you=E2=80=99re using older versions you almost certain= ly *will* >> have security vulnerabilities. The project strongly advises you not to = do >> this and not to blame us when you install known-insecure software and en= d >> up compromised. >> >> The project does not have enough active contributors to keep maintaining >> things indefinitely. This is why release have a five-year supported >> lifetime. If you want to pick up an old branch and maintain it, you=E2= =80=99re >> welcome to. In the past, companies have picked up old branches and >> maintained them for customers that had a dependency on them. If you wan= t >> to pay someone to maintain an old branch (and have deep pockets) then th= ere >> are probably a few companies that will happily take your money. >> >> Maintaining binaries is a slightly different issue, but it=E2=80=99s not= totally >> unrelated. Keeping old packages around consumes disk space and costs th= e >> project money (remember, every package is mirrored across the CDN, so th= is >> isn=E2=80=99t just a single disk). Even if it were free, philosophicall= y, I think >> making it easy for users to install known-insecure software is a bad ide= a >> but if you want to keep a package repo with out-of-date packages online >> indefinitely then you can. You can run Poudriere and even cross-compile >> from a fairly beefy cloud machine quite easily. >> >> It=E2=80=99s been a while since I did a full package build, but I would = guess >> that you could do a single package build (all ports) for about $50 on a >> cloud VM, more (2-3x) if it=E2=80=99s emulated. Storing the results for= a small >> number of users will cost around $10-20/month. If you think this is an >> important thing to do, then you are absolutely welcome to spend your own >> money on doing it. >> >> David >> >> > > -- > Mario. > --=20 Kevin Oberman, Part time kid herder and retired Network Engineer E-mail: rkoberman@gmail.com PGP Fingerprint: D03FB98AFA78E3B78C1694B318AB39EF1B055683 --000000000000836581060f03fa2e Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Old packages are not retained after EOL, but por= ts are version agnostic (more or less, as the current ports tree is only ar= tested to run on supported versions and some are marked as "BROKEN&qu= ot; for some versions). All ports are available from the GIT repo (cgit.freebsd.org).

On Mon, Jan 15= , 2024 at 10:49=E2=80=AFAM Mario Marietto <marietto2008@gmail.com> wrote:
Hello.
<= br>
Do you have deleted forever the set of packages and ports for= FreeBSD 11 or you keep them stored in DVDs that I can buy or download for = a small amount of money ? If yes,where ? To rebuild everything is out of my= expertise.

On Mon, Jan 15, 2024 at 7:15=E2=80=AFPM David Chisnal= l <theraven@fr= eebsd.org> wrote:
On 15 Jan 2024, at 16:46, Mario Marietto <marietto2008@gmail.com> wro= te:
>
> The ARM Chromebook is based on armv7,it is still recent.

For reference, the ARMv7 architecture was introduced in 2005.=C2=A0 The las= t cores that implemented the architecture were released in 2014.=C2=A0 This= is not a =E2=80=98recent=E2=80=99 architecture, it=E2=80=99s one that=E2= =80=99s 19 years old and has been largely dead for several years.

> But let's change perspective for a moment,don't think about th= e ARM Chromebook. My question is : how to upgrade FreeBSD when it goes EOL.=

Generally, run `freebsd-update`.=C2=A0 This is a very different question fr= om =E2=80=98how do I do a new install of an old an unsupported version?'= ;

> I ask this because there is a huge difference here between FreeBSD and= Linux. Today if you need to use , for example Ubuntu 14.0, you can use it = as is. Yes,there will be a lot of bugs,but it will work without crashes.=C2= =A0 But if you want to use an old FreeBSD system,nothing will work for you.= So,do you know some methods to install even packages or ports ? You know,t= here are cases when you need to do some experiments so that you can keep yo= ur machine off the internet,so you aren't scared that someone can compr= omise it. Totally prohibiting the users to use an old system,removing ports= and packages is not a choice that I approve of. And I'm not the only o= ne that thinks like this.

If you want to use an old and unsupported version of FreeBSD, no one is sto= pping you, but:

=C2=A0- You will need to build the releases.=C2=A0 The source code is still= in git, you can.=C2=A0 The scripts for building the release images are rig= ht there in the repo.=C2=A0 Just grab the relevant release or releng branch= and go.

=C2=A0- You will need to build packages.=C2=A0 Newer versions of the ports = tree will not be tested with the older release, so you may need to use an o= lder checkout of the ports tree.=C2=A0 Poudriere will build a package repo = for you.=C2=A0

In both cases, if you=E2=80=99re using older versions you almost certainly = *will* have security vulnerabilities.=C2=A0 The project strongly advises yo= u not to do this and not to blame us when you install known-insecure softwa= re and end up compromised.

The project does not have enough active contributors to keep maintaining th= ings indefinitely.=C2=A0 This is why release have a five-year supported lif= etime.=C2=A0 If you want to pick up an old branch and maintain it, you=E2= =80=99re welcome to.=C2=A0 In the past, companies have picked up old branch= es and maintained them for customers that had a dependency on them.=C2=A0 I= f you want to pay someone to maintain an old branch (and have deep pockets)= then there are probably a few companies that will happily take your money.=

Maintaining binaries is a slightly different issue, but it=E2=80=99s not to= tally unrelated.=C2=A0 Keeping old packages around consumes disk space and = costs the project money (remember, every package is mirrored across the CDN= , so this isn=E2=80=99t just a single disk).=C2=A0 Even if it were free, ph= ilosophically, I think making it easy for users to install known-insecure s= oftware is a bad idea but if you want to keep a package repo with out-of-da= te packages online indefinitely then you can.=C2=A0 You can run Poudriere a= nd even cross-compile from a fairly beefy cloud machine quite easily.

It=E2=80=99s been a while since I did a full package build, but I would gue= ss that you could do a single package build (all ports) for about $50 on a = cloud VM, more (2-3x) if it=E2=80=99s emulated.=C2=A0 Storing the results f= or a small number of users will cost around $10-20/month.=C2=A0 If you thin= k this is an important thing to do, then you are absolutely welcome to spen= d your own money on doing it.

David



--
Mario.


--
Kevin= Oberman, Part time kid herder and retired Network Engineer
E-mail: rkoberman@gmail.com
--000000000000836581060f03fa2e-- From nobody Tue Jan 16 17:18:08 2024 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 4TDwhG6c7fz57f3J for ; Tue, 16 Jan 2024 17:18:22 +0000 (UTC) (envelope-from bsd-lists@bsdforge.com) Received: from udns.ultimatedns.net (udns.ultimatedns.net [24.113.41.81]) (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-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "ultimatedns.net", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4TDwhG2PQ7z4k4F; Tue, 16 Jan 2024 17:18:22 +0000 (UTC) (envelope-from bsd-lists@bsdforge.com) Authentication-Results: mx1.freebsd.org; dkim=none; spf=none (mx1.freebsd.org: domain of bsd-lists@bsdforge.com has no SPF policy when checking 24.113.41.81) smtp.mailfrom=bsd-lists@bsdforge.com Received: from ultimatedns.net (localhost [127.0.0.1]) by udns.ultimatedns.net (8.16.1/8.16.1) with ESMTP id 40GHI9rA085313; Tue, 16 Jan 2024 09:18:15 -0800 (PST) (envelope-from bsd-lists@bsdforge.com) 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 Date: Tue, 16 Jan 2024 09:18:08 -0800 From: Chris To: Olivier Certner Cc: freebsd-current@freebsd.org Subject: Re: noatime on ufs2 In-Reply-To: <6714298.qJWK8QVVMX@ravel> References: <2eabfb91-afc3-47f7-98b9-1a1791ae6e7d@app.fastmail.com> <6714298.qJWK8QVVMX@ravel> User-Agent: UDNSMS/17.0 Message-ID: <9155214edb61b1bc3bad3bc96f96e22b@bsdforge.com> X-Sender: bsd-lists@bsdforge.com Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 4TDwhG2PQ7z4k4F X-Spamd-Bar: / X-Rspamd-Pre-Result: action=no action; module=multimap; Matched map: local_wl_ip X-Spamd-Result: default: False [0.00 / 15.00]; MIME_GOOD(-0.10)[text/plain]; ONCE_RECEIVED(0.10)[]; R_SPF_NA(0.00)[no SPF record]; local_wl_ip(0.00)[24.113.41.81]; R_DKIM_NA(0.00)[]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; FROM_EQ_ENVFROM(0.00)[]; ASN(0.00)[asn:11404, ipnet:24.113.0.0/16, country:US]; FROM_HAS_DN(0.00)[]; MIME_TRACE(0.00)[0:+] On 2024-01-09 00:47, Olivier Certner wrote: >> Why not make noatime the default across the whole system? Outside of mbox >> why is recording access time actually useful? > > Exactly. > > I've never found any compelling reason in most uses to enable "atime", > except > perhaps local mail but as addressed in other answers it is a relic of the > past > mostly irrelevant today. And its drawbacks are well known and can be > serious. > > The auditing use is not what I consider "normal" in the sense I suspect it > concerns a small minority of users (maybe even tiny). Plus, serious > auditing > requires keeping a log (generally immutable) of accesses, i.e., more than a > single > time and, as pointed out in another answer, at least the ID of the user > performing > the access. Updating the access time field on files/directories doesn't > address > both. > > What "relatime" only gives you is a guarantee that you know that some file > has > been accessed at some point after its last modification (or creation), and > that > the access time is correct if precision is only a day. It also generally > lowers > I/O obviously, but not in some scenarios (file creation and subsequent > read). > > So, to me, at this point, it still sounds more than a gimmick than something > really useful. If someone has a precise use case for it and motivation, > than of > course please go ahead. > > In the short term, I'd vote for turning "atime" off by default. > > Thanks and regards. Honestly! Why do we have to upend decades of usage and understanding? Just because it's old doesn't mean it's wrong. Several weeks of replies confirm my initial belief -- atime as it is currently implemented, is as it should be. Administrators and users have spent years to decades finessing their systems and policies based on the way the OS works. In fact administrators and users *pick* their OS based on the way it works. In the case of atime; decades of scripting/policy and utilities have been created based upon the it's expected behavior on any given OS. I haven't seen anything in this thread that wouldn't be better placed in tuning(7) or tunefs(8). * Silicon disks fail without warning tapes did as well. Unless you're working with punch cards please implement an effective backup strategy -- snapshot(8) * writing to my disk takes a long time see tuning(7) or tunefs(8) * atime doesn't work like "realtime" does on Linux use Linux instead or add the ability to also use realtime Security and forensics are good reasons to keep atime unchanged. Any discussion regarding changes to it's current behavior seems folly or bikeshedding. Apologies for the "attitude". --Chris From nobody Tue Jan 16 18:29:06 2024 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 4TDyG82RQzz57mgj for ; Tue, 16 Jan 2024 18:29:20 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com [IPv6:2a00:1450:4864:20::532]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1D4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4TDyG757bKz4vKJ for ; Tue, 16 Jan 2024 18:29:19 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bsdimp-com.20230601.gappssmtp.com header.s=20230601 header.b=kDO3Kfe2; dmarc=none; spf=none (mx1.freebsd.org: domain of wlosh@bsdimp.com has no SPF policy when checking 2a00:1450:4864:20::532) smtp.mailfrom=wlosh@bsdimp.com Received: by mail-ed1-x532.google.com with SMTP id 4fb4d7f45d1cf-55818b733f7so9339929a12.3 for ; Tue, 16 Jan 2024 10:29:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20230601.gappssmtp.com; s=20230601; t=1705429758; x=1706034558; darn=freebsd.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=qymr0oR4gSqMLLkNvsQV5Esad4lDVw9KlGVgaTNGV5w=; b=kDO3Kfe2jkyYmJXSSI37zvGOFF07eXDiAz8K0SYnjdnVQLtAHthhXxkXJi/SeyKbcf +I2R3adFdN4t1x2byOgBW/mg/APjo0Q6TL4AMYK9Gbd+14nyQG/wgvYPvF2eugdmXD55 lpcDiXVCGooNme5C74zh1989t8QHzhVIqPOV7uojHbyWu9ChIy7L48Z5ebd1LvAjgCnD PXdKphTIAjbeFsEtd/aQObBXiiL12/ykoxd7V7KCoQWIcl+gWtIvPOmhVVloN0z94M9D 8bJJPzExSE24vMm5vMCeqgRia2CFLhONG/lpXhCBCXM6oIYaQn2QR3zHJHMoHXnWdxGB bywg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705429758; x=1706034558; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=qymr0oR4gSqMLLkNvsQV5Esad4lDVw9KlGVgaTNGV5w=; b=paI7CkO1kTtRer0KonE7RB6CG03KO0/wytk9Y6SB4AFXfovbOAdMSK3EkBCt1jU/80 gTWvpau8z+d3xU9erx7cJI2/w9bQbP0/gnyo+1iHdi6zW+hjuZh72QgjmPYnmShEWkgd uqcJ1yRb43hVjyyxP/qKRcc1mCf5ZGEBKzA7wO4G5VXJsUG41698C7PJhuerNft9UNmg y7HNPE3biLUAk8KqIpmmg0+XQfOTsTFcw278hLoCkqeI6MLNPVRChCSBKmh7FHWRzcyl ZeCBQmyNS73Z8FxHIxLhlvYHK25IqWlvu7hqjjoHDcG+mb6NPHSLYYEFRXJdSq/7tzT+ YPMw== X-Gm-Message-State: AOJu0Yx/N5O4u6r9gQYCUgZ/6fwaxylly6aoYo9so0Q177ApEqRLCPz6 aab81X4ufg7lU7IdVAfat0P4OXFZBZ3qLv0pCY9vlajh8UGpTJsLANP/HKCnHCk= X-Google-Smtp-Source: AGHT+IEfb1+p07RS4PKF62qlPwf2VZBuJFNafnNLOl+FoFhlyxp8ECRIdzY5jqzDnUWHkim3BuhnahNWso68IQFQsK4= X-Received: by 2002:a17:907:36c8:b0:a27:6615:1653 with SMTP id bj8-20020a17090736c800b00a2766151653mr4830926ejc.34.1705429757698; Tue, 16 Jan 2024 10:29:17 -0800 (PST) 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 References: In-Reply-To: From: Warner Losh Date: Tue, 16 Jan 2024 11:29:06 -0700 Message-ID: Subject: Re: suspend to idle support To: Oleksandr Kryvulia Cc: freebsd-current@freebsd.org Content-Type: multipart/alternative; boundary="000000000000e5b7ce060f144ee5" X-Spamd-Bar: -- X-Spamd-Result: default: False [-3.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-1.000]; FORGED_SENDER(0.30)[imp@bsdimp.com,wlosh@bsdimp.com]; R_DKIM_ALLOW(-0.20)[bsdimp-com.20230601.gappssmtp.com:s=20230601]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; RCVD_COUNT_ONE(0.00)[1]; MIME_TRACE(0.00)[0:+,1:+,2:~]; ARC_NA(0.00)[]; TO_DN_SOME(0.00)[]; MISSING_XM_UA(0.00)[]; R_SPF_NA(0.00)[no SPF record]; DMARC_NA(0.00)[bsdimp.com]; RCPT_COUNT_TWO(0.00)[2]; FROM_NEQ_ENVFROM(0.00)[imp@bsdimp.com,wlosh@bsdimp.com]; FROM_HAS_DN(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[2a00:1450:4864:20::532:from]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_TLS_LAST(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[freebsd-current@freebsd.org]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; DKIM_TRACE(0.00)[bsdimp-com.20230601.gappssmtp.com:+] X-Rspamd-Queue-Id: 4TDyG757bKz4vKJ --000000000000e5b7ce060f144ee5 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Jan 15, 2024 at 10:24=E2=80=AFAM Oleksandr Kryvulia wrote: > Hello, > What is a status of support suspend to idle? I found only two related > reviews D17675 and D17676 and no more any information. It is a very > desirable thing on modern laptops, where s3 is not supported like my X1 > Carbon gen11[1]. > > [1] https://wiki.freebsd.org/Laptops/Thinkpad_X1_Carbon > It works for me on my Lenovo Yoga that's a couple of years old, modulo the build-in wifi card. Warner --000000000000e5b7ce060f144ee5 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable

=20 =20 =20
Hello,
What is a status of support suspend to idle? I found only two related reviews D17675 and D17676= and no more any information. It is a very desirable thing on modern laptops, where s3 is not supported like my X1 Carbon gen11[1].

[1] https://wiki.freebsd.org/Laptops/Thinkpad_X1_Carbon<= /span>

It works for me on my L= enovo Yoga that's a couple of years old, modulo the build-in wifi card.=

Warner=C2=A0
--000000000000e5b7ce060f144ee5-- From nobody Tue Jan 16 18:55:10 2024 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 4TDyr90xPtz57q5m for ; Tue, 16 Jan 2024 18:55:21 +0000 (UTC) (envelope-from shuriku@shurik.kiev.ua) Received: from mail.flex-it.com.ua (mail.flex-it.com.ua [193.239.74.7]) (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 4TDyr82SR7z527G for ; Tue, 16 Jan 2024 18:55:20 +0000 (UTC) (envelope-from shuriku@shurik.kiev.ua) Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of shuriku@shurik.kiev.ua designates 193.239.74.7 as permitted sender) smtp.mailfrom=shuriku@shurik.kiev.ua Received: from 93.183.208.50.ipv4.datagroup.ua ([93.183.208.50] helo=[192.168.200.105]) by mail.flex-it.com.ua with esmtpsa (TLS1.3) tls TLS_AES_128_GCM_SHA256 (Exim 4.96.2 (FreeBSD)) (envelope-from ) id 1rPoad-000LfX-0T for freebsd-current@freebsd.org; Tue, 16 Jan 2024 20:55:11 +0200 Content-Type: multipart/alternative; boundary="------------eFYiduk6X4gqG1rswTrI0HB3" Message-ID: <69efb2e1-bbb0-4f81-abd8-847744921831@shurik.kiev.ua> Date: Tue, 16 Jan 2024 20:55:10 +0200 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 User-Agent: Mozilla Thunderbird Subject: Re: suspend to idle support To: freebsd-current@freebsd.org References: Content-Language: uk-UA From: Oleksandr Kryvulia In-Reply-To: X-ACL-Warn: SPF failed. 93.183.208.50 is not allowed to send mail from shurik.kiev.ua. X-Spamd-Bar: --- X-Spamd-Result: default: False [-3.29 / 15.00]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-0.997]; R_SPF_ALLOW(-0.20)[+mx]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; XM_UA_NO_VERSION(0.01)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; RCVD_COUNT_ONE(0.00)[1]; ASN(0.00)[asn:35297, ipnet:193.239.72.0/22, country:UA]; MIME_TRACE(0.00)[0:+,1:+,2:~]; RCVD_TLS_ALL(0.00)[]; R_DKIM_NA(0.00)[]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; TO_DN_NONE(0.00)[]; DMARC_NA(0.00)[shurik.kiev.ua]; TO_MATCH_ENVRCPT_ALL(0.00)[]; ARC_NA(0.00)[] X-Rspamd-Queue-Id: 4TDyr82SR7z527G This is a multi-part message in MIME format. --------------eFYiduk6X4gqG1rswTrI0HB3 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit 16.01.24 20:29, Warner Losh: > > On Mon, Jan 15, 2024 at 10:24 AM Oleksandr Kryvulia > wrote: > > Hello, > What is a status of support suspend to idle? I found only two > related reviews D17675 and D17676 and no more any information. It > is a very desirable thing on modern laptops, where s3 is not > supported like my X1 Carbon gen11[1]. > > [1] https://wiki.freebsd.org/Laptops/Thinkpad_X1_Carbon > > > It works for me on my Lenovo Yoga that's a couple of years old, modulo > the build-in wifi card. On my X1: hw.acpi.supported_sleep_state: S4 S5 So no S3 state and no suspend-resume support. The erlier versions have a settings in BIOS which allow to enable S3 support, but not mine. Can you share your experience with how you set it up? --------------eFYiduk6X4gqG1rswTrI0HB3 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit 16.01.24 20:29, Warner Losh:

On Mon, Jan 15, 2024 at 10:24 AM Oleksandr Kryvulia <shuriku@shurik.kiev.ua> wrote:
Hello,
What is a status of support suspend to idle? I found only two related reviews D17675 and D17676 and no more any information. It is a very desirable thing on modern laptops, where s3 is not supported like my X1 Carbon gen11[1].

[1] https://wiki.freebsd.org/Laptops/Thinkpad_X1_Carbon

It works for me on my Lenovo Yoga that's a couple of years old, modulo the build-in wifi card.

On my X1:
hw.acpi.supported_sleep_state: S4 S5

So no S3 state and no suspend-resume support. The erlier versions have a settings in BIOS which allow to enable S3 support, but not mine. Can you share your experience with how you set it up?


--------------eFYiduk6X4gqG1rswTrI0HB3-- From nobody Tue Jan 16 19:28:27 2024 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 4TDzZn4NmPz57svl for ; Tue, 16 Jan 2024 19:28:49 +0000 (UTC) (envelope-from zarychtam@plan-b.pwste.edu.pl) Received: from plan-b.pwste.edu.pl (plan-b.pwste.edu.pl [IPv6:2001:678:618::40]) (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-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "plan-b.pwste.edu.pl", Issuer "GEANT OV RSA CA 4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4TDzZm0QNpz40Qm for ; Tue, 16 Jan 2024 19:28:47 +0000 (UTC) (envelope-from zarychtam@plan-b.pwste.edu.pl) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=plan-b.pwste.edu.pl header.s=plan-b-mailer header.b=P2KulJ1F; dmarc=pass (policy=quarantine) header.from=plan-b.pwste.edu.pl; spf=pass (mx1.freebsd.org: domain of zarychtam@plan-b.pwste.edu.pl designates 2001:678:618::40 as permitted sender) smtp.mailfrom=zarychtam@plan-b.pwste.edu.pl Received: from [IPV6:2a02:22e0:cf00:1ff:64bc:b3b7:586:704a] (mzar@[IPv6:2a02:22e0:cf00:1ff:64bc:b3b7:586:704a]) (authenticated bits=0) by plan-b.pwste.edu.pl (8.17.2/8.17.2) with ESMTPSA id 40GJSS0E027622 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO); Tue, 16 Jan 2024 20:28:28 +0100 (CET) (envelope-from zarychtam@plan-b.pwste.edu.pl) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=plan-b.pwste.edu.pl; s=plan-b-mailer; t=1705433310; bh=gvI6QB8RZCq74RtXHOKeiSdI3V0oTqYqWQEdOI6sp88=; h=Date:Subject:To:Cc:References:From:In-Reply-To; b=P2KulJ1F89AV9iaQ1F1tCI5XqtxhTzJVDRfr3iqJ4ZwB2xDGt+0fTqyzXmAtY6H7c c9Ixxyt3fqmnoqp5mBmEVeDyXfcwAoRRSR1YMcALMSWPVYbaQtFrJtfHRhpom1s+NH XfAIp4jkxzoQE5EgPPy7Is2zS+0FNs9aOkAVKfTaGqLz4KGD7bTjeEzXL1pOwXlV2s +DbdZ8/wWpjT9w6TKdKpa9UK6twRUmWxrLoyWilPj6iyMdqwVV0d3vhy1r8nBcj7IQ K1GXgLs+scb156XkCqy59o6tJV5aiG8GS4BM+SG5cURPkFbJrdKVNvimL8K8V3GP58 z2tEc4Dt8s5OQ== Message-ID: <5e3c7603-334d-4a99-a081-0f36855f837f@plan-b.pwste.edu.pl> Date: Tue, 16 Jan 2024 20:28:27 +0100 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 User-Agent: Mozilla Thunderbird Subject: Re: Request for Testing: TCP RACK To: tuexen@fh-muenster.de Cc: freebsd-current@freebsd.org References: <42C327BD-6CE4-43AA-A1AE-3BEC08D623DB@freebsd.org> <23ABFA3C-6496-4479-B425-9061515BAA78@fh-muenster.de> Content-Language: en-US From: Marek Zarychta Autocrypt: addr=zarychtam@plan-b.pwste.edu.pl; keydata= xsBNBFfi3cMBCADLecMTFXad4uDXqv3eRuB4qJJ8G9tzzFezeRnnwxOsPdytW5ES2z1ibSrR IsiImx6+PTqrAmXpTInxAi7yiZGdSiONRI4CCxKY9d1YFiNYT/2WyNXCekm9x29YeIU7x0JB Llbz0f/9HC+styBIu2H+PY/X98Clzm110CS+n/b9l1AtiGxTiVFj7/uavYAKxH6LNWnbkuc5 v8EVNc7NkEcl5h7Z9X5NEtzDxTOiBIFQ/kOT7LAtkYUPo1lqLeOM2DtWSXTXQgXl0zJI4iP1 OAu4qQYm2nXwq4b2AH9peknelvnt1mpfgDCGSKnhc26q6ibTfMwydp+tvUtQIQYpA6b9ABEB AAHNN01hcmVrIFphcnljaHRhIChQbGFuLWIpIDx6YXJ5Y2h0YW1AcGxhbi1iLnB3c3RlLmVk dS5wbD7CwHcEEwEIACEFAlfi4LkCGwMFCwkIBwIGFQgJCgsCBBYCAwECHgECF4AACgkQHZW8 vIFppoJXdgf8D9X3VRFSNaR9lthSx/+uqas17J3FJKBo1xMQsC2a+44vzNvYJSuPGLLJ+LW2 HPVazjP/BWZJbxOYpliY4zxNRU0YCp0BLIVLibc//yax+mE42FND/+NiIZhqJscl6MLPrSwo sIwXec4XYkldkyqW/xBbBYXoIkBqdKB9j5j42Npy1IV/RizOSdmvTWY27ir8e/yGMR1RLr4F 8P5K3OWTdlGy2H2F/3J8bIPBLG6FpaIyLQw4dHSx8V02PYqDxK1cNo2kAOnU8PnZL/AGuMOH iv3MN1VYL8ehcmpBBsrZGebQJxrjY2/5IaTSgp9xHYT70kshuU6Qb97vk1mOjNZxgc7ATQRX 4t3DAQgA10h6RCXuBLMHxq5B8X/ZIlj9sgLoeyfRdDZEc9rT2KUeUJVHDsbvOFf4/7F1ovWY hJbA6GK/LUZeHHTjnbZcH1uDYQeHly4UOLxeEvhGoz4JhS2C7JzN/uRnwbdOAUbJr8rUj/IY a7gk906rktsc/Ldrxrxh7O6WO0JCh2XO/p4pDfEwwB37g4xHprSab28ECYJ9JMbtA8Sy4M55 g3+GQ28FvSlGnx48OoGXU2BZdc1vZKSQmNOlikB+9/hDX8zdYWVfDaX1TLQ8Ib4+xTUmapza mV/bxIsaZRBw+jFjLQHhTbIMfPEU+4mxFDvTdbKPruKPqVf1ydgMnPZWngowdwARAQABwsBf BBgBCAAJBQJX4t3DAhsMAAoJEB2VvLyBaaaC6qkIAJs9sDPqrqW0bYoRfzY6XjDWQ59p9tJi v8aogxacQNCfAu+WkJ8PNVUtC1dlVcG5NnZ80gXzd1rc8ueIvXlvdanUt/jZd8jbb3gaDbK3 wh1yMCGBl/1fOJTyEGYv1CRojv97KK89KP5+r8x1P1iHcSrunlDNqGxTMydNCwBH23QcOM+m u4spKnJ/s0VRBkw3xoKBZfZza6fTQ4gTpAipjyk7ldOGBV+PvkKATdhK2yLwuWXhKbg/GRlD 1r5P0gxzSqfV4My+KJuc2EDcrqp1y0wOpE1m9iZqCcd0fup5f7HDsYlLWshr7NQl28f6+fQb sylq/j672BHXsdeqf/Ip9V4= In-Reply-To: <23ABFA3C-6496-4479-B425-9061515BAA78@fh-muenster.de> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spamd-Bar: --- X-Spamd-Result: default: False [-3.89 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-0.997]; DMARC_POLICY_ALLOW(-0.50)[plan-b.pwste.edu.pl,quarantine]; R_SPF_ALLOW(-0.20)[+mx]; R_DKIM_ALLOW(-0.20)[plan-b.pwste.edu.pl:s=plan-b-mailer]; MIME_GOOD(-0.10)[text/plain]; ONCE_RECEIVED(0.10)[]; XM_UA_NO_VERSION(0.01)[]; RCVD_COUNT_ONE(0.00)[1]; RCVD_VIA_SMTP_AUTH(0.00)[]; ASN(0.00)[asn:206006, ipnet:2001:678:618::/48, country:PL]; MIME_TRACE(0.00)[0:+]; ARC_NA(0.00)[]; RCVD_TLS_ALL(0.00)[]; RCPT_COUNT_TWO(0.00)[2]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; FROM_HAS_DN(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_NONE(0.00)[]; DKIM_TRACE(0.00)[plan-b.pwste.edu.pl:+] X-Rspamd-Queue-Id: 4TDzZm0QNpz40Qm W dniu 17.11.2023 o 00:13, tuexen@fh-muenster.de pisze: >> On Nov 16, 2023, at 17:50, Marek Zarychta wrote: >> >> W dniu 16.11.2023 o 10:13, tuexen@freebsd.org pisze: >>> Dear all, >>> >>> recently the main branch was changed to build the TCP RACK stack >>> which is a loadable kernel module, by default: >>> https://cgit.FreeBSD.org/src/commit/?id=3a338c534154164504005beb00a3c6feb03756cc >> That's really good news and long-awaited change. Thank you. >>> As discussed on the bi-weekly transport call, it would be great if people >>> could test the RACK stack for their workload. Please report any problems to the >>> net@ mailing list or open an issue in the bug tracker and drop me a note via email. >>> This includes regressions in CPU usage, regressions in performance or any other >>> unexpected change you observe. >>> >>> You can load the kernel module using >>> kldload tcp_rack >>> >>> You can make the RACK stack the default stack using >>> sysctl net.inet.tcp.functions_default=rack >>> >>> Based on the feedback we get, the default stack might be switched to the >>> RACK stack. >> Yes, please do it, at least for CURRENT. Last problem I have spotted with RACK was fixed in June: it was missing support TCP-MD5: >> https://cgit.freebsd.org/src/commit/?id=02b885b09d1e90574162a1442b9ede06cef2b13a >> We switched to RACK since upgrading to early stable/13 and genuinely appreciate this gift from Netflix. The performance improvement is invaluable, both in a lossy LAN and on a long-haul overseas TCP connection. >>> Please let me know if you have any questions. >> Are any MFCs planned, especially to stable/14 ? Now, when stable/14 is almost in sync with main aka CURRENT it's an optimal time for such a MFC. When the change hits stable/14, it would be possible to test it extensively and have it fully functional in 14.1-RELEASE. > Let me bring that up on the next Transport call. Will report back. > > Best regards > Michael Thank you ! From now on stable/14 and in the future on 14.1-RELEASE one will be able to load tcp_rack and tcp_bbr out of the box running GENERIC kernel.[1] 1. https://cgit.freebsd.org/src/commit/?id=123fd2a -- Marek Zarychta From nobody Tue Jan 16 23:02:48 2024 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 4TF4Kv2qvfz58DsX for ; Tue, 16 Jan 2024 23:02:59 +0000 (UTC) (envelope-from steffen@sdaoden.eu) Received: from sdaoden.eu (sdaoden.eu [217.144.132.164]) (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 4TF4Kv0f07z4M78; Tue, 16 Jan 2024 23:02:59 +0000 (UTC) (envelope-from steffen@sdaoden.eu) Authentication-Results: mx1.freebsd.org; none Date: Wed, 17 Jan 2024 00:02:48 +0100 Author: Steffen Nurpmeso From: Steffen Nurpmeso To: Chris Cc: Olivier Certner , freebsd-current@freebsd.org Subject: Re: noatime on ufs2 Message-ID: <20240116230248.Rf6LfoWs@steffen%sdaoden.eu> In-Reply-To: <9155214edb61b1bc3bad3bc96f96e22b@bsdforge.com> References: <2eabfb91-afc3-47f7-98b9-1a1791ae6e7d@app.fastmail.com> <6714298.qJWK8QVVMX@ravel> <9155214edb61b1bc3bad3bc96f96e22b@bsdforge.com> Mail-Followup-To: Chris , Olivier Certner , freebsd-current@freebsd.org User-Agent: s-nail v14.9.24-588-g826cef48a3 OpenPGP: id=EE19E1C1F2F7054F8D3954D8308964B51883A0DD; url=https://ftp.sdaoden.eu/steffen.asc; preference=signencrypt BlahBlahBlah: Any stupid boy can crush a beetle. But all the professors in the world can make no bugs. X-Rspamd-Queue-Id: 4TF4Kv0f07z4M78 X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:15987, ipnet:217.144.128.0/20, country:DE] 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 Chris wrote in <9155214edb61b1bc3bad3bc96f96e22b@bsdforge.com>: ... |I haven't seen anything in this thread that wouldn't be better placed in |tuning(7) |or tunefs(8). | |* Silicon disks fail without warning | tapes did as well. Unless you're working with punch cards please \ | implement |an | effective backup strategy -- snapshot(8) |* writing to my disk takes a long time | see tuning(7) or tunefs(8) |* atime doesn't work like "realtime" does on Linux | use Linux instead or add the ability to also use realtime 'Seems to me from a "git grep" that ZFS supports relatime. The number of atime matches for ufs is not that horrifying either. Sure the daily disc crawler touches anything, as was said, so relatime does not help once. For that the crawlers (locate, whatis, whatever) would need to use O_NOATIME, but FreeBSD says /* XXX LINUX_O_NOATIME: unable to be easily implemented. */, so that sucks. Maybe then noatime is the better way out. Having said that, i have never tried it, whether nullfs overmount for the crawlers would get over that. Would be a good thing i'd say, for jailed servers or what. --steffen | |Der Kragenbaer, The moon bear, |der holt sich munter he cheerfully and one by one |einen nach dem anderen runter wa.ks himself off |(By Robert Gernhardt) From nobody Wed Jan 17 00:48:00 2024 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 4TF6gF3vKHz56RpG for ; Wed, 17 Jan 2024 00:48:09 +0000 (UTC) (envelope-from bsd-lists@bsdforge.com) Received: from udns.ultimatedns.net (udns.ultimatedns.net [24.113.41.81]) (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-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "ultimatedns.net", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4TF6gD3nCHz4Xw4 for ; Wed, 17 Jan 2024 00:48:08 +0000 (UTC) (envelope-from bsd-lists@bsdforge.com) Authentication-Results: mx1.freebsd.org; dkim=none; spf=none (mx1.freebsd.org: domain of bsd-lists@bsdforge.com has no SPF policy when checking 24.113.41.81) smtp.mailfrom=bsd-lists@bsdforge.com Received: from ultimatedns.net (localhost [127.0.0.1]) by udns.ultimatedns.net (8.16.1/8.16.1) with ESMTP id 40H0m0t0085142 for ; Tue, 16 Jan 2024 16:48:06 -0800 (PST) (envelope-from bsd-lists@bsdforge.com) 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 Date: Tue, 16 Jan 2024 16:48:00 -0800 From: Chris To: freebsd-current Subject: Alder lake supported? (graphics) User-Agent: UDNSMS/17.0 Message-ID: X-Sender: bsd-lists@bsdforge.com Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 4TF6gD3nCHz4Xw4 X-Spamd-Bar: / X-Rspamd-Pre-Result: action=no action; module=multimap; Matched map: local_wl_ip X-Spamd-Result: default: False [0.00 / 15.00]; ONCE_RECEIVED(0.10)[]; MIME_GOOD(-0.10)[text/plain]; local_wl_ip(0.00)[24.113.41.81]; R_SPF_NA(0.00)[no SPF record]; ASN(0.00)[asn:11404, ipnet:24.113.0.0/16, country:US]; R_DKIM_NA(0.00)[]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; PREVIOUSLY_DELIVERED(0.00)[freebsd-current@freebsd.org]; MIME_TRACE(0.00)[0:+]; FROM_HAS_DN(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; SUBJECT_HAS_QUESTION(0.00)[] I upgraded to an alder lake based machine and installed 14. But I can't seem to get the intel graphics loaded (drm-515-kmod). It simply freezes at load. Are Alder lake graphics supported? releng/14.0-n265380-f9716eee8ab4 12th Gen Intel(R) Core(TM) i3-1215U vgapci0@pci0:0:2:0: class=0x030000 rev=0x0c hdr=0x00 vendor=0x8086 device=0x46b3 subvendor=0x17aa subdevice=0x3b3a vendor = 'Intel Corporation' device = 'Alder Lake-UP3 GT1 [UHD Graphics]' class = display subclass = VGA Thanks for any clues here. :-) --Chris From nobody Wed Jan 17 01:31:02 2024 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 4TF7cv0MNkz56X0p for ; Wed, 17 Jan 2024 01:31:11 +0000 (UTC) (envelope-from groenveld@acm.org) Received: from mail.groenveld.us (mail.groenveld.us [207.68.114.134]) (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 4TF7cs5CbHz4cZT for ; Wed, 17 Jan 2024 01:31:09 +0000 (UTC) (envelope-from groenveld@acm.org) Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=fail reason="No valid SPF, No valid DKIM" header.from=acm.org (policy=none); spf=softfail (mx1.freebsd.org: 207.68.114.134 is neither permitted nor denied by domain of groenveld@acm.org) smtp.mailfrom=groenveld@acm.org Received: from mail.groenveld.us (localhost [127.0.0.1]) by mail.groenveld.us (8.14.4+Sun/8.14.4) with ESMTP id 40H1V2fu014512 for ; Tue, 16 Jan 2024 20:31:02 -0500 (EST) Message-Id: <202401170131.40H1V2fu014512@groenveld.us> From: John D Groenveld X-uri: To: freebsd-current Subject: Re: Alder lake supported? (graphics) In-reply-to: Your message of "Tue, 16 Jan 2024 16:48:00 -0800." References: 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-ID: <14510.1705455062.1@mail.groenveld.us> Date: Tue, 16 Jan 2024 20:31:02 -0500 X-Spamd-Bar: - X-Spamd-Result: default: False [-1.83 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.996]; NEURAL_HAM_LONG(-0.99)[-0.992]; NEURAL_SPAM_SHORT(0.16)[0.163]; DMARC_POLICY_SOFTFAIL(0.10)[acm.org : No valid SPF, No valid DKIM,none]; MIME_GOOD(-0.10)[text/plain]; RCPT_COUNT_ONE(0.00)[1]; ASN(0.00)[asn:701, ipnet:207.68.96.0/19, country:US]; RCVD_COUNT_ONE(0.00)[1]; RCVD_TLS_LAST(0.00)[]; MISSING_XM_UA(0.00)[]; MIME_TRACE(0.00)[0:+]; FROM_HAS_DN(0.00)[]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; ARC_NA(0.00)[]; R_SPF_SOFTFAIL(0.00)[~all]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[freebsd-current@freebsd.org]; TO_DN_ALL(0.00)[]; SUBJECT_HAS_QUESTION(0.00)[] X-Rspamd-Queue-Id: 4TF7cs5CbHz4cZT In message , Chris writes: >I upgraded to an alder lake based machine and installed 14. >But I can't seem to get the intel graphics loaded (drm-515-kmod). >It simply freezes at load. Shot in the dark: # pkg delete drm-515-kmod && pkg install drm-510-kmod && kldload i915kms John groenveld@acm.org From nobody Wed Jan 17 03:02:21 2024 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 4TF9f92T4tz56hkJ for ; Wed, 17 Jan 2024 03:02:25 +0000 (UTC) (envelope-from jbeich@freebsd.org) Received: from freefall.freebsd.org (freefall.freebsd.org [96.47.72.132]) (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-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "freefall.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4TF9f91w5tz4lQZ; Wed, 17 Jan 2024 03:02:25 +0000 (UTC) (envelope-from jbeich@freebsd.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1705460545; 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: in-reply-to:in-reply-to:references:references; bh=zALtXquubVf12GVK42wBAzGrzjHbniBVzHS0w0Uo31Q=; b=e8ldXY3mvoHVeIBeVP86aGctF+2WKQ9SYXoP+t/1exOa5zWgEk+Q0lCM8WbCOHb68lmjqf a9p98O1zoy3LFmMf43CAhl71MmUntXx6X0KG4MEswLnKlgctPUtwD2Ih0n0+N69EBzgGhu Jb2eeZI4kmb+0OManVfg+OTrQiCAwi2ZorSUv1BVJqv8GeeumMnjsP6ErMsoVCgkwRSU15 NWfisbQM33O8k8kJAyl7pgl3L4cssCYFWr1ITGj47x6JFvm1cP8I7FDMQcx7UD0+9bEdox uckGDz2XFi2Lm3kJFhAvLpsddW94bjkINAKJ+xMFPPytKuJ5V1RMGnOA4bEGvA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1705460545; 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: in-reply-to:in-reply-to:references:references; bh=zALtXquubVf12GVK42wBAzGrzjHbniBVzHS0w0Uo31Q=; b=tz2MVc2HSgB4gosNfUp4V2Om2BTy1jkoBkJ3xdMAnSi4lf6via1rkAU9Z8c6eRMTR59m/Y SuIzGGFXQfNB3kEoFaEOhkuqT111JwqyxUAOXQjGP5Br8dM5MkVORDeUPW+313esvmBY9K U5J6+UGUeWc4nOXP7KLPD9b/rrzTJ5R/mwCNNXUwpEpTiqVcP1dAIiK7Ld0/TT6eh7KEi6 9uaDeycPJgww3BJslRmB0VYdbBoNa4MhZWJ1h65fRl0uaVe2NW8680iHRU2kaxEw0fhFKD sa2G69TmpewvlAIQDRcxrp87dYZZc5UPYYFI8CJ6zzxvdzYqZPjrY5kRd3//+Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1705460545; a=rsa-sha256; cv=none; b=VL3xH/UuQn4oHmH9fIUiU8ZfbNaTREEoxtNpyCtZHrMJV9mnMQ174kGQVMdvCoWp9DLGEP pM7uqZrEpybbrCi085Fq5qcowyvgHhakfkwIv0ga03WYZhaJiD4Dq8WUJnOXTFezkhuJsK B+L5WMMgc3N9oRBTjNK01U+ZUGQsMSGuPzXouy/yjTtnRChUsOK4t/CZld6u3Y6zNd9FwH EXzKQ0nL1VCP/v3Q2xEQ9Cjoy9LDTIRNdD66Rw17xaDwW14lWCToIDx8EMxsYOMx9CcTUB jjki31lf8DNkk59eJBRhB02u6/GxXFZxVBaJxpq2j0DtpgmC4QAvHgSrxyQVHQ== Received: by freefall.freebsd.org (Postfix, from userid 1354) id 1FD145F02; Wed, 17 Jan 2024 03:02:25 +0000 (UTC) From: Jan Beich To: Chris Cc: freebsd-current Subject: Re: Alder lake supported? (graphics) In-Reply-To: (Chris's message of "Tue, 16 Jan 2024 16:48:00 -0800") References: Date: Wed, 17 Jan 2024 04:02:21 +0100 Message-ID: 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 Chris writes: > I upgraded to an alder lake based machine and installed 14. > But I can't seem to get the intel graphics loaded (drm-515-kmod). > It simply freezes at load. > Are Alder lake graphics supported? Try drm-61-kmod instead (with gpu-firmware-intel-kmod-alderlake >= 20230625). Reported success in https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=270888#c8 > releng/14.0-n265380-f9716eee8ab4 > 12th Gen Intel(R) Core(TM) i3-1215U > vgapci0@pci0:0:2:0: class=0x030000 rev=0x0c hdr=0x00 vendor=0x8086 > device=0x46b3 subvendor=0x17aa subdevice=0x3b3a > vendor = 'Intel Corporation' > device = 'Alder Lake-UP3 GT1 [UHD Graphics]' > class = display > subclass = VGA 0x46b3 aka ADL-P is unstable with Linux < 5.17 or in drm-515-kmod. https://github.com/torvalds/linux/commit/dfb924e33927 https://github.com/freebsd/drm-kmod/commit/3403defd86e5 include/drm/i915_pciids.h contains a list of supported Intel GPUs. drivers/gpu/drm/i915/i915_pci.c with .require_force_probe contain a list of unstable GPU generations. Previously, Linux < 5.5 used .alpha_support and Linux < 4.9 used .preliminary_hw_support. drm-kmod doesn't support hw.i915kms.force_probe (via loader.conf or kenv) tunable yet thus cannot override .require_force_probe for specific GPUs. Instead it sets DRM_I915_FORCE_PROBE="*" to enable all unstable support. https://github.com/freebsd/drm-kmod/commit/054cb0598cab From nobody Wed Jan 17 09:53:45 2024 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 4TFLn50sgWz57SVx for ; Wed, 17 Jan 2024 09:54:01 +0000 (UTC) (envelope-from vidwer@gmail.com) Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com [IPv6:2a00:1450:4864:20::52f]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1D4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4TFLn43RR6z4Vkm for ; Wed, 17 Jan 2024 09:54:00 +0000 (UTC) (envelope-from vidwer@gmail.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20230601 header.b=RyuBH70M; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of vidwer@gmail.com designates 2a00:1450:4864:20::52f as permitted sender) smtp.mailfrom=vidwer@gmail.com Received: by mail-ed1-x52f.google.com with SMTP id 4fb4d7f45d1cf-553ba2f0c8fso12070654a12.1 for ; Wed, 17 Jan 2024 01:54:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1705485238; x=1706090038; darn=freebsd.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=KPg/xhXpn8giS+I2MBkHs2u1eNOB3bSOP0Y38NOqKkQ=; b=RyuBH70MgRhof5RVCQYdo1hl3REnssh4v6Y1fW9jO/z7gjG40kAKGXjI0m5SdFPQ8u yZwWr+YCc+sZ51kaUV3GaTBt0KpItg8z0wRl26Yoj/2fsRBFLHusQpk0X7orS1L2C8GR UZRr4uXn0eiO4zplkEcoc5QzqzSyPzSwb5jUfMJXNLnU57zS3A2gLxEkOxdcL73TtU1G 3CJTF714ZXCRF6FfuMppZFg7zmy6TRwzMTOOU3VdAjrkCmbTAYZdldLTVmK9lKCl2Z4q chZidlNChCRTv8Eep6JJXJhrdYUoqZrCrzIfv1U8bdrF3H0fjLDqdsBC49dCwuqVnglm h74w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705485238; x=1706090038; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=KPg/xhXpn8giS+I2MBkHs2u1eNOB3bSOP0Y38NOqKkQ=; b=DlalHx3eEa1ChbbHWSFB+uy1na0J1MPBFIL1+68XYQ/fyIWHPf8zI5Ja5b7juHEq1s 7AVNVXcqZX9fIc9L6jThq330FwtfdvVJKAVbtiTvySYAxPdtjyJLKLrcw8yBevh2P1WD 5zYYY+S9yfbOM3/gGgnd5Caizynxk9nR9ZP1OHPlSUoimqxEEj2savXIAnozfd3Ny0Ih 8XGLxMBD4/ro0AIMQmnSZq8Jq8dd67aVn1+iT+wUwgf8irdl8KKb4DE9pMf7O4I/I47Q /ki/p/ItWv90KRPQD9GcsDoMSA3gM0SiWLUuLYFmwICiImEAHd4jk1Sw20OOecjvRgv2 hV+A== X-Gm-Message-State: AOJu0YzUZNINvUBqTgn3uPRedGBvGWuvUwFsQYAMfcavZWvCDfaZjI34 wyrXwSGe/8VDCR3TuLg6BcLN2HnW3Pcclh/HmEWrQk1fxfs= X-Google-Smtp-Source: AGHT+IH8zNEl7lz8X9rjfW1AZnxqlf0TDxiPlU1cYYVvwXV5MXr9QPO6RhYij1QChpNhml/3Xes35sLlpYAD107ABIU= X-Received: by 2002:a17:907:9605:b0:a28:b7f5:58b2 with SMTP id gb5-20020a170907960500b00a28b7f558b2mr2517268ejc.13.1705485238313; Wed, 17 Jan 2024 01:53:58 -0800 (PST) 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 From: Idwer Vollering Date: Wed, 17 Jan 2024 10:53:45 +0100 Message-ID: Subject: How does one actually update ACPICA? To: freebsd-current Content-Type: text/plain; charset="UTF-8" X-Spamd-Bar: -- X-Spamd-Result: default: False [-3.00 / 15.00]; SUBJECT_ENDS_QUESTION(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-1.000]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4000::/36:c]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20230601]; MIME_GOOD(-0.10)[text/plain]; TO_DN_ALL(0.00)[]; RCVD_TLS_LAST(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; FROM_HAS_DN(0.00)[]; MIME_TRACE(0.00)[0:+]; ARC_NA(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; FREEMAIL_FROM(0.00)[gmail.com]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MISSING_XM_UA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; PREVIOUSLY_DELIVERED(0.00)[freebsd-current@freebsd.org]; FROM_EQ_ENVFROM(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; MID_RHS_MATCH_FROMTLD(0.00)[]; RCVD_COUNT_ONE(0.00)[1]; RCVD_IN_DNSWL_NONE(0.00)[2a00:1450:4864:20::52f:from] X-Rspamd-Queue-Id: 4TFLn43RR6z4Vkm Hi all, When attempting to build a newer release of ACPICA, it seems some documentation is missing, or some steps are missing. I have consulted the wiki whether updating instructions exist. The copyright header in sys/contrib/dev/acpica/common/acfileio.c hints I need the file acpica-unix-*.tar.gz What I ran to update ACPICA so far is: cd /tmp fetch https://downloadmirror.intel.com/783534/acpica-unix-20230628.tar.gz cd /usr/src/sys/contrib/dev/acpica/ ./acpica_prep.sh /tmp/acpica-unix-20230628.tar.gz rsync -aPv acpi_ca_destination/* . make -C /usr/src buildworld The 'buildworld' target stops with the following message: Building /usr/obj/path/to/git.freebsd.org/src/amd64.amd64/usr.sbin/acpi/acpidb/dsfield.o /path/to/dev/git.freebsd.org/src/sys/contrib/dev/acpica/components/dispatcher/dsfield.c:161:10: fatal error: 'aecommon.h' file not found 161 | #include "aecommon.h" | ^~~~~~~~~~~~ 1 error generated. *** Error code 1 Stop. make[5]: stopped in /path/to/dev/git.freebsd.org/src/usr.sbin/acpi/acpidb Now, when I repeat running acpica_prep.sh with acpica-unix-20221020.tar_0.gz [1] to re-integrate the release of ACPICA which is currently in the tree, buildworld stops with the same message as well. [1] https://downloadmirror.intel.com/774880/acpica-unix-20221020.tar_0.gz From nobody Wed Jan 17 11:15:03 2024 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 4TFNZz38ztz57bnM for ; Wed, 17 Jan 2024 11:15:23 +0000 (UTC) (envelope-from vidwer@gmail.com) Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com [IPv6:2a00:1450:4864:20::631]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1D4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4TFNZy4ZTSz4dv6 for ; Wed, 17 Jan 2024 11:15:22 +0000 (UTC) (envelope-from vidwer@gmail.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20230601 header.b=G26QOR1B; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of vidwer@gmail.com designates 2a00:1450:4864:20::631 as permitted sender) smtp.mailfrom=vidwer@gmail.com Received: by mail-ej1-x631.google.com with SMTP id a640c23a62f3a-a2ac304e526so1075303566b.0 for ; Wed, 17 Jan 2024 03:15:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1705490120; x=1706094920; darn=freebsd.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=FLuAVMNPtnZ+OdWzzB4wqxdEBdy9xjRG4blFEZbwBv8=; b=G26QOR1Bwy9+1MciL+5on0lDQwrg8+1ZPUqldzcEOJMK0TdoybUYaHdFxXn+SQ0zJc 28QgWK82nwAGZ+TJ0HU+kBNe+SmNtYrENDtfJmr45s8a+eBQCAUi+QiH+4pb/z/mHCav vvSAzeqsGRg3JcF3dxPOHAoHklfjiMs5g7rc6Qa5mpNuu+oslcZBHcBY9VCN7Ke/ZiSw 7wVkKr3h23WONaCtyKykc2qqihctvakQ7uqepPoF2Ve5T7U75kxydJDjIUkSEMPkzM5m mMTu3zG7vXAsH/kPBB1x5xp7ocry7qlEf+bDfi+CgKmSPcy9TizHv9lXAtgoewHBbhKY DKxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705490120; x=1706094920; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=FLuAVMNPtnZ+OdWzzB4wqxdEBdy9xjRG4blFEZbwBv8=; b=B4Rr2LsHU+xb1GpzDNEn+M1ovJhWxLhVREduNnNnDfaABQZ7OoAWD+1E1SUnzplAR+ szpdAXBOiF5M8naKNlYBKwCxqz1SGIYEPO4v5JD5XL2j4mAT1ReoRDaLHjCPtGIT8c21 J95d8Nces08Gt77uZu2ta8dZlefrOWXFTFF/ZC6R+GoVUX5KbQZR+Hn5eWe1bF8WhjpI mdJ3IdGa2sTA2WVidplA3aykesg/lfxselIj+YIBdT0KNVkqfmE2tpvwAC90PZehnJ7s CwoBMKE03uM+NwHl+7FEhCzpOjHTvo+Gbv+8GKqL2ey3VidUdpI1Xg3Yx7WRf6eu/a2C CIcg== X-Gm-Message-State: AOJu0YwJA065yT7WUfIF3tQjOZfSegyFe4BVnOBsBnmz5Yb0t9mVJz2+ KjayUwaHnhulyhF8lkcLZdrWGuPS8I4MyGHwdCZE3Pb6awk= X-Google-Smtp-Source: AGHT+IHYx104FcxxTfRbCHGw6PJIABQ9m5Jxw3z65CbOVhUYtNVoI3BU7dJZJxdBtUqUx22FDUjwV4LiW/REd0MVptc= X-Received: by 2002:a17:906:add8:b0:a2e:d388:f144 with SMTP id lb24-20020a170906add800b00a2ed388f144mr369004ejb.121.1705490120163; Wed, 17 Jan 2024 03:15:20 -0800 (PST) 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 References: In-Reply-To: From: Idwer Vollering Date: Wed, 17 Jan 2024 12:15:03 +0100 Message-ID: Subject: Re: How does one actually update ACPICA? To: freebsd-current Content-Type: text/plain; charset="UTF-8" X-Spamd-Bar: -- X-Spamd-Result: default: False [-2.98 / 15.00]; SUBJECT_ENDS_QUESTION(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.98)[-0.983]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4000::/36:c]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20230601]; MIME_GOOD(-0.10)[text/plain]; TO_DN_ALL(0.00)[]; RCVD_TLS_LAST(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; FROM_HAS_DN(0.00)[]; MIME_TRACE(0.00)[0:+]; ARC_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; FREEMAIL_FROM(0.00)[gmail.com]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MISSING_XM_UA(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; PREVIOUSLY_DELIVERED(0.00)[freebsd-current@freebsd.org]; FROM_EQ_ENVFROM(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; MID_RHS_MATCH_FROMTLD(0.00)[]; RCVD_COUNT_ONE(0.00)[1]; RCVD_IN_DNSWL_NONE(0.00)[2a00:1450:4864:20::631:from] X-Rspamd-Queue-Id: 4TFNZy4ZTSz4dv6 Op wo 17 jan 2024 om 10:53 schreef Idwer Vollering : > > Hi all, > > When attempting to build a newer release of ACPICA, it seems some > documentation is missing, or some steps are missing. I have consulted > the wiki whether updating instructions exist. > > The copyright header in sys/contrib/dev/acpica/common/acfileio.c hints > I need the file acpica-unix-*.tar.gz > > What I ran to update ACPICA so far is: > cd /tmp > fetch https://downloadmirror.intel.com/783534/acpica-unix-20230628.tar.gz > > cd /usr/src/sys/contrib/dev/acpica/ Since I have checked out code in the homedir, this should have been: cd /path/to/dev/git.freebsd.org//contrib/dev/acpica/ > ./acpica_prep.sh /tmp/acpica-unix-20230628.tar.gz > > rsync -aPv acpi_ca_destination/* . > > make -C /usr/src buildworld Same adjustment as above: make -C /path/to/dev/git.freebsd.org//subdir/contrib/dev/acpica/ buildworld > > The 'buildworld' target stops with the following message: > Building /usr/obj/path/to/git.freebsd.org/src/amd64.amd64/usr.sbin/acpi/acpidb/dsfield.o > /path/to/dev/git.freebsd.org/src/sys/contrib/dev/acpica/components/dispatcher/dsfield.c:161:10: > fatal error: 'aecommon.h' file not found > 161 | #include "aecommon.h" > | ^~~~~~~~~~~~ > 1 error generated. > *** Error code 1 > > Stop. > make[5]: stopped in /path/to/dev/git.freebsd.org/src/usr.sbin/acpi/acpidb > > > Now, when I repeat running acpica_prep.sh with > acpica-unix-20221020.tar_0.gz [1] to re-integrate the release of > ACPICA which is currently in the tree, buildworld stops with the same > message as well. > > > [1] https://downloadmirror.intel.com/774880/acpica-unix-20221020.tar_0.gz From nobody Wed Jan 17 20:59:57 2024 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 4TFdYk6PwMz56jM0 for ; Wed, 17 Jan 2024 21:00:10 +0000 (UTC) (envelope-from bsd-lists@bsdforge.com) Received: from udns.ultimatedns.net (udns.ultimatedns.net [24.113.41.81]) (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-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "ultimatedns.net", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4TFdYk3QyXz4t42; Wed, 17 Jan 2024 21:00:10 +0000 (UTC) (envelope-from bsd-lists@bsdforge.com) Authentication-Results: mx1.freebsd.org; none Received: from ultimatedns.net (localhost [127.0.0.1]) by udns.ultimatedns.net (8.16.1/8.16.1) with ESMTP id 40HKxwYA012211; Wed, 17 Jan 2024 13:00:04 -0800 (PST) (envelope-from bsd-lists@bsdforge.com) 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 Date: Wed, 17 Jan 2024 12:59:57 -0800 From: Chris To: Jan Beich Cc: freebsd-current Subject: Re: Alder lake supported? (graphics) In-Reply-To: References: User-Agent: UDNSMS/17.0 Message-ID: <666f1d1b09c1e23a36a90a125546f0f3@bsdforge.com> X-Sender: bsd-lists@bsdforge.com Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 4TFdYk3QyXz4t42 X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:11404, ipnet:24.113.0.0/16, country:US] On 2024-01-16 19:02, Jan Beich wrote: > Chris writes: > >> I upgraded to an alder lake based machine and installed 14. >> But I can't seem to get the intel graphics loaded (drm-515-kmod). >> It simply freezes at load. >> Are Alder lake graphics supported? > > Try drm-61-kmod instead (with gpu-firmware-intel-kmod-alderlake >= > 20230625). > Reported success in > https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=270888#c8 > >> releng/14.0-n265380-f9716eee8ab4 >> 12th Gen Intel(R) Core(TM) i3-1215U >> vgapci0@pci0:0:2:0: class=0x030000 rev=0x0c hdr=0x00 vendor=0x8086 >> device=0x46b3 subvendor=0x17aa subdevice=0x3b3a >> vendor = 'Intel Corporation' >> device = 'Alder Lake-UP3 GT1 [UHD Graphics]' >> class = display >> subclass = VGA > > 0x46b3 aka ADL-P is unstable with Linux < 5.17 or in drm-515-kmod. > https://github.com/torvalds/linux/commit/dfb924e33927 > https://github.com/freebsd/drm-kmod/commit/3403defd86e5 > > include/drm/i915_pciids.h contains a list of supported Intel GPUs. > drivers/gpu/drm/i915/i915_pci.c with .require_force_probe contain > a list of unstable GPU generations. Previously, Linux < 5.5 used > .alpha_support and Linux < 4.9 used .preliminary_hw_support. > > drm-kmod doesn't support hw.i915kms.force_probe (via loader.conf or kenv) > tunable yet thus cannot override .require_force_probe for specific GPUs. > Instead it sets DRM_I915_FORCE_PROBE="*" to enable all unstable support. > https://github.com/freebsd/drm-kmod/commit/054cb0598cab Thank you for the informative report, Jan. Unfortunately I don't pass the conditional in Makefile for FreeBSD 15 or greater. I'm on 14. Commenting that conditional indicates I don't have a necessary file (linux/iosys-map.h). So looks like I'll we'll have to wait. Or I'll need to track 15. :( Thanks again! :-) --Chris From nobody Wed Jan 17 22:54:06 2024 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 4TFh602pg3z56xr1; Wed, 17 Jan 2024 22:54:48 +0000 (UTC) (envelope-from marietto2008@gmail.com) Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com [IPv6:2a00:1450:4864:20::52b]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1D4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4TFh5z3PbZz4BJ0; Wed, 17 Jan 2024 22:54:47 +0000 (UTC) (envelope-from marietto2008@gmail.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20230601 header.b=cncX443B; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of marietto2008@gmail.com designates 2a00:1450:4864:20::52b as permitted sender) smtp.mailfrom=marietto2008@gmail.com Received: by mail-ed1-x52b.google.com with SMTP id 4fb4d7f45d1cf-557dcb0f870so11719153a12.2; Wed, 17 Jan 2024 14:54:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1705532084; x=1706136884; darn=freebsd.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=nSnQOjjxuF3HP/SQOZZ6iXjGnfG8l+tXCOSpX5Tr914=; b=cncX443B3MHzqzq7lcIOFXNep1A8apI43dOjOSrpgUTZ/NyKAn0yaeETYTLRO6SfMR C8a922T1qMwnI4YOZI5YXYnVo/MoTLxZ/XlBCzQojta2NLN+hShdw7ondVUMb2lmgaUl yHcgJHdUnfJUfMjrfMazVFoyzWdaqKip0jDBgsfAsBjF4HrrXsISLHMjZKhR2BZq8urB Zajo7CF3/AsKjemrwUFl9hu9N8W1Kb5kdgscgj4h3vrYC4/7J1ZjINB7WXyPKvMpseux sAzesATfi/aRrEb/Lt0G0CrKVQkBih9iFSA4BodRnX1nk3bzogMl3UCr3LSJrWpjnq1S /1kA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705532084; x=1706136884; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=nSnQOjjxuF3HP/SQOZZ6iXjGnfG8l+tXCOSpX5Tr914=; b=BphHi4sJ8SSOCol/NlMeludM9meX6BdrVki8aGhAN9imp9f+IiYi21utJdOWvJ6KHe TdAkQR1jhajdTOBSRbUCQs18tzvV7WZ21pLyNm2aFuBFzgGhTiYBZS8D6ai9UjXMlIcl p3V/s8kOAhLeHA1+/Aj8oywuw4GZ7TQQGvJo23dEasBqPdAHAhUGu5x6H8KmS3aQGPRF QJ7JF9p4ZacR9iDse/DV2qRuiBlp5hM/B2wDBsI6v+eS9f+AY2Zyh+Oo5BNm2PY092hH Ew5rHYD+yyltvwcqZo00F3f4/ICvAfidhw8w9YTFZTDLsDMKFln4INeGWS7mUL5ifX17 hNBQ== X-Gm-Message-State: AOJu0YyLvDYzVW4N1bPJvoP+z9yFhklPY8cz05v83OCRM+sYuLqARltf m3rWJrVv3SG2JxGvJRx9Q/C5xEvGBX5gH3I49OeaJXaYrtDyUQ== X-Google-Smtp-Source: AGHT+IF+jR4VVogFOyMYacwANH61Q1whsUFMPHVI2X3QOlKb33ZPZ8uJZqFcH0fzcckiVLBHVlW+Q8YHxSJIEF/yYJY= X-Received: by 2002:a17:906:3cf2:b0:a27:246b:442c with SMTP id d18-20020a1709063cf200b00a27246b442cmr4035292ejh.97.1705532083591; Wed, 17 Jan 2024 14:54:43 -0800 (PST) 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 References: In-Reply-To: From: Mario Marietto Date: Wed, 17 Jan 2024 23:54:06 +0100 Message-ID: Subject: Re: How to upgrade an EOL FreeBSD release or how to make it working again To: David Chisnall , Mark Millard Cc: John F Carr , freebsd-arm , freebsd-hackers , FreeBSD Mailing List , "freebsd-xen@freebsd.org" , FreeBSD Current , Warner Losh , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= Content-Type: multipart/alternative; boundary="000000000000fedfbc060f2c216d" X-Spamd-Bar: --- X-Spamd-Result: default: False [-3.98 / 15.00]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.98)[-0.979]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4000::/36]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20230601]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; FREEMAIL_TO(0.00)[freebsd.org,yahoo.com]; ARC_NA(0.00)[]; TO_DN_EQ_ADDR_SOME(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; RCVD_TLS_LAST(0.00)[]; FREEMAIL_FROM(0.00)[gmail.com]; TO_DN_SOME(0.00)[]; FROM_HAS_DN(0.00)[]; MISSING_XM_UA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; MID_RHS_MATCH_FROMTLD(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; MLMMJ_DEST(0.00)[freebsd-arm@freebsd.org,freebsd-hackers@freebsd.org,freebsd-questions@freebsd.org,freebsd-xen@freebsd.org,freebsd-current@freebsd.org]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; RCPT_COUNT_SEVEN(0.00)[10]; RCVD_COUNT_ONE(0.00)[1]; RCVD_IN_DNSWL_NONE(0.00)[2a00:1450:4864:20::52b:from] X-Rspamd-Queue-Id: 4TFh5z3PbZz4BJ0 --000000000000fedfbc060f2c216d Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hello to everyone. I'm trying to copy the Chromebook's SNOW source files that have been included on the FreeBSD 11 revision 269385 to the new FreeBSD 13 revision 373300. It has compiled correctly world,but when it starts to compile the kernel,it gives a lot of "unknown option" errors. Is there a way to fix them ? # svn co http://svn.freebsd.org/base/head@269385 ./head-269385 ; taken from this tutorial : https://wiki.freebsd.org/arm/Chromebook # svn co http://svn.freebsd.org/base/head ./head-373300 # cp ./head-269395/sys/arm/conf/CHROMEBOOK-SNOW ./head-373300/sys/arm/conf # cd ./head-373300 # make TARGET_ARCH=3Darmv7 KERNCONF=3DCHROMEBOOK-SNOW buildworld buildkerne= l I tried also with : make TARGET_ARCH=3Darmv6 KERNCONF=3DCHROMEBOOK-SNOW buildworld buildkernel,but it didn't make any difference. ..... ..... -------------------------------------------------------------- >>> World build completed on Wed Jan 17 21:27:04 CET 2024 >>> World built in 14203 seconds, ncpu: 16 -------------------------------------------------------------- make[1]: "/mnt/zroot2/zroot2/OS/Chromebook/head-373300/Makefile.inc1" line 341: SYSTEM_COMPILER: lib clang will be built for bootstrapping a cross-compiler. make[1]: "/mnt/zroot2/zroot2/OS/Chromebook/head-373300/Makefile.inc1" line 346: SYSTEM_LINKER: libcl ang will be built for bootstrapping a cross-linker. -------------------------------------------------------------- >>> Kernel build for CHROMEBOOK-SNOW started on Wed Jan 17 21:27:04 CET 202= 4 -------------------------------------------------------------- =3D=3D=3D> CHROMEBOOK-SNOW mkdir -p /usr/obj/mnt/zroot2/zroot2/OS/Chromebook/head-373300/arm.armv7/sys -------------------------------------------------------------- >>> stage 1: configuring the kernel -------------------------------------------------------------- cd /mnt/zroot2/zroot2/OS/Chromebook/head-373300/sys/arm/conf; PATH=3D/usr/obj/mnt/zroot2/zroot2/OS/Ch romebook/head-373300/arm.armv7/tmp/bin:/usr/obj/mnt/zroot2/zroot2/OS/Chrome= book/head-373300/arm.armv 7/tmp/usr/sbin:/usr/obj/mnt/zroot2/zroot2/OS/Chromebook/head-373300/arm.arm= v7/tmp/usr/bin:/usr/obj/m nt/zroot2/zroot2/OS/Chromebook/head-373300/arm.armv7/tmp/legacy/usr/sbin:/u= sr/obj/mnt/zroot2/zroot2/ OS/Chromebook/head-373300/arm.armv7/tmp/legacy/usr/bin:/usr/obj/mnt/zroot2/= zroot2/OS/Chromebook/head -373300/arm.armv7/tmp/legacy/bin:/usr/obj/mnt/zroot2/zroot2/OS/Chromebook/h= ead-373300/arm.armv7/tmp/ legacy/usr/libexec::/sbin:/bin:/usr/sbin:/usr/bin config -d /usr/obj/mnt/zroot2/zroot2/OS/Chromebo ok/head-373300/arm.armv7/sys/CHROMEBOOK-SNOW -I '/mnt/zroot2/zroot2/OS/Chromebook/head-373300/sys/a rm/conf' -I '/mnt/zroot2/zroot2/OS/Chromebook/head-373300/sys/arm/conf' '/mnt/zroot2/zroot2/OS/Chro mebook/head-373300/sys/arm/conf/CHROMEBOOK-SNOW' WARNING: duplicate option `DEBUG' encountered. ./head-373300/sys/arm/conf/CHROMEBOOK-SNOW: unknown option "IPI_IRQ_END" / "IPI_IRQ_START / ARM_L2_PIPT" and so on... these options are included inside the file "std.exynos5250" (that I have copied from the old to the new source code). What I'm trying to do to stop these error is to comment the offending lines : nano ./head-373300/sys/arm/samsung/exynos/std.exynos5250 : #options IPI_IRQ_START=3D0 #options IPI_IRQ_END=3D15 #options ARM_L2_PIPT but I suspect that a lot of options will be missing and the more comments I will make,the more the chance that it will not work will increase. ... On Mon, Jan 15, 2024 at 7:48=E2=80=AFPM Mario Marietto wrote: > Hello. > > Do you have deleted forever the set of packages and ports for FreeBSD 11 > or you keep them stored in DVDs that I can buy or download for a small > amount of money ? If yes,where ? To rebuild everything is out of my > expertise. > > On Mon, Jan 15, 2024 at 7:15=E2=80=AFPM David Chisnall > wrote: > >> On 15 Jan 2024, at 16:46, Mario Marietto wrote: >> > >> > The ARM Chromebook is based on armv7,it is still recent. >> >> For reference, the ARMv7 architecture was introduced in 2005. The last >> cores that implemented the architecture were released in 2014. This is = not >> a =E2=80=98recent=E2=80=99 architecture, it=E2=80=99s one that=E2=80=99s= 19 years old and has been largely >> dead for several years. >> >> > But let's change perspective for a moment,don't think about the ARM >> Chromebook. My question is : how to upgrade FreeBSD when it goes EOL. >> >> Generally, run `freebsd-update`. This is a very different question from >> =E2=80=98how do I do a new install of an old an unsupported version?' >> >> > I ask this because there is a huge difference here between FreeBSD and >> Linux. Today if you need to use , for example Ubuntu 14.0, you can use i= t >> as is. Yes,there will be a lot of bugs,but it will work without crashes. >> But if you want to use an old FreeBSD system,nothing will work for you. >> So,do you know some methods to install even packages or ports ? You >> know,there are cases when you need to do some experiments so that you ca= n >> keep your machine off the internet,so you aren't scared that someone can >> compromise it. Totally prohibiting the users to use an old system,removi= ng >> ports and packages is not a choice that I approve of. And I'm not the on= ly >> one that thinks like this. >> >> If you want to use an old and unsupported version of FreeBSD, no one is >> stopping you, but: >> >> - You will need to build the releases. The source code is still in git= , >> you can. The scripts for building the release images are right there in >> the repo. Just grab the relevant release or releng branch and go. >> >> - You will need to build packages. Newer versions of the ports tree >> will not be tested with the older release, so you may need to use an old= er >> checkout of the ports tree. Poudriere will build a package repo for you= . >> >> In both cases, if you=E2=80=99re using older versions you almost certain= ly *will* >> have security vulnerabilities. The project strongly advises you not to = do >> this and not to blame us when you install known-insecure software and en= d >> up compromised. >> >> The project does not have enough active contributors to keep maintaining >> things indefinitely. This is why release have a five-year supported >> lifetime. If you want to pick up an old branch and maintain it, you=E2= =80=99re >> welcome to. In the past, companies have picked up old branches and >> maintained them for customers that had a dependency on them. If you wan= t >> to pay someone to maintain an old branch (and have deep pockets) then th= ere >> are probably a few companies that will happily take your money. >> >> Maintaining binaries is a slightly different issue, but it=E2=80=99s not= totally >> unrelated. Keeping old packages around consumes disk space and costs th= e >> project money (remember, every package is mirrored across the CDN, so th= is >> isn=E2=80=99t just a single disk). Even if it were free, philosophicall= y, I think >> making it easy for users to install known-insecure software is a bad ide= a >> but if you want to keep a package repo with out-of-date packages online >> indefinitely then you can. You can run Poudriere and even cross-compile >> from a fairly beefy cloud machine quite easily. >> >> It=E2=80=99s been a while since I did a full package build, but I would = guess >> that you could do a single package build (all ports) for about $50 on a >> cloud VM, more (2-3x) if it=E2=80=99s emulated. Storing the results for= a small >> number of users will cost around $10-20/month. If you think this is an >> important thing to do, then you are absolutely welcome to spend your own >> money on doing it. >> >> David >> >> > > -- > Mario. > --=20 Mario. --000000000000fedfbc060f2c216d Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello to ever=
yone.

I'm trying to copy the Chromebook's SNOW source files = that have been included on the FreeBSD 11
revision 269385 to the new Fr= eeBSD 13 revision 373300. It has compiled correctly world,but when it
st= arts to compile the kernel,it gives a lot of "unknown option" err= ors. Is there a way to fix them ?

# svn co =
http:=
//svn.freebsd.org/base/head@269385 ./head-269385 ; taken from this tuto=
rial :

ht= tps://wiki.freebsd.org/arm/Chromebook
# svn co htt= p://svn.freebsd.org/base/head ./head-373300 # cp ./head-269395/sys/arm/conf/CHROMEBOOK-SNOW ./head-373300/sys/arm/conf # cd ./head-373300 # make TARGET_ARCH=3Darmv7 KERNCONF=3DCHROMEBOOK-SNOW buildworld buildkerne= l

I tried also with :
make TARGET_ARCH=3Darmv6 KERNCONF= =3DCHROMEBOOK-SNOW buildworld buildkernel,but it
didn'= t make any difference.
.....
.....
--------------------------------------------------------------
>>> World build completed on Wed Jan 17 21:27:04 CET 2024
>>> World built in 14203 seconds, ncpu: 16
--------------------------------------------------------------
make[1]: "/mnt/zroot2/zroot2/OS/Chromebook/head-373300/Makefile.inc1&q=
uot; line 341: SYSTEM_COMPILER: lib
clang will be built for bootstrapping a cross-compiler.
make[1]: "/mnt/zroot2/zroot2/OS/Chromebook/head-373300/Makefile.inc1&q=
uot; line 346: SYSTEM_LINKER: libcl
ang will be built for bootstrapping a cross-linker.

--------------------------------------------------------------
>>> Kernel build for CHROMEBOOK-SNOW started on Wed Jan 17 21:27:0=
4 CET 2024
--------------------------------------------------------------
=3D=3D=3D> CHROMEBOOK-SNOW
mkdir -p /usr/obj/mnt/zroot2/zroot2/OS/Chromebook/head-373300/arm.armv7/sys

--------------------------------------------------------------
>>> stage 1: configuring the kernel
--------------------------------------------------------------
cd /mnt/zroot2/zroot2/OS/Chromebook/head-373300/sys/arm/conf;  PATH=3D/usr/=
obj/mnt/zroot2/zroot2/OS/Ch
romebook/head-373300/arm.armv7/tmp/bin:/usr/obj/mnt/zroot2/zroot2/OS/Chrome=
book/head-373300/arm.armv
7/tmp/usr/sbin:/usr/obj/mnt/zroot2/zroot2/OS/Chromebook/head-373300/arm.arm=
v7/tmp/usr/bin:/usr/obj/m
nt/zroot2/zroot2/OS/Chromebook/head-373300/arm.armv7/tmp/legacy/usr/sbin:/u=
sr/obj/mnt/zroot2/zroot2/
OS/Chromebook/head-373300/arm.armv7/tmp/legacy/usr/bin:/usr/obj/mnt/zroot2/=
zroot2/OS/Chromebook/head
-373300/arm.armv7/tmp/legacy/bin:/usr/obj/mnt/zroot2/zroot2/OS/Chromebook/h=
ead-373300/arm.armv7/tmp/
legacy/usr/libexec::/sbin:/bin:/usr/sbin:/usr/bin  config  -d /usr/obj/mnt/=
zroot2/zroot2/OS/Chromebo
ok/head-373300/arm.armv7/sys/CHROMEBOOK-SNOW  -I '/mnt/zroot2/zroot2/OS=
/Chromebook/head-373300/sys/a
rm/conf' -I '/mnt/zroot2/zroot2/OS/Chromebook/head-373300/sys/arm/c=
onf'  '/mnt/zroot2/zroot2/OS/Chro
mebook/head-373300/sys/arm/conf/CHROMEBOOK-SNOW'
WARNING: duplicate option `DEBUG' encountered.

./head-373300/sys/arm/conf/CHROMEBOOK-SNOW: unknown option "IPI_IRQ_EN= D" / "IPI_IRQ_START / ARM_L2_PIPT"
and so on..=
.

these options are included inside the file "std.ex=
ynos5250" (that I have copied from the old to the new
so=
urce code). What I'm trying to do to stop these error is to comment the=
 offending lines :

nano ./head-373300/sys/arm/samsung/exy= nos/std.exynos5250 :
#options IPI_IRQ_START=3D0
#options IPI_IRQ_END=3D15
#options = ARM_L2_PIPT

but I suspect that a lot= of options will be missing and the more comments I will make,the more the = chance that it will not work will increase. ...

On Mon, Jan 15, 2024= at 7:48=E2=80=AFPM Mario Marietto <marietto2008@gmail.com> wrote:
Hello.

Do you have deleted forever the set of packages and ports for FreeBS= D 11 or you keep them stored in DVDs that I can buy or download for a small= amount of money ? If yes,where ? To rebuild everything is out of my expert= ise.

On Mon, Jan 15, 2024 at 7:15=E2=80=AFPM David Chisnall <= theraven@freebsd.= org> wrote:
On 15 Jan 2024, at 16:46, Mario Marietto <marietto2008@gmail.com> wrote:
>
> The ARM Chromebook is based on armv7,it is still recent.

For reference, the ARMv7 architecture was introduced in 2005.=C2=A0 The las= t cores that implemented the architecture were released in 2014.=C2=A0 This= is not a =E2=80=98recent=E2=80=99 architecture, it=E2=80=99s one that=E2= =80=99s 19 years old and has been largely dead for several years.

> But let's change perspective for a moment,don't think about th= e ARM Chromebook. My question is : how to upgrade FreeBSD when it goes EOL.=

Generally, run `freebsd-update`.=C2=A0 This is a very different question fr= om =E2=80=98how do I do a new install of an old an unsupported version?'= ;

> I ask this because there is a huge difference here between FreeBSD and= Linux. Today if you need to use , for example Ubuntu 14.0, you can use it = as is. Yes,there will be a lot of bugs,but it will work without crashes.=C2= =A0 But if you want to use an old FreeBSD system,nothing will work for you.= So,do you know some methods to install even packages or ports ? You know,t= here are cases when you need to do some experiments so that you can keep yo= ur machine off the internet,so you aren't scared that someone can compr= omise it. Totally prohibiting the users to use an old system,removing ports= and packages is not a choice that I approve of. And I'm not the only o= ne that thinks like this.

If you want to use an old and unsupported version of FreeBSD, no one is sto= pping you, but:

=C2=A0- You will need to build the releases.=C2=A0 The source code is still= in git, you can.=C2=A0 The scripts for building the release images are rig= ht there in the repo.=C2=A0 Just grab the relevant release or releng branch= and go.

=C2=A0- You will need to build packages.=C2=A0 Newer versions of the ports = tree will not be tested with the older release, so you may need to use an o= lder checkout of the ports tree.=C2=A0 Poudriere will build a package repo = for you.=C2=A0

In both cases, if you=E2=80=99re using older versions you almost certainly = *will* have security vulnerabilities.=C2=A0 The project strongly advises yo= u not to do this and not to blame us when you install known-insecure softwa= re and end up compromised.

The project does not have enough active contributors to keep maintaining th= ings indefinitely.=C2=A0 This is why release have a five-year supported lif= etime.=C2=A0 If you want to pick up an old branch and maintain it, you=E2= =80=99re welcome to.=C2=A0 In the past, companies have picked up old branch= es and maintained them for customers that had a dependency on them.=C2=A0 I= f you want to pay someone to maintain an old branch (and have deep pockets)= then there are probably a few companies that will happily take your money.=

Maintaining binaries is a slightly different issue, but it=E2=80=99s not to= tally unrelated.=C2=A0 Keeping old packages around consumes disk space and = costs the project money (remember, every package is mirrored across the CDN= , so this isn=E2=80=99t just a single disk).=C2=A0 Even if it were free, ph= ilosophically, I think making it easy for users to install known-insecure s= oftware is a bad idea but if you want to keep a package repo with out-of-da= te packages online indefinitely then you can.=C2=A0 You can run Poudriere a= nd even cross-compile from a fairly beefy cloud machine quite easily.

It=E2=80=99s been a while since I did a full package build, but I would gue= ss that you could do a single package build (all ports) for about $50 on a = cloud VM, more (2-3x) if it=E2=80=99s emulated.=C2=A0 Storing the results f= or a small number of users will cost around $10-20/month.=C2=A0 If you thin= k this is an important thing to do, then you are absolutely welcome to spen= d your own money on doing it.

David



--
Mario.


--
Mario.
--000000000000fedfbc060f2c216d-- From nobody Thu Jan 18 16:47:24 2024 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 4TG7vn43Nhz56SXK for ; Thu, 18 Jan 2024 16:47:33 +0000 (UTC) (envelope-from jbeich@freebsd.org) Received: from freefall.freebsd.org (freefall.freebsd.org [96.47.72.132]) (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-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "freefall.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4TG7vn3GtQz3xqt; Thu, 18 Jan 2024 16:47:33 +0000 (UTC) (envelope-from jbeich@freebsd.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1705596453; 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: in-reply-to:in-reply-to:references:references; bh=xhfn3i2ITW48htFQgAM0UYsFZl0sGVK5ZL1mYH4Q9HE=; b=BN5HU7hXlg81+uZtxP0vGrftQZc39ARplnO7kj3KjaSL/GMvPzjL+YG81rs+PZXYRFPS3S Us2LUl6NMQzJggCQET2Vjm3K/pw7ZIuEl26PGmpOd3K8dnH24FYA7ynuQY/TWGXd54ifGm QgeMWtgKnWKgtLncHPkZTueBycOFWalkuRrcW71wo0PejOaCKvsuOPHS5As/6LjtmvGziJ h7Pq+qsNoB2PbACLwiI2XQqEpvABuTCYoINC3rHrEt1k+UrzKDJTShamZYc2y8Wq2FyGZO YbuvcpAuJ3YnI7RCLvyf2JwB8gLFcFd21KFejihSxn9nZzOVnJ2FaIJAxfAaUw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1705596453; 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: in-reply-to:in-reply-to:references:references; bh=xhfn3i2ITW48htFQgAM0UYsFZl0sGVK5ZL1mYH4Q9HE=; b=H2MMs7k3VRbPYrv/maAlh9hFL4nbo9FNQoOXiJlg5D34FSOGajcJce1Ut5c1ZTOOHReDOM QqUrsoQu3cOIFenFQYMJ/U/XukvhmmLNMEiDFuAyfEhP5dKzxb7K5xBgmPm7aCYX1FzPnv EQmMJXP4PbFGizcHn20uESI91wHkIkEvBXkWQlYzhGwiqCKrjk27I6y8q75oS8VZtL1CPu rzA9ThUiIlkjJBfqhTaktHex06VwG25OgRBR3pC/Npw8lxce6qoeHq9+QzLilWqjBXX6Dh 9SItt7tEEyg/0nOsEM9uMBxjpG7pResJFHppMgx0fVRMG4/uWdZsgNNEQuma9g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1705596453; a=rsa-sha256; cv=none; b=BoTbMKB28E3Pb5K/XT36+r3/mTmLRePDxuBduyG7IsRhEiJc51DcLUAFX5R8UvdqEPDPJm CmYlMsMs7u1uiWh2GEpTqgLy8JhIVWr1CkUilmh6q4fq1RnuLckm7XyeLl5CRAJwi0imXC /FZH0XxOLBH7TnctTz61B6uvWF9Zz/6lDUy2d60zAeOrDTmNpCPLaTeoscE/PjSaWf1L48 mrUje7uuarXYz6hnxJQkkzIwspnugWIPgjt1sWI6zf+R1lVC9TmzWcDHW5DPr2fCFuG0IN /08BZ8lJKtpTQtmV2PaoH+iU8HYBPujLtVsPT18FuVE408ZIdtad+XM2IKsJGg== Received: by freefall.freebsd.org (Postfix, from userid 1354) id 32205A31F; Thu, 18 Jan 2024 16:47:33 +0000 (UTC) From: Jan Beich To: Chris Cc: freebsd-current Subject: Re: Alder lake supported? (graphics) In-Reply-To: <666f1d1b09c1e23a36a90a125546f0f3@bsdforge.com> (Chris's message of "Wed, 17 Jan 2024 12:59:57 -0800") References: <666f1d1b09c1e23a36a90a125546f0f3@bsdforge.com> Date: Thu, 18 Jan 2024 17:47:24 +0100 Message-ID: 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 Chris writes: > On 2024-01-16 19:02, Jan Beich wrote: > >> Chris writes: >> >>> I upgraded to an alder lake based machine and installed 14. >>> But I can't seem to get the intel graphics loaded (drm-515-kmod). >>> It simply freezes at load. >>> Are Alder lake graphics supported? >> Try drm-61-kmod instead (with gpu-firmware-intel-kmod-alderlake >= >> 20230625). >> Reported success in >> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=270888#c8 [...] > I'm on 14. Commenting that conditional indicates I don't have a necessary > file (linux/iosys-map.h). So looks like I'll we'll have to wait. Or I'll > need to track 15. :( On current@ list -CURRENT is expected. Due to backward compatibility it's possible to run -CURRENT kernel with -RELEASE userland (world + packages). For example, poudriere (as used by the package cluster) relies on this to build binary packages for older FreeBSD versions on the same machine. Alternatively, https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=274770#c5 proposed a branch which removes .require_force_probe for both ADL-S and ADL-P. It builds fine on 14.0-RELEASE "as is" e.g., see ports/ diff below. diff --git a/graphics/drm-515-kmod/Makefile.version b/graphics/drm-515-kmod/Makefile.version index 4a7c27611bc8..469071220731 100644 --- a/graphics/drm-515-kmod/Makefile.version +++ b/graphics/drm-515-kmod/Makefile.version @@ -1,5 +1,5 @@ # drm-kmod common version definition # # This will be included from consumers such as nvidia-drm -DRM_KMOD_DISTVERSION= 5.15.118 -DRM_KMOD_GH_TAGNAME= drm_v5.15.118_4 +DRM_KMOD_DISTVERSION= 5.15.focal +DRM_KMOD_GH_TAGNAME= 97a4ad4364 diff --git a/graphics/drm-515-kmod/distinfo b/graphics/drm-515-kmod/distinfo index 3599fc42317b..cadc6be14456 100644 --- a/graphics/drm-515-kmod/distinfo +++ b/graphics/drm-515-kmod/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1703336317 -SHA256 (freebsd-drm-kmod-5.15.118-drm_v5.15.118_4_GH0.tar.gz) = 58e2fc195979e2361346ca57cc158e44413e5de26b83b951a631d09849caf90c -SIZE (freebsd-drm-kmod-5.15.118-drm_v5.15.118_4_GH0.tar.gz) = 26092371 +TIMESTAMP = 1698298780 +SHA256 (freebsd-drm-kmod-5.15.focal-97a4ad4364_GH0.tar.gz) = fc6a94a74aea714bb25ccf788b8361de4db348ef1893fc391d00bd346e828732 +SIZE (freebsd-drm-kmod-5.15.focal-97a4ad4364_GH0.tar.gz) = 26126042 From nobody Thu Jan 18 22:06:08 2024 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 4TGGzf03Wvz576gq for ; Thu, 18 Jan 2024 22:06:22 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com [IPv6:2a00:1450:4864:20::233]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1D4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4TGGzd53dRz4s6m for ; Thu, 18 Jan 2024 22:06:21 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-lj1-x233.google.com with SMTP id 38308e7fff4ca-2ccec119587so2327501fa.0 for ; Thu, 18 Jan 2024 14:06:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20230601.gappssmtp.com; s=20230601; t=1705615579; x=1706220379; darn=freebsd.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=pXJ3dY6ZLqDhoUqyMmMZkZGPT7oc5+Tg3yKVUZN1kPM=; b=D/UQQO/R3zw+K5fenXpZ8BXbIrqBgMqKtg4TymTJYznqY1k/9i9lREZVwKo8lWIrAo OKQMMGMasC7ugWHdTSQ6rysA2ZH+xjMZgy2gmF7u3WK9RQbBMmhFGM4u7sLTx8HMDMfG c4RLBbY8Bacdf+RvR2xqe9MFuNNHRj+bOzrXoa9RIBxmDf7I8Zj4UbUscFbhYt49sAO8 Yuvgr5+gD0DN/PcxFtBxm14taJ01s3mQyOCpqCJ52jpqYgqvCpP5xzSwTe+baToRpZrh EoZJtYRGPZtxebca9uhWy0hOMnIYACQZ2i+K2QXe16hAv1q8+r8pnqMSK4WBpf8ogmaa kf+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705615579; x=1706220379; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=pXJ3dY6ZLqDhoUqyMmMZkZGPT7oc5+Tg3yKVUZN1kPM=; b=wHkBqjiEcx6Bt/QFfbELyfxZBLY6Db+rwhujbrN9h9JDoa4MLd7/uDEQtU5ZWmoyNo xXUPGZiffxnXow8geEcqFF55iqCwCNQ9QmakSnENfZSRWOaDMzPsN2hgSqVOAwezixn6 KFq/q1OtLw42VWZEWnDUxInq+DnCa1AHtZyJDUhDyf2f9+6A+xiXSkGiX6qkikLzR4Mf 3ARQsf5r/tXVDY9xfyUwNpVh3sylBodUPG+qX+693no94zrjAWOqQLFDRFemVAY8pQ87 kt5+AlAkar63ryh/Cj973LlpzeH2Igqyrnpm9+LedvGrr2fa0jM9uW5WnfuXc++DEqgB XvAw== X-Gm-Message-State: AOJu0YxJLgbtof+4jM2tUbM2CkRz/FI+fAwKpiWu4M7CV6+ii30O6kbC KcqdecnopVvjZFMBdZpY80E0gUxCNBXldFKtm5ZtT9vlKhmWIYLDoe5hds5SDA6iniHubfahK5h L/3WQKeP3wuVsEPw285HW9uVM4P0Fd2jgY1Ap0Q== X-Google-Smtp-Source: AGHT+IGZcP6eNjR4bYou33Z5k3wz16Xq6dT8rIoYRDvJxfn+9uAvnfuFOX7Y/TfI0aVtbEHsuez2NOoGmdvzjJzP+ZM= X-Received: by 2002:a2e:9c19:0:b0:2cd:f341:5150 with SMTP id s25-20020a2e9c19000000b002cdf3415150mr971764lji.13.1705615579512; Thu, 18 Jan 2024 14:06:19 -0800 (PST) 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 References: In-Reply-To: From: Warner Losh Date: Thu, 18 Jan 2024 15:06:08 -0700 Message-ID: Subject: Re: How to upgrade an EOL FreeBSD release or how to make it working again To: Mario Marietto Cc: David Chisnall , Mark Millard , John F Carr , freebsd-arm , freebsd-hackers , FreeBSD Mailing List , "freebsd-xen@freebsd.org" , FreeBSD Current , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= Content-Type: multipart/alternative; boundary="000000000000bd9405060f3f9248" X-Rspamd-Queue-Id: 4TGGzd53dRz4s6m X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US] --000000000000bd9405060f3f9248 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Jan 17, 2024 at 3:54=E2=80=AFPM Mario Marietto wrote: > Hello to everyone. > > I'm trying to copy the Chromebook's SNOW source files that have been incl= uded on the FreeBSD 11 > revision 269385 to the new FreeBSD 13 revision 373300. It has compiled co= rrectly world,but when it > starts to compile the kernel,it gives a lot of "unknown option" errors. I= s there a way to fix them ? > > # svn co http://svn.freebsd.org/base/head@269385 ./head-269385 ; taken fr= om this tutorial : > > https://wiki.freebsd.org/arm/Chromebook > > # svn co http://svn.freebsd.org/base/head ./head-373300 > # cp ./head-269395/sys/arm/conf/CHROMEBOOK-SNOW ./head-373300/sys/arm/con= f > # cd ./head-373300 > # make TARGET_ARCH=3Darmv7 KERNCONF=3DCHROMEBOOK-SNOW buildworld buildker= nel > > I tried also with : make TARGET_ARCH=3Darmv6 KERNCONF=3DCHROMEBOOK-SNOW b= uildworld buildkernel,but it > didn't make any difference. > > ..... > ..... > -------------------------------------------------------------- > >>> World build completed on Wed Jan 17 21:27:04 CET 2024 > >>> World built in 14203 seconds, ncpu: 16 > -------------------------------------------------------------- > make[1]: "/mnt/zroot2/zroot2/OS/Chromebook/head-373300/Makefile.inc1" lin= e 341: SYSTEM_COMPILER: lib > clang will be built for bootstrapping a cross-compiler. > make[1]: "/mnt/zroot2/zroot2/OS/Chromebook/head-373300/Makefile.inc1" lin= e 346: SYSTEM_LINKER: libcl > ang will be built for bootstrapping a cross-linker. > > -------------------------------------------------------------- > >>> Kernel build for CHROMEBOOK-SNOW started on Wed Jan 17 21:27:04 CET 2= 024 > -------------------------------------------------------------- > =3D=3D=3D> CHROMEBOOK-SNOW > mkdir -p /usr/obj/mnt/zroot2/zroot2/OS/Chromebook/head-373300/arm.armv7/s= ys > > -------------------------------------------------------------- > >>> stage 1: configuring the kernel > -------------------------------------------------------------- > cd /mnt/zroot2/zroot2/OS/Chromebook/head-373300/sys/arm/conf; PATH=3D/us= r/obj/mnt/zroot2/zroot2/OS/Ch > romebook/head-373300/arm.armv7/tmp/bin:/usr/obj/mnt/zroot2/zroot2/OS/Chro= mebook/head-373300/arm.armv > 7/tmp/usr/sbin:/usr/obj/mnt/zroot2/zroot2/OS/Chromebook/head-373300/arm.a= rmv7/tmp/usr/bin:/usr/obj/m > nt/zroot2/zroot2/OS/Chromebook/head-373300/arm.armv7/tmp/legacy/usr/sbin:= /usr/obj/mnt/zroot2/zroot2/ > OS/Chromebook/head-373300/arm.armv7/tmp/legacy/usr/bin:/usr/obj/mnt/zroot= 2/zroot2/OS/Chromebook/head > -373300/arm.armv7/tmp/legacy/bin:/usr/obj/mnt/zroot2/zroot2/OS/Chromebook= /head-373300/arm.armv7/tmp/ > legacy/usr/libexec::/sbin:/bin:/usr/sbin:/usr/bin config -d /usr/obj/mn= t/zroot2/zroot2/OS/Chromebo > ok/head-373300/arm.armv7/sys/CHROMEBOOK-SNOW -I '/mnt/zroot2/zroot2/OS/C= hromebook/head-373300/sys/a > rm/conf' -I '/mnt/zroot2/zroot2/OS/Chromebook/head-373300/sys/arm/conf' = '/mnt/zroot2/zroot2/OS/Chro > mebook/head-373300/sys/arm/conf/CHROMEBOOK-SNOW' > WARNING: duplicate option `DEBUG' encountered. > > ./head-373300/sys/arm/conf/CHROMEBOOK-SNOW: unknown option "IPI_IRQ_END" = / "IPI_IRQ_START / ARM_L2_PIPT" > > and so on... > > these options are included inside the file "std.exynos5250" (that I have = copied from the old to the new > > source code). What I'm trying to do to stop these error is to comment the= offending lines : > > > nano ./head-373300/sys/arm/samsung/exynos/std.exynos5250 : > > #options IPI_IRQ_START=3D0 > #options IPI_IRQ_END=3D15 > > These likely require changes to adopt exynos to INTRNG. > #options ARM_L2_PIPT > > This is likely a nop. It was for ARMv4/5 only and google tells me exynos5250 was a dual core Cortex A-15, which is armv7. > but I suspect that a lot of options will be missing and the more comments > I will make,the more the chance that it will not work will increase. ... > There's likely a lot of work here... Warner > > On Mon, Jan 15, 2024 at 7:48=E2=80=AFPM Mario Marietto > wrote: > >> Hello. >> >> Do you have deleted forever the set of packages and ports for FreeBSD 11 >> or you keep them stored in DVDs that I can buy or download for a small >> amount of money ? If yes,where ? To rebuild everything is out of my >> expertise. >> >> On Mon, Jan 15, 2024 at 7:15=E2=80=AFPM David Chisnall >> wrote: >> >>> On 15 Jan 2024, at 16:46, Mario Marietto wrote= : >>> > >>> > The ARM Chromebook is based on armv7,it is still recent. >>> >>> For reference, the ARMv7 architecture was introduced in 2005. The last >>> cores that implemented the architecture were released in 2014. This is= not >>> a =E2=80=98recent=E2=80=99 architecture, it=E2=80=99s one that=E2=80=99= s 19 years old and has been largely >>> dead for several years. >>> >>> > But let's change perspective for a moment,don't think about the ARM >>> Chromebook. My question is : how to upgrade FreeBSD when it goes EOL. >>> >>> Generally, run `freebsd-update`. This is a very different question fro= m >>> =E2=80=98how do I do a new install of an old an unsupported version?' >>> >>> > I ask this because there is a huge difference here between FreeBSD an= d >>> Linux. Today if you need to use , for example Ubuntu 14.0, you can use = it >>> as is. Yes,there will be a lot of bugs,but it will work without crashes= . >>> But if you want to use an old FreeBSD system,nothing will work for you. >>> So,do you know some methods to install even packages or ports ? You >>> know,there are cases when you need to do some experiments so that you c= an >>> keep your machine off the internet,so you aren't scared that someone ca= n >>> compromise it. Totally prohibiting the users to use an old system,remov= ing >>> ports and packages is not a choice that I approve of. And I'm not the o= nly >>> one that thinks like this. >>> >>> If you want to use an old and unsupported version of FreeBSD, no one is >>> stopping you, but: >>> >>> - You will need to build the releases. The source code is still in >>> git, you can. The scripts for building the release images are right th= ere >>> in the repo. Just grab the relevant release or releng branch and go. >>> >>> - You will need to build packages. Newer versions of the ports tree >>> will not be tested with the older release, so you may need to use an ol= der >>> checkout of the ports tree. Poudriere will build a package repo for yo= u. >>> >>> In both cases, if you=E2=80=99re using older versions you almost certai= nly >>> *will* have security vulnerabilities. The project strongly advises you= not >>> to do this and not to blame us when you install known-insecure software= and >>> end up compromised. >>> >>> The project does not have enough active contributors to keep maintainin= g >>> things indefinitely. This is why release have a five-year supported >>> lifetime. If you want to pick up an old branch and maintain it, you=E2= =80=99re >>> welcome to. In the past, companies have picked up old branches and >>> maintained them for customers that had a dependency on them. If you wa= nt >>> to pay someone to maintain an old branch (and have deep pockets) then t= here >>> are probably a few companies that will happily take your money. >>> >>> Maintaining binaries is a slightly different issue, but it=E2=80=99s no= t totally >>> unrelated. Keeping old packages around consumes disk space and costs t= he >>> project money (remember, every package is mirrored across the CDN, so t= his >>> isn=E2=80=99t just a single disk). Even if it were free, philosophical= ly, I think >>> making it easy for users to install known-insecure software is a bad id= ea >>> but if you want to keep a package repo with out-of-date packages online >>> indefinitely then you can. You can run Poudriere and even cross-compil= e >>> from a fairly beefy cloud machine quite easily. >>> >>> It=E2=80=99s been a while since I did a full package build, but I would= guess >>> that you could do a single package build (all ports) for about $50 on a >>> cloud VM, more (2-3x) if it=E2=80=99s emulated. Storing the results fo= r a small >>> number of users will cost around $10-20/month. If you think this is an >>> important thing to do, then you are absolutely welcome to spend your ow= n >>> money on doing it. >>> >>> David >>> >>> >> >> -- >> Mario. >> > > > -- > Mario. > --000000000000bd9405060f3f9248 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


=
On Wed, Jan 17, 2024 at 3:54=E2=80=AF= PM Mario Marietto <marietto200= 8@gmail.com> wrote:
He=
llo to everyone.

I'm trying to copy the Chromebook's SNOW so= urce files that have been included on the FreeBSD 11
revision 269385 to= the new FreeBSD 13 revision 373300. It has compiled correctly world,but wh= en it
starts to compile the kernel,it gives a lot of "unknown optio= n" errors. Is there a way to fix them ?

# svn co http://svn.freebsd.org/base/head@269385 ./head-269385 ; taken fro=
m this tutorial :

https://wiki.freebsd.org/arm/Chromebook
<= code> # svn co htt= p://svn.freebsd.org/base/head ./head-373300 # cp ./head-269395/sys/arm/conf/CHROMEBOOK-SNOW ./head-373300/sys/arm/conf # cd ./head-373300 # make TARGET_ARCH=3Darmv7 KERNCONF=3DCHROMEBOOK-SNOW buildworld buildkerne= l

I tried also with : make TARGET_ARCH=3Darmv6 KERNCONF= =3DCHROMEBOOK-SNOW buildworld buildkernel,but it
didn'= t make any difference.
.....
.....
--------------------------------------------------------------
>>> World build completed on Wed Jan 17 21:27:04 CET 2024
>>> World built in 14203 seconds, ncpu: 16
--------------------------------------------------------------
make[1]: "/mnt/zroot2/zroot2/OS/Chromebook/head-373300/Makefile.inc1&q=
uot; line 341: SYSTEM_COMPILER: lib
clang will be built for bootstrapping a cross-compiler.
make[1]: "/mnt/zroot2/zroot2/OS/Chromebook/head-373300/Makefile.inc1&q=
uot; line 346: SYSTEM_LINKER: libcl
ang will be built for bootstrapping a cross-linker.

--------------------------------------------------------------
>>> Kernel build for CHROMEBOOK-SNOW started on Wed Jan 17 21:27:0=
4 CET 2024
--------------------------------------------------------------
=3D=3D=3D> CHROMEBOOK-SNOW
mkdir -p /usr/obj/mnt/zroot2/zroot2/OS/Chromebook/head-373300/arm.armv7/sys

--------------------------------------------------------------
>>> stage 1: configuring the kernel
--------------------------------------------------------------
cd /mnt/zroot2/zroot2/OS/Chromebook/head-373300/sys/arm/conf;  PATH=3D/usr/=
obj/mnt/zroot2/zroot2/OS/Ch
romebook/head-373300/arm.armv7/tmp/bin:/usr/obj/mnt/zroot2/zroot2/OS/Chrome=
book/head-373300/arm.armv
7/tmp/usr/sbin:/usr/obj/mnt/zroot2/zroot2/OS/Chromebook/head-373300/arm.arm=
v7/tmp/usr/bin:/usr/obj/m
nt/zroot2/zroot2/OS/Chromebook/head-373300/arm.armv7/tmp/legacy/usr/sbin:/u=
sr/obj/mnt/zroot2/zroot2/
OS/Chromebook/head-373300/arm.armv7/tmp/legacy/usr/bin:/usr/obj/mnt/zroot2/=
zroot2/OS/Chromebook/head
-373300/arm.armv7/tmp/legacy/bin:/usr/obj/mnt/zroot2/zroot2/OS/Chromebook/h=
ead-373300/arm.armv7/tmp/
legacy/usr/libexec::/sbin:/bin:/usr/sbin:/usr/bin  config  -d /usr/obj/mnt/=
zroot2/zroot2/OS/Chromebo
ok/head-373300/arm.armv7/sys/CHROMEBOOK-SNOW  -I '/mnt/zroot2/zroot2/OS=
/Chromebook/head-373300/sys/a
rm/conf' -I '/mnt/zroot2/zroot2/OS/Chromebook/head-373300/sys/arm/c=
onf'  '/mnt/zroot2/zroot2/OS/Chro
mebook/head-373300/sys/arm/conf/CHROMEBOOK-SNOW'
WARNING: duplicate option `DEBUG' encountered.

./head-373300/sys/arm/conf/CHROMEBOOK-SNOW: unknown option "IPI_IRQ_EN= D" / "IPI_IRQ_START / ARM_L2_PIPT"
and so on..=
.

these options are included inside the file "std.ex=
ynos5250" (that I have copied from the old to the new
so=
urce code). What I'm trying to do to stop these error is to comment the=
 offending lines :

nano ./head-373300/sys/arm/samsung/exy= nos/std.exynos5250 :
#options IPI_IRQ_START=3D0
#options IPI_IRQ_END=3D15

These likely require changes= to adopt exynos to INTRNG.
=C2=A0
#optio=
ns    ARM_L2_PIPT
This is likely a= nop. It was for ARMv4/5 only and google tells me exynos5250 was a dual cor= e Cortex A-15, which is armv7.

=C2=A0
but I susp= ect that a lot of options will be missing and the more comments I will make= ,the more the chance that it will not work will increase. ...

There's likely a lot of work here...

Warner
=C2=A0

On Mon, Jan 15, 2024 at 7:48=E2=80=AFPM Mario Marietto = <marietto200= 8@gmail.com> wrote:
Hello.

Do you hav= e deleted forever the set of packages and ports for FreeBSD 11 or you keep = them stored in DVDs that I can buy or download for a small amount of money = ? If yes,where ? To rebuild everything is out of my expertise.

On= Mon, Jan 15, 2024 at 7:15=E2=80=AFPM David Chisnall <theraven@freebsd.org> wrote:=
On 15 Jan 2024,= at 16:46, Mario Marietto <marietto2008@gmail.com> wrote:
>
> The ARM Chromebook is based on armv7,it is still recent.

For reference, the ARMv7 architecture was introduced in 2005.=C2=A0 The las= t cores that implemented the architecture were released in 2014.=C2=A0 This= is not a =E2=80=98recent=E2=80=99 architecture, it=E2=80=99s one that=E2= =80=99s 19 years old and has been largely dead for several years.

> But let's change perspective for a moment,don't think about th= e ARM Chromebook. My question is : how to upgrade FreeBSD when it goes EOL.=

Generally, run `freebsd-update`.=C2=A0 This is a very different question fr= om =E2=80=98how do I do a new install of an old an unsupported version?'= ;

> I ask this because there is a huge difference here between FreeBSD and= Linux. Today if you need to use , for example Ubuntu 14.0, you can use it = as is. Yes,there will be a lot of bugs,but it will work without crashes.=C2= =A0 But if you want to use an old FreeBSD system,nothing will work for you.= So,do you know some methods to install even packages or ports ? You know,t= here are cases when you need to do some experiments so that you can keep yo= ur machine off the internet,so you aren't scared that someone can compr= omise it. Totally prohibiting the users to use an old system,removing ports= and packages is not a choice that I approve of. And I'm not the only o= ne that thinks like this.

If you want to use an old and unsupported version of FreeBSD, no one is sto= pping you, but:

=C2=A0- You will need to build the releases.=C2=A0 The source code is still= in git, you can.=C2=A0 The scripts for building the release images are rig= ht there in the repo.=C2=A0 Just grab the relevant release or releng branch= and go.

=C2=A0- You will need to build packages.=C2=A0 Newer versions of the ports = tree will not be tested with the older release, so you may need to use an o= lder checkout of the ports tree.=C2=A0 Poudriere will build a package repo = for you.=C2=A0

In both cases, if you=E2=80=99re using older versions you almost certainly = *will* have security vulnerabilities.=C2=A0 The project strongly advises yo= u not to do this and not to blame us when you install known-insecure softwa= re and end up compromised.

The project does not have enough active contributors to keep maintaining th= ings indefinitely.=C2=A0 This is why release have a five-year supported lif= etime.=C2=A0 If you want to pick up an old branch and maintain it, you=E2= =80=99re welcome to.=C2=A0 In the past, companies have picked up old branch= es and maintained them for customers that had a dependency on them.=C2=A0 I= f you want to pay someone to maintain an old branch (and have deep pockets)= then there are probably a few companies that will happily take your money.=

Maintaining binaries is a slightly different issue, but it=E2=80=99s not to= tally unrelated.=C2=A0 Keeping old packages around consumes disk space and = costs the project money (remember, every package is mirrored across the CDN= , so this isn=E2=80=99t just a single disk).=C2=A0 Even if it were free, ph= ilosophically, I think making it easy for users to install known-insecure s= oftware is a bad idea but if you want to keep a package repo with out-of-da= te packages online indefinitely then you can.=C2=A0 You can run Poudriere a= nd even cross-compile from a fairly beefy cloud machine quite easily.

It=E2=80=99s been a while since I did a full package build, but I would gue= ss that you could do a single package build (all ports) for about $50 on a = cloud VM, more (2-3x) if it=E2=80=99s emulated.=C2=A0 Storing the results f= or a small number of users will cost around $10-20/month.=C2=A0 If you thin= k this is an important thing to do, then you are absolutely welcome to spen= d your own money on doing it.

David



--
Mario.


--
Mario.
--000000000000bd9405060f3f9248-- From nobody Thu Jan 18 23:28:09 2024 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 4TGJpH0RRKz57Gtq for ; Thu, 18 Jan 2024 23:28:23 +0000 (UTC) (envelope-from bsd-lists@bsdforge.com) Received: from udns.ultimatedns.net (udns.ultimatedns.net [24.113.41.81]) (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-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "ultimatedns.net", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4TGJpG4fj5z4QSX; Thu, 18 Jan 2024 23:28:22 +0000 (UTC) (envelope-from bsd-lists@bsdforge.com) Authentication-Results: mx1.freebsd.org; none Received: from ultimatedns.net (localhost [127.0.0.1]) by udns.ultimatedns.net (8.16.1/8.16.1) with ESMTP id 40INS9tc099996; Thu, 18 Jan 2024 15:28:15 -0800 (PST) (envelope-from bsd-lists@bsdforge.com) 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 Date: Thu, 18 Jan 2024 15:28:09 -0800 From: Chris To: Jan Beich Cc: freebsd-current Subject: Re: Alder lake supported? (graphics) In-Reply-To: References: <666f1d1b09c1e23a36a90a125546f0f3@bsdforge.com> User-Agent: UDNSMS/17.0 Message-ID: <4bae65e0dc5766ce8c2cf58cff91af0d@bsdforge.com> X-Sender: bsd-lists@bsdforge.com Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 4TGJpG4fj5z4QSX X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:11404, ipnet:24.113.0.0/16, country:US] On 2024-01-18 08:47, Jan Beich wrote: > Chris writes: > >> On 2024-01-16 19:02, Jan Beich wrote: >> >>> Chris writes: >>> >>>> I upgraded to an alder lake based machine and installed 14. >>>> But I can't seem to get the intel graphics loaded (drm-515-kmod). >>>> It simply freezes at load. >>>> Are Alder lake graphics supported? >>> Try drm-61-kmod instead (with gpu-firmware-intel-kmod-alderlake >= >>> 20230625). >>> Reported success in >>> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=270888#c8 > [...] >> I'm on 14. Commenting that conditional indicates I don't have a necessary >> file (linux/iosys-map.h). So looks like I'll we'll have to wait. Or I'll >> need to track 15. :( > > On current@ list -CURRENT is expected. Due to backward compatibility it's > possible to run -CURRENT kernel with -RELEASE userland (world + packages). > For example, poudriere (as used by the package cluster) relies on this > to build binary packages for older FreeBSD versions on the same machine. > > Alternatively, https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=274770#c5 > proposed a branch which removes .require_force_probe for both ADL-S and > ADL-P. > It builds fine on 14.0-RELEASE "as is" e.g., see ports/ diff below. > > diff --git a/graphics/drm-515-kmod/Makefile.version > b/graphics/drm-515-kmod/Makefile.version > index 4a7c27611bc8..469071220731 100644 > --- a/graphics/drm-515-kmod/Makefile.version > +++ b/graphics/drm-515-kmod/Makefile.version > @@ -1,5 +1,5 @@ > # drm-kmod common version definition > # > # This will be included from consumers such as nvidia-drm > -DRM_KMOD_DISTVERSION= 5.15.118 > -DRM_KMOD_GH_TAGNAME= drm_v5.15.118_4 > +DRM_KMOD_DISTVERSION= 5.15.focal > +DRM_KMOD_GH_TAGNAME= 97a4ad4364 > diff --git a/graphics/drm-515-kmod/distinfo b/graphics/drm-515-kmod/distinfo > index 3599fc42317b..cadc6be14456 100644 > --- a/graphics/drm-515-kmod/distinfo > +++ b/graphics/drm-515-kmod/distinfo > @@ -1,3 +1,3 @@ > -TIMESTAMP = 1703336317 > -SHA256 (freebsd-drm-kmod-5.15.118-drm_v5.15.118_4_GH0.tar.gz) = > 58e2fc195979e2361346ca57cc158e44413e5de26b83b951a631d09849caf90c > -SIZE (freebsd-drm-kmod-5.15.118-drm_v5.15.118_4_GH0.tar.gz) = 26092371 > +TIMESTAMP = 1698298780 > +SHA256 (freebsd-drm-kmod-5.15.focal-97a4ad4364_GH0.tar.gz) = > fc6a94a74aea714bb25ccf788b8361de4db348ef1893fc391d00bd346e828732 > +SIZE (freebsd-drm-kmod-5.15.focal-97Thank you very mua4ad4364_GH0.tar.gz) = > 26126042 Thank you very much for all your time and efforts in your replies, Jan. I examined the the forum thread and applied your patch to a current pull of ports. After deinstalling my current install of 515.118, I performed a make install. Which proceeded as expected. A kld_list resulted in a hard lock, in the same way 515.118 did. Requiring the use of the power button to power it down. Then a boot to single-user for an fsck(8). Nothing reported in the logs. A boot without loading via rc.conf was went without incident. A kldload i915kms locked it up hard. Again, nothing reported in the logs. I'm keeping recent copies of /var/logs/messages in case there is anything anyone might be interested in looking at. At this point I've resolved to boot a recent 15 and format my current slices and unpack a recent snapshot of 15 in hopes of getting decent graphics support on this. I'm happy to test or further report anything that might be helpful for others. Thanks again! --Chris From nobody Thu Jan 18 23:42:20 2024 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 4TGK6W4NQJz57HxG for ; Thu, 18 Jan 2024 23:42:27 +0000 (UTC) (envelope-from bsd-lists@bsdforge.com) Received: from udns.ultimatedns.net (udns.ultimatedns.net [24.113.41.81]) (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-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "ultimatedns.net", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4TGK6W1mk5z4VqB; Thu, 18 Jan 2024 23:42:27 +0000 (UTC) (envelope-from bsd-lists@bsdforge.com) Authentication-Results: mx1.freebsd.org; dkim=none; spf=none (mx1.freebsd.org: domain of bsd-lists@bsdforge.com has no SPF policy when checking 24.113.41.81) smtp.mailfrom=bsd-lists@bsdforge.com Received: from ultimatedns.net (localhost [127.0.0.1]) by udns.ultimatedns.net (8.16.1/8.16.1) with ESMTP id 40INgL8L037763; Thu, 18 Jan 2024 15:42:27 -0800 (PST) (envelope-from bsd-lists@bsdforge.com) 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 Date: Thu, 18 Jan 2024 15:42:20 -0800 From: Chris To: Jan Beich Cc: freebsd-current Subject: Re: Alder lake supported? (graphics) In-Reply-To: <4bae65e0dc5766ce8c2cf58cff91af0d@bsdforge.com> References: <666f1d1b09c1e23a36a90a125546f0f3@bsdforge.com> <4bae65e0dc5766ce8c2cf58cff91af0d@bsdforge.com> User-Agent: UDNSMS/17.0 Message-ID: X-Sender: bsd-lists@bsdforge.com Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 4TGK6W1mk5z4VqB X-Spamd-Bar: / X-Rspamd-Pre-Result: action=no action; module=multimap; Matched map: local_wl_ip X-Spamd-Result: default: False [0.00 / 15.00]; MIME_GOOD(-0.10)[text/plain]; ONCE_RECEIVED(0.10)[]; MIME_TRACE(0.00)[0:+]; local_wl_ip(0.00)[24.113.41.81]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; R_DKIM_NA(0.00)[]; ASN(0.00)[asn:11404, ipnet:24.113.0.0/16, country:US]; FROM_EQ_ENVFROM(0.00)[]; R_SPF_NA(0.00)[no SPF record]; FROM_HAS_DN(0.00)[]; SUBJECT_HAS_QUESTION(0.00)[] On 2024-01-18 15:28, Chris wrote: > On 2024-01-18 08:47, Jan Beich wrote: >> Chris writes: >> >>> On 2024-01-16 19:02, Jan Beich wrote: >>> >>>> Chris writes: >>>> >>>>> I upgraded to an alder lake based machine and installed 14. >>>>> But I can't seem to get the intel graphics loaded (drm-515-kmod). >>>>> It simply freezes at load. >>>>> Are Alder lake graphics supported? >>>> Try drm-61-kmod instead (with gpu-firmware-intel-kmod-alderlake >= >>>> 20230625). >>>> Reported success in >>>> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=270888#c8 >> [...] >>> I'm on 14. Commenting that conditional indicates I don't have a necessary >>> file (linux/iosys-map.h). So looks like I'll we'll have to wait. Or I'll >>> need to track 15. :( >> >> On current@ list -CURRENT is expected. Due to backward compatibility it's >> possible to run -CURRENT kernel with -RELEASE userland (world + packages). >> For example, poudriere (as used by the package cluster) relies on this >> to build binary packages for older FreeBSD versions on the same machine. >> >> Alternatively, https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=274770#c5 >> proposed a branch which removes .require_force_probe for both ADL-S and >> ADL-P. >> It builds fine on 14.0-RELEASE "as is" e.g., see ports/ diff below. >> >> diff --git a/graphics/drm-515-kmod/Makefile.version >> b/graphics/drm-515-kmod/Makefile.version >> index 4a7c27611bc8..469071220731 100644 >> --- a/graphics/drm-515-kmod/Makefile.version >> +++ b/graphics/drm-515-kmod/Makefile.version >> @@ -1,5 +1,5 @@ >> # drm-kmod common version definition >> # >> # This will be included from consumers such as nvidia-drm >> -DRM_KMOD_DISTVERSION= 5.15.118 >> -DRM_KMOD_GH_TAGNAME= drm_v5.15.118_4 >> +DRM_KMOD_DISTVERSION= 5.15.focal >> +DRM_KMOD_GH_TAGNAME= 97a4ad4364 >> diff --git a/graphics/drm-515-kmod/distinfo >> b/graphics/drm-515-kmod/distinfo >> index 3599fc42317b..cadc6be14456 100644 >> --- a/graphics/drm-515-kmod/distinfo >> +++ b/graphics/drm-515-kmod/distinfo >> @@ -1,3 +1,3 @@ >> -TIMESTAMP = 1703336317 >> -SHA256 (freebsd-drm-kmod-5.15.118-drm_v5.15.118_4_GH0.tar.gz) = >> 58e2fc195979e2361346ca57cc158e44413e5de26b83b951a631d09849caf90c >> -SIZE (freebsd-drm-kmod-5.15.118-drm_v5.15.118_4_GH0.tar.gz) = 26092371 >> +TIMESTAMP = 1698298780 >> +SHA256 (freebsd-drm-kmod-5.15.focal-97a4ad4364_GH0.tar.gz) = >> fc6a94a74aea714bb25ccf788b8361de4db348ef1893fc391d00bd346e828732 >> +SIZE (freebsd-drm-kmod-5.15.focal-97Thank you very mua4ad4364_GH0.tar.gz) >> = 26126042 > Thank you very much for all your time and efforts in your replies, Jan. > I examined the the forum thread and applied your patch to a current pull of > ports. > After deinstalling my current install of 515.118, I performed a make > install. Which > proceeded as expected. A kld_list resulted in a hard lock, in the same way > 515.118 did. > Requiring the use of the power button to power it down. Then a boot to > single-user for > an fsck(8). Nothing reported in the logs. A boot without loading via rc.conf > was went > without incident. A kldload i915kms locked it up hard. Again, nothing > reported in the > logs. I'm keeping recent copies of /var/logs/messages in case there is > anything anyone > might be interested in looking at. > At this point I've resolved to boot a recent 15 and format my current slices > and unpack > a recent snapshot of 15 in hopes of getting decent graphics support on this. > I'm happy > to test or further report anything that might be helpful for others. > I forgot to mention. When calling kldload i915kms the screen returned only (transcribed): iic0: < I2C generic I/O > iicbus0 iic1: < I2C generic I/O > iicbus1 Lindebugfs registered Thanks again. --Chris From nobody Fri Jan 19 08:04:16 2024 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 4TGXFj1hQJz587LG for ; Fri, 19 Jan 2024 08:04:25 +0000 (UTC) (envelope-from bsd-lists@bsdforge.com) Received: from udns.ultimatedns.net (udns.ultimatedns.net [24.113.41.81]) (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-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "ultimatedns.net", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4TGXFh1Vfkz4HGD; Fri, 19 Jan 2024 08:04:24 +0000 (UTC) (envelope-from bsd-lists@bsdforge.com) Authentication-Results: mx1.freebsd.org; dkim=none; spf=none (mx1.freebsd.org: domain of bsd-lists@bsdforge.com has no SPF policy when checking 24.113.41.81) smtp.mailfrom=bsd-lists@bsdforge.com Received: from ultimatedns.net (localhost [127.0.0.1]) by udns.ultimatedns.net (8.16.1/8.16.1) with ESMTP id 40J84Hmp059014; Fri, 19 Jan 2024 00:04:23 -0800 (PST) (envelope-from bsd-lists@bsdforge.com) 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 Date: Fri, 19 Jan 2024 00:04:16 -0800 From: Chris To: Jan Beich Cc: freebsd-current Subject: Re: Alder lake supported? (graphics) In-Reply-To: References: <666f1d1b09c1e23a36a90a125546f0f3@bsdforge.com> <4bae65e0dc5766ce8c2cf58cff91af0d@bsdforge.com> User-Agent: UDNSMS/17.0 Message-ID: <38ab771d76d26fd8dd026793aa9d37a7@bsdforge.com> X-Sender: bsd-lists@bsdforge.com Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 4TGXFh1Vfkz4HGD X-Spamd-Bar: / X-Rspamd-Pre-Result: action=no action; module=multimap; Matched map: local_wl_ip X-Spamd-Result: default: False [0.00 / 15.00]; MIME_GOOD(-0.10)[text/plain]; ONCE_RECEIVED(0.10)[]; MIME_TRACE(0.00)[0:+]; local_wl_ip(0.00)[24.113.41.81]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; R_DKIM_NA(0.00)[]; ASN(0.00)[asn:11404, ipnet:24.113.0.0/16, country:US]; FROM_EQ_ENVFROM(0.00)[]; R_SPF_NA(0.00)[no SPF record]; FROM_HAS_DN(0.00)[]; SUBJECT_HAS_QUESTION(0.00)[] On 2024-01-18 15:42, Chris wrote: > On 2024-01-18 15:28, Chris wrote: >> On 2024-01-18 08:47, Jan Beich wrote: >>> Chris writes: >>> >>>> On 2024-01-16 19:02, Jan Beich wrote: >>>> >>>>> Chris writes: >>>>> >>>>>> I upgraded to an alder lake based machine and installed 14. >>>>>> But I can't seem to get the intel graphics loaded (drm-515-kmod). >>>>>> It simply freezes at load. >>>>>> Are Alder lake graphics supported? >>>>> Try drm-61-kmod instead (with gpu-firmware-intel-kmod-alderlake >= >>>>> 20230625). >>>>> Reported success in >>>>> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=270888#c8 >>> [...] >>>> I'm on 14. Commenting that conditional indicates I don't have a necessary >>>> file (linux/iosys-map.h). So looks like I'll we'll have to wait. Or I'll >>>> need to track 15. :( >>> >>> On current@ list -CURRENT is expected. Due to backward compatibility it's >>> possible to run -CURRENT kernel with -RELEASE userland (world + packages). >>> For example, poudriere (as used by the package cluster) relies on this >>> to build binary packages for older FreeBSD versions on the same machine. >>> >>> Alternatively, https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=274770#c5 >>> proposed a branch which removes .require_force_probe for both ADL-S and >>> ADL-P. >>> It builds fine on 14.0-RELEASE "as is" e.g., see ports/ diff below. >>> >>> diff --git a/graphics/drm-515-kmod/Makefile.version >>> b/graphics/drm-515-kmod/Makefile.version >>> index 4a7c27611bc8..469071220731 100644 >>> --- a/graphics/drm-515-kmod/Makefile.version >>> +++ b/graphics/drm-515-kmod/Makefile.version >>> @@ -1,5 +1,5 @@ >>> # drm-kmod common version definition >>> # >>> # This will be included from consumers such as nvidia-drm >>> -DRM_KMOD_DISTVERSION= 5.15.118 >>> -DRM_KMOD_GH_TAGNAME= drm_v5.15.118_4 >>> +DRM_KMOD_DISTVERSION= 5.15.focal >>> +DRM_KMOD_GH_TAGNAME= 97a4ad4364 >>> diff --git a/graphics/drm-515-kmod/distinfo >>> b/graphics/drm-515-kmod/distinfo >>> index 3599fc42317b..cadc6be14456 100644 >>> --- a/graphics/drm-515-kmod/distinfo >>> +++ b/graphics/drm-515-kmod/distinfo >>> @@ -1,3 +1,3 @@ >>> -TIMESTAMP = 1703336317 >>> -SHA256 (freebsd-drm-kmod-5.15.118-drm_v5.15.118_4_GH0.tar.gz) = >>> 58e2fc195979e2361346ca57cc158e44413e5de26b83b951a631d09849caf90c >>> -SIZE (freebsd-drm-kmod-5.15.118-drm_v5.15.118_4_GH0.tar.gz) = 26092371 >>> +TIMESTAMP = 1698298780 >>> +SHA256 (freebsd-drm-kmod-5.15.focal-97a4ad4364_GH0.tar.gz) = >>> fc6a94a74aea714bb25ccf788b8361de4db348ef1893fc391d00bd346e828732 >>> +SIZE (freebsd-drm-kmod-5.15.focal-97Thank you very mua4ad4364_GH0.tar.gz) >>> = 26126042 >> Thank you very much for all your time and efforts in your replies, Jan. >> I examined the the forum thread and applied your patch to a current pull of >> ports. >> After deinstalling my current install of 515.118, I performed a make >> install. Which >> proceeded as expected. A kld_list resulted in a hard lock, in the same way >> 515.118 did. >> Requiring the use of the power button to power it down. Then a boot to >> single-user for >> an fsck(8). Nothing reported in the logs. A boot without loading via >> rc.conf was went >> without incident. A kldload i915kms locked it up hard. Again, nothing >> reported in the >> logs. I'm keeping recent copies of /var/logs/messages in case there is >> anything anyone >> might be interested in looking at. >> At this point I've resolved to boot a recent 15 and format my current >> slices and unpack >> a recent snapshot of 15 in hopes of getting decent graphics support on >> this. I'm happy >> to test or further report anything that might be helpful for others. >> > I forgot to mention. When calling kldload i915kms > the screen returned only (transcribed): > > iic0: < I2C generic I/O > iicbus0 > iic1: < I2C generic I/O > iicbus1 > Lindebugfs registered > UPDATE It's not i915kms that causes the problem. Turns out to be the graphics/gpu-firmware-intel-kmod. I opened a pr (https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=276451). Thanks again for all your help, Jan. --Chris From nobody Fri Jan 19 17:33:53 2024 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 4TGmv56M5Qz56ytr for ; Fri, 19 Jan 2024 17:34:09 +0000 (UTC) (envelope-from fernando.apesteguia@gmail.com) Received: from mail-lf1-f54.google.com (mail-lf1-f54.google.com [209.85.167.54]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1D4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4TGmv42vJRz4SM1 for ; Fri, 19 Jan 2024 17:34:08 +0000 (UTC) (envelope-from fernando.apesteguia@gmail.com) Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=freebsd.org (policy=none); spf=pass (mx1.freebsd.org: domain of fernando.apesteguia@gmail.com designates 209.85.167.54 as permitted sender) smtp.mailfrom=fernando.apesteguia@gmail.com Received: by mail-lf1-f54.google.com with SMTP id 2adb3069b0e04-50e7abe4be4so1408424e87.2 for ; Fri, 19 Jan 2024 09:34:08 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705685646; x=1706290446; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=P98jkUJHWChUQJSieFUlWbEYA8EpjvwldhWRb1/dJpw=; b=O19oDVAOAjH1NS4F3dyUHWLVmWEp/QtTDFftoIc6Brh8ChXPGFuLsctEi41N31DNEL nEZ8AofV49ijaE8qyKiejzJ69cr/NZ3MpKqzTjI1gWXPoM3sVPWA5vOsjpsBnKGCcaU+ uZPhsZA/W2hYngCzbTZxytUAEA4M+A5a6mv2Xw7HmCxFcF1VYOpJsLaYHyxwvkMazLFD zLT1nyW7zAtlBeXeXTSHtgUunC4yVMgJKEa6+kH2k6CKqEnqnVGH4Af00OZ8SSO2XXO5 U6u6oistxvXquoHBpwgdYLdkjcEQf6/uo4zktll0PC7a4lxYaf1kBpyxlIb2zhTIqIcO Jsmw== X-Gm-Message-State: AOJu0YxxJg5KpNerypWxJry+HpnEvhGuzFFWUMnKNNge/Wb8195U5vAn Y/ommuB926NRO6DkAi46Wd1x+fOuXrf0hGe0eVrPKJFNOzsr5MKUSvN8xZEr X-Google-Smtp-Source: AGHT+IEbowu+3fOGXv70D9DYcD4rERhSczEtTHeFpqCY4E0jbHDibbrBsilo0L03Qr5GYqdLdALSsg== X-Received: by 2002:a05:6512:280d:b0:50e:a08d:174 with SMTP id cf13-20020a056512280d00b0050ea08d0174mr11896lfb.95.1705685645829; Fri, 19 Jan 2024 09:34:05 -0800 (PST) Received: from mail-lf1-f44.google.com (mail-lf1-f44.google.com. [209.85.167.44]) by smtp.gmail.com with ESMTPSA id f17-20020ac25331000000b0050f1c739d36sm142599lfh.236.2024.01.19.09.34.05 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 19 Jan 2024 09:34:05 -0800 (PST) Received: by mail-lf1-f44.google.com with SMTP id 2adb3069b0e04-50e5a9bcec9so1176678e87.3 for ; Fri, 19 Jan 2024 09:34:05 -0800 (PST) X-Received: by 2002:ac2:5df3:0:b0:50e:7daf:3141 with SMTP id z19-20020ac25df3000000b0050e7daf3141mr14678lfq.58.1705685645598; Fri, 19 Jan 2024 09:34:05 -0800 (PST) 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 From: =?UTF-8?Q?Fernando_Apestegu=C3=ADa?= Date: Fri, 19 Jan 2024 18:33:53 +0100 X-Gmail-Original-Message-ID: Message-ID: Subject: Error while linking bsdinstall To: freebsd-current Content-Type: multipart/alternative; boundary="0000000000000127e9060f4fe3cd" X-Spamd-Bar: -- X-Spamd-Result: default: False [-2.18 / 15.00]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-0.997]; R_MIXED_CHARSET(0.71)[subject]; FORGED_SENDER(0.30)[fernape@freebsd.org,fernandoapesteguia@gmail.com]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; DMARC_POLICY_SOFTFAIL(0.10)[freebsd.org : SPF not aligned (relaxed), No valid DKIM,none]; TO_MATCH_ENVRCPT_ALL(0.00)[]; TO_DN_ALL(0.00)[]; RCVD_TLS_LAST(0.00)[]; FROM_HAS_DN(0.00)[]; ARC_NA(0.00)[]; RCVD_COUNT_THREE(0.00)[3]; MIME_TRACE(0.00)[0:+,1:+,2:~]; RCPT_COUNT_ONE(0.00)[1]; TAGGED_FROM(0.00)[]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; FREEMAIL_ENVFROM(0.00)[gmail.com]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; PREVIOUSLY_DELIVERED(0.00)[freebsd-current@freebsd.org]; FROM_NEQ_ENVFROM(0.00)[fernape@freebsd.org,fernandoapesteguia@gmail.com]; MISSING_XM_UA(0.00)[]; R_DKIM_NA(0.00)[]; RWL_MAILSPIKE_POSSIBLE(0.00)[209.85.167.54:from]; TO_DOM_EQ_FROM_DOM(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[209.85.167.54:from,209.85.167.44:received] X-Rspamd-Queue-Id: 4TGmv42vJRz4SM1 --0000000000000127e9060f4fe3cd Content-Type: text/plain; charset="UTF-8" Hi all, I'm having a problem linking bsdinstall in current dfe30e41967f9b5112c42ca20ec2c366db74cef9 ld: error: undefined symbol: bsddialog_clear >>> referenced by part_wizard.c:76 (/data/fernape_data/FreeBSD-repos/src/usr.sbin/bsdinstall/partedit/part_wizard.c:76) >>> part_wizard.o:(part_wizard) >>> referenced by part_wizard.c:84 (/data/fernape_data/FreeBSD-repos/src/usr.sbin/bsdinstall/partedit/part_wizard.c:84) >>> part_wizard.o:(part_wizard) >>> referenced by partedit.c:126 (/data/fernape_data/FreeBSD-repos/src/usr.sbin/bsdinstall/partedit/partedit.c:126) >>> partedit.o:(main) cc: error: linker command failed with exit code 1 (use -v to see invocation) *** Error code 1 Anything I forgot to do? This is in a branch that I had lingering that I rebased with main without any issues. Thanks in advance. --0000000000000127e9060f4fe3cd Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi all,

I'm having a pro= blem linking bsdinstall in current dfe30e41967f9b5112c42ca20ec2c366db74cef9=

ld: error: undefined symbol: bsddialog_clear
&= gt;>> referenced by part_wizard.c:76 (/data/fernape_data/FreeBSD-repo= s/src/usr.sbin/bsdinstall/partedit/part_wizard.c:76)
>>> =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 part_wizard.o:(part_wizard)
&= gt;>> referenced by part_wizard.c:84 (/data/fernape_data/FreeBSD-repo= s/src/usr.sbin/bsdinstall/partedit/part_wizard.c:84)
>>> =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 part_wizard.o:(part_wizard)
&= gt;>> referenced by partedit.c:126 (/data/fernape_data/FreeBSD-repos/= src/usr.sbin/bsdinstall/partedit/partedit.c:126)
>>> =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 partedit.o:(main)
cc: error: link= er command failed with exit code 1 (use -v to see invocation)
*** Error = code 1

Anything I forgot to do? This is in a branc= h that I had lingering that I rebased with main without any issues.

Thanks in advance.
--0000000000000127e9060f4fe3cd--