From nobody Thu Feb 29 18:04:03 2024 X-Original-To: freebsd-arm@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 4Tlzd02cRNz5Cd71 for ; Thu, 29 Feb 2024 18:04:20 +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 4Tlzcz27r4z4HtT for ; Thu, 29 Feb 2024 18:04:19 +0000 (UTC) (envelope-from marklmi@yahoo.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=yahoo.com header.s=s2048 header.b=bg+o740y; dmarc=pass (policy=reject) header.from=yahoo.com; spf=pass (mx1.freebsd.org: domain of marklmi@yahoo.com designates 98.137.69.83 as permitted sender) smtp.mailfrom=marklmi@yahoo.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1709229857; bh=XKbU46HuaJuZmFq0r4kSgD3+G4r1DGwK2SGZ1KFKLaQ=; h=From:Subject:Date:References:To:In-Reply-To:From:Subject:Reply-To; b=bg+o740yRqTl6xyB0+NrRbRi4rZWTHmgulYmmxnO8gsulqBv35t5HxTCx7laizLVEBTQVoO16eMgPay8bmiso6VHesUhtZv4McTms1EEfnBNuoKSOlme9r30M+4JyAsrSt4Ou/JXgVEpiOXpjD/+nN8sR9Y+1TcgGuPSDGwYeLYWPVbOxzdJ7ZkSRO2fD7pULKX97z249SFa+xai16oi0IJ5iP1kJXHTALyildsHSKa7BDZIAMZB8VEt+LEMhKa1lxDsSoxUyhr07+MctWhrD/1Ngb7t0Sn+y2k6jkSM74hSg14wV2MiA31OfymKrUmAPtAFeN0Nb8PMmKfiItnSzw== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1709229857; bh=Y73mLsJkfgVKpkTjmeJmZKEU1KH1KvG1u6kx7hDHUnp=; h=X-Sonic-MF:From:Subject:Date:To:From:Subject; b=Tnrw3iTHFzScK1JZdTS8o8iOcv/f+BAKMuqPti1GUYGyIwnSRYZhBYKW0jKbwuTLM/2vyhLBAHZWyeOrS7U70LEqNMtZd5nFNirfeP2zRsPalJGmNrDeWFfEjCGu8XsEgFXbS/Ru8gmk8kzYkNmMcgqi941kHPGYEHOyLwdpC8nsrkPb7lYgaRV2dtVZkheg9cjnYpxjskUFfZ25HBjb6Z9wjrKMUkZsw2ZHSM/fQN9VrRvLqs/CwZ5pJIFY4+U8ymjwgQJ0eju/QHFkWfLSoWWQv2uvuZcFZ380TGXiXiZfQSOZwfjPtJX6KqjndJ+2Os0jTtMjyOa2x2Z/v8RVFg== X-YMail-OSG: ZE1xQSIVM1lxI8i9eg75b4MzrJC0V7SUZDT6ClRynU6WY16kFlmSAdcpZBaNeBl oeLALMpnl0NDnVRRhNB.Y.XrkH1w6Tmzc3qqU68CFtkCgbLuYtucfR0a6dkoXu7wZhOj.pgoBIP7 pvFKISxMvFnS6g11bwOZsg3ZpSGbEQeM3xUkhczKi4R2kxzIuo8QLxks5wo4anBnMz6LZJirnYut iPwmFFFRIKUqfYHEY0jogPii.cUHN6qS1XVhz8ZQr4dP6YrVgPWafXkPN5bz23zpBzTX3JJTnW09 11nc4l_tW2xdX_qzU5rgP0ohkwYggQeCATNGGEfUAdH7sxX6tmfeD7L5WqDYzOfX3Yp1r3SSVMQH gYRtxSV6XVTPHWlkMf1vEAgJv.v1MnB1YKFp4ltvxsfGRfN.M_iAckDavIJHp4CX5wKQzTM4wNIF vo8EJGQ239fGMXWCIcpmZ16G3TroOUWyOJf9LXeasH2j5pXbEhh8q5EYR6ObyZfJz.bA37EgN5C5 vyUDdfAbo4YKAMT9K8DZHs2VRpOdYWhlovvPWIojKU7YxvfWa8nC2.Hiw0In.URvyZ3J3xzKw3XG xCt5Cyjp1SCpyOtZuyvhhbP8pX41dCNOncnW7LwewuFTlo.VSpbTka25okfw1wiBkZwXoQFU0XxH 1WqM98xuS7WG1WKbf7z1MwfuWQWEOYYCukNosEhIriDX3NjkjZXFs7VtEqxKSYTcAOcBjnCp.0sF cNBkJVg830hAUbiWK3DIxzj19GguO5yCH6e9zDdrJ6OaZjaSB4Ua6OXp.RjFsXK.3aNFM1CugYVs F1ZxzhqpcKDHsTG7razaEhSfvb6U9bCZO_Qw2KDQVO5o8oBTzzcRYGjFtdMpf9DMtD8ij.Hp1_tB VPACSm5LOZfC1FSIRIgo_YNtf4Im25q1R5uPIYvef5GmiYun7B0Ps19UPawDwECmz4KO9sT_hbIZ cYvT9LQICfK9kypwrQ_LrCBYQA4SZQoqZ3bcKHnymatk_GpSNJpZzaKnrbWccDvr1ZsmRwBDIx6p SoK6.oCSdMSV5JTheAWN9JQkiMw0maThK6X8BMNbokKhrY5b1kOUCpVVOkGsQP.oItHwr6hE39DQ BUjPV7udsGrzyw9DtgqGrmUCf2xfSICGtnvq61I2hrt81PNILlZ2EfZmCr_Kj_XsL_KG.FW9hxru DziDTnWl8yI0_d1mSCVdVxeUCGAXzQSlbL_RqcPmIEuGYH.eJ_U_fD2wjadK63eBpnoNrX8XvPEW WYsAD1i8C_NnJKaoDk10fIdMcgaiJUJR8vqCRBnZGAM527zSpEX7PY9PiKr9EoqGxHbLA9sO_Q9b MpuF_4eWOza_plnyJtnNwS.FVw4umeND6yhqnBye1YYkv8phk5CvdsQKc35KRCvb5mrtk4XazVCY BOLLosHSuPCHHb5P7cRf.En.eVja4RoAc4mDWGYr1C4SQPnzcsJDASZIBgcxOIW4yhyZh_RRfoBw DsGgsl4kuXv4SHS7U739BAmFGn3xDOlP3Awdfa2zGTjiWhc4qACCdb5GkqreoXMU9RfPVlrYbco4 hQE2FuN9jri0sMn6U59ss35uqiI9UJfUM.CkfiqmhrlOYyHalTEu2pyQ0hswSCRnTxFmQ8XrlRwU .tS8_jyouuqrBs34wn5j3ViI_7L3diMjKLdLn.NmHg6ufZNFXnHqn.xWSl_v0kXNHGQxRpCvtzkp ieSRAus3vM7L_vNw_Sz8EY_.Ia1Xt_MZu.LsEsiSVFlimeoQqgXvmrxQ4Z8h_kIM.26HwBmQvRPu Vl.TMPuK3dkhBJ8PbJxcSDlBuvvQZ1kEubrMFmxYiEKy_AHNHPdKmbqA0SkbwF7AOzqtMmTsk67a 8RT18QdQBHbtOto7UD0CvIeanu3HSl7qThmf_Y5bUcnnJWl7IgtVXNaQMq6gcnOFXgGBvnWZM1jl BAUdk3hc8rWI4H74XZAeeR8ZiL0brwhUhZEucbi6HjZVaRQK1zD6APFHRaJHG8l1S9HcbJDRPliy QfD8SwKoQvSkfTYV1BS6XkwVd6Ar4zyp_5EnYR9gZkwJtvx..JrXDGPVLrw2IeElAUqpflL8dvH_ R9SyZ2kpEWpiGQXElGgmkAgii8Q00HbCdkEGYzxreiPLzimgXCFUB2Ffza_uU5Y7lm5.fCbsJRXD Klni5Z_.V0B7x5x_wN4Bl3xW.kEHwSx.FiWjN5XAEQQ6opEsP5cWbcue9T.dPNbnD541cyJka78l o.CjABStvh0KE2LxUApxvt12oxaV8hfi5nNwuUdTVFlKgSnJyUH8NPnS28c2m3A7WAAnOLdoUjoR F6Q-- X-Sonic-MF: X-Sonic-ID: 77bdb3b5-13de-4930-9119-e182b219f6c1 Received: from sonic.gate.mail.ne1.yahoo.com by sonic314.consmr.mail.gq1.yahoo.com with HTTP; Thu, 29 Feb 2024 18:04:17 +0000 Received: by hermes--production-gq1-5c57879fdf-6xjwd (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID eeecf59e47b841fa6e8f40a5d8294895; Thu, 29 Feb 2024 18:04:14 +0000 (UTC) From: Mark Millard Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable List-Id: Porting FreeBSD to ARM processors List-Archive: https://lists.freebsd.org/archives/freebsd-arm List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-arm@freebsd.org Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.400.31\)) Subject: Re: How to investigate an unexpected port build time-taken relationship in an aarch64 context? Date: Thu, 29 Feb 2024 10:04:03 -0800 References: <7D640D5A-7514-480E-8D5B-58003DB558E1@yahoo.com> <900B51D1-2005-4281-BFBD-96B49B147A13@yahoo.com> To: freebsd-hackers , FreeBSD ARM List In-Reply-To: <900B51D1-2005-4281-BFBD-96B49B147A13@yahoo.com> Message-Id: X-Mailer: Apple Mail (2.3774.400.31) X-Spamd-Bar: -- X-Spamd-Result: default: False [-3.00 / 15.00]; SUBJECT_ENDS_QUESTION(1.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-1.000]; DMARC_POLICY_ALLOW(-0.50)[yahoo.com,reject]; R_SPF_ALLOW(-0.20)[+ptr:yahoo.com]; R_DKIM_ALLOW(-0.20)[yahoo.com:s=s2048]; MIME_GOOD(-0.10)[text/plain]; FROM_HAS_DN(0.00)[]; TO_DN_ALL(0.00)[]; RCVD_TLS_LAST(0.00)[]; RCPT_COUNT_TWO(0.00)[2]; MIME_TRACE(0.00)[0:+]; ARC_NA(0.00)[]; DWL_DNSWL_NONE(0.00)[yahoo.com:dkim]; FREEMAIL_FROM(0.00)[yahoo.com]; DKIM_TRACE(0.00)[yahoo.com:+]; RCVD_VIA_SMTP_AUTH(0.00)[]; FREEMAIL_ENVFROM(0.00)[yahoo.com]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; ASN(0.00)[asn:36647, ipnet:98.137.64.0/20, country:US]; MLMMJ_DEST(0.00)[freebsd-arm@freebsd.org]; APPLE_MAILER_COMMON(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; RWL_MAILSPIKE_POSSIBLE(0.00)[98.137.69.83:from]; RCVD_IN_DNSWL_NONE(0.00)[98.137.69.83:from] X-Rspamd-Queue-Id: 4Tlzcz27r4z4HtT [A different test case also gets the shorter time frame.] On Feb 28, 2024, at 22:59, Mark Millard wrote: > On Feb 28, 2024, at 18:46, Mark Millard wrote: >=20 >> Example HW Context: Windows Development Kit 2023 >> 8 cores: 4 cortex-A78C's and 4 cortex-X1C's >> Headless: serial console and ssh access, no x11 or the like = installed. >> UFS use. >>=20 >> Note: cortex-A76's are missing 3 or so instruction set >> features compared to A78C/X1C parts. Use of >> -mcpu=3Dcortex-a76 generated code is compatibile (and would allow >> the code to run on a cortex-a76 system, such as an RPi5 once >> supported). >>=20 >> I've been doing poudriere-devel bulk timing experiments based on: >>=20 >> A) PkgBase based system software (kernel and world) and >> general use of default code generation for ports and >> such. >>=20 >> B) A personal -mcpu=3Dcortex-a76 based kernel, world, port builds >> (into packages via poudriere-devel). >>=20 >> C) Also use of an armv7 poudriere jail based on armv7 PkgBase >> and default armv7 code generation. This was used in both the >> (A) and (B) contexts. These also show what I'm curious about. >>=20 >> Using the armv7 poudriere jail context for illustration: >>=20 >> For (B) used via the armv7 context: >>=20 >> [05:40:24] [03] [04:55:38] Finished lang/rust | rust-1.76.0: Success >> . . . >> [05:45:58] [01] [05:01:12] Finished devel/llvm18@default | = llvm18-18.1.0.r3: Success >> [05:46:00] [01] [00:00:00] Building devel/boost-libs | = boost-libs-1.84.0 >> [06:59:23] [01] [01:13:23] Finished devel/boost-libs | = boost-libs-1.84.0: Success >>=20 >> For (A) used via the armv7 poudriere jail context: >>=20 >> [06:33:21] [01] [05:40:48] Finished lang/rust | rust-1.76.0: Success >> . . . >> [06:40:05] [05] [05:48:09] Finished devel/llvm18@default | = llvm18-18.1.0.r3: Success >> [06:40:07] [01] [00:00:00] Building devel/boost-libs | = boost-libs-1.84.0 >> [06:57:48] [01] [00:17:41] Finished devel/boost-libs | = boost-libs-1.84.0: Success >>=20 >> The curiosity is about the 01:13:23 vs. 00:17:41 boost-libs: The >> ratio is large and in the opposite direction to most time trends. >>=20 >> Notes: Almost all the time llvm18 and rust were building, both were >> building but little else did and the load average was 16+ from the >> llvm18/rust build activity. When boost-libs was building it was the >> only thing building and it looked to be single threaded when I >> was watching. >=20 > I should have been explicit that the 01:13:23 was mostly > "stage" phase (not "build" phase) and I was referring to > the "stage" phase as far as single threaded is concerned. >=20 >> (A) and (B) without use of the armv7 context got similar results >> when I first noticed this but I'm going back and recording times >> for some variations. I do not have those to report other >> pairs of results yet. >>=20 >> (In the armv7 poudriere jail context reported:) >> (B) takes less time for llvm18 and rust than (A) does. >> (A) takes vastly less time for boost-libs than (B) does, >> approximately a factor of 4 for the time-ratio. >>=20 >> I'd be curious to get a clue what contributes to the boost-libs >> time ratio being so extreme once I have figures for other >> combinations of poudriere jail content vs. the system's content. >=20 > Turns out that for the aarch64 jail (PkgBase system and > default code generation), stage started about 10 min into > the boost-libs activity. Package started somewhat under 5 > minutes later. End result: >=20 > [05:55:56] [03] [05:33:12] Finished lang/rust | rust-1.76.0: Success > . . . > [06:04:37] [01] [05:41:53] Finished devel/llvm18@default | = llvm18-18.1.0.r3: Success > [06:04:39] [01] [00:00:00] Building devel/boost-libs | = boost-libs-1.84.0 > [06:20:50] [01] [00:16:11] Finished devel/boost-libs | = boost-libs-1.84.0: Success >=20 > So, very similar to the armv7 jail result for a PkgBase > system context (aarch64 boot and aarch64/armv7 PkgBase > jail, default code generation). >=20 > It appears that the boost-libs "stage" phase is the context > for my question. >=20 > For the jail code generation being based on -mcpu=3Dcortex-a76 > code generation but the boot having been PkgBase based: >=20 > Stage started about 11.5 min into the boost-libs activity. > Package started around 48 minutes later. End result > (showing only boost-libs): >=20 > [01:07:01] [01] [01:06:31] Finished devel/boost-libs | = boost-libs-1.84.0: Success >=20 > I'll note that bjam stays around 100% CPU in top during this > much longer "stage" phase. Definitely less than the 01:13:23 > time. MWCHAN "-", STAT RJ, PRI 135 when I looked. >=20 > For the jail code generation and boot context both being based > on -mcpu=3Dcortex-a76 code generation: >=20 > [05:16:38] [01] [00:49:22] Finished devel/boost-libs | = boost-libs-1.83.0_1: Success >=20 > Also definitely less than the 01:13:23 time. (I'm showing here an > earlier test when it was boost-libs v1.83.) >=20 > A ZFS context (instead of UFS context) showed: >=20 > [04:37:47] [03] [04:03:16] Finished lang/rust | rust-1.76.0: Success > . . . > [04:43:47] [01] [04:09:16] Finished devel/llvm18@default | = llvm18-18.1.0.r3: Success > [04:43:48] [01] [00:00:00] Building devel/boost-libs | = boost-libs-1.84.0 > [05:41:46] [01] [00:57:58] Finished devel/boost-libs | = boost-libs-1.84.0: Success Another test case . . . So I booted the -mcpu-cortex-a76 kernel and world (kernel configures to use LSE atomics) and chroot'd into a aarch64 PkgBase world that has a PkgBase jail for poudiere use and that uses default code generation. Stage started about 9 min into the boost-libs activity. Package started around 4.5 minutes later. End result (showing only boost-libs): [00:15:56] [01] [00:15:48] Finished devel/boost-libs | = boost-libs-1.84.0: Success =3D=3D=3D Mark Millard marklmi at yahoo.com