From nobody Mon Sep 22 11:39:46 2025 X-Original-To: freebsd-hackers@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 4cVh3t4GWbz67m4d for ; Mon, 22 Sep 2025 11:39:54 +0000 (UTC) (envelope-from paulf2718@gmail.com) Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com [IPv6:2a00:1450:4864:20::42d]) (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 "WR4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cVh3s6VV3z4Pdb for ; Mon, 22 Sep 2025 11:39:53 +0000 (UTC) (envelope-from paulf2718@gmail.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20230601 header.b=CgbYjR17; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of paulf2718@gmail.com designates 2a00:1450:4864:20::42d as permitted sender) smtp.mailfrom=paulf2718@gmail.com Received: by mail-wr1-x42d.google.com with SMTP id ffacd0b85a97d-3ee64bc6b85so2913672f8f.3 for ; Mon, 22 Sep 2025 04:39:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1758541187; x=1759145987; darn=freebsd.org; h=content-transfer-encoding:subject:from:content-language:to :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=KRkIyznAZezLOYcO3v+X7LsOOt4aUsnaYTmFWv9wyzk=; b=CgbYjR17So8eEvaAcY/bYxPoIJPpzcLbiOlUdhuqL2MbbFbZ1r3PkQk6YSl+E+U6jp SrJHYxhgaWKFA3hTmf3RfpjCnpGCsOngeGyacNxWgtQBJ5Nr8iMdixBzBZQ30bFppTws 9XVRlTSvuglMl9bqf1m+Pxe+adGehGBQOzlE0DN/6HcvQIFlBHdBGqSEVrhdCmSKpBA+ Q8l7ZkikJAkM+dFgoWto5kEeMfoMsNKCAZHwxFCtE7PlNvOjeVcv1C8K+s7JCfYA4CZk Ft95nKTIp3QkhqMiaQBOcbdxx9orOFUZfOCFPyE49gLOlu4VI3T3C9QSpu54k2ayMW1o nN+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758541187; x=1759145987; h=content-transfer-encoding:subject:from:content-language:to :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=KRkIyznAZezLOYcO3v+X7LsOOt4aUsnaYTmFWv9wyzk=; b=pOYTcfa22Vf4O09xhRWD6QFd11Atj/k0cZo8P6QVKzRw5/+V5I/YHqitFe+oftA9uH o91tr4Qq1RN9KIuJT1Q2r2dzh9Tkg0ajN8kFMeXFaVG4fIaqVuTjhH4604tb87LEU6Cy crA79XXsini21G9Rzmyy5iOkQOvPr/qjSgh8JVVPQOWQt3ZeU4OM3yFPMRjVy2T2A4xQ A+X/jAl+vsKZQPhdCCHfZGMtDMx3Bh7y1kANv7oWkCS5ZCjpnDNNS5UU5iNJQAZYIld+ oXgV+pHLIvnUZsTJ1eI7nGjoIUVfFtn4IwgEnXvBkWdQG3n2GiR0O3aTsiAx3pnbhg1+ n6LQ== X-Gm-Message-State: AOJu0Yz0kO86xFrnVZxVx2Xs8mR/3vjdj2ITuo/iAH7w3ej3fUCe9iN7 P3uUQTFmZwSaYBM0j6bCRjuz11ZcYgIH5EtZIA0moMwsc70fNrXW4aEBRpzqvA== X-Gm-Gg: ASbGncvOahuS5ME69N7rR1Vw6AwDELAX5kf99k3iddFLzTlohpTgmql5/+FKiIwKeHE iU+WeoFYzDmr2Il7I/cnlzm2NcmsvZyoaOlbP9HPCYqNPwza2LxaXPds4dsIIzT4dkcajNX62C9 P9pfiyosp7yFIJLwLT9fF8TaW5ucQUN6eo+iUwsboLr8A6ZxKf5F/pMxXNIgqI2h7EYi8AEiCTR FIJIWpgf6EMRbWE8LkPd5e1fkZkp19uKyOPS998VmqQhdxK5GwGz1oJuGXZu4ybvOocoprvtzZc W3ykWdIEG/73LUpnWFxO/8kAsMELjURRt5O3jP5ec42f4vz3bDRZg/ckj0riUWlMn9RtxAuVdmf rF6vw8M0EgiV5QdgSieZQJoUjDeRJk1uCDRRF+0WVAbBpRRnCwiNZgo4UlgyVEWoD68K6Mdo= X-Google-Smtp-Source: AGHT+IFOAO2CLy0ZrMI9BiabFDOSAd65pKehDeC6WoLrR8YspaeZJS+O60L/2MMYIisp+earqgyMtg== X-Received: by 2002:a5d:4943:0:b0:3f8:3f7a:e7e with SMTP id ffacd0b85a97d-3f83f7a1050mr4161537f8f.63.1758541187235; Mon, 22 Sep 2025 04:39:47 -0700 (PDT) Received: from ?IPV6:2a01:cb15:8545:7700:62cf:84ff:fe81:caec? ([2a01:cb15:8545:7700:62cf:84ff:fe81:caec]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3ee0fbd63a2sm19460371f8f.48.2025.09.22.04.39.46 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 22 Sep 2025 04:39:46 -0700 (PDT) Message-ID: <6e71483f-e0af-4933-b200-55e660b5748d@gmail.com> Date: Mon, 22 Sep 2025 13:39:46 +0200 List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@FreeBSD.org MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: freebsd-hackers@FreeBSD.org Content-Language: en-US From: Paul Floyd Subject: ptrace PT_SETREGS issue Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spamd-Bar: --- X-Spamd-Result: default: False [-3.96 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.98)[-0.985]; NEURAL_HAM_LONG(-0.97)[-0.971]; 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)[text/plain]; RCVD_TLS_LAST(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; ARC_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; RCPT_COUNT_ONE(0.00)[1]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; FREEMAIL_FROM(0.00)[gmail.com]; FROM_HAS_DN(0.00)[]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; FREEMAIL_ENVFROM(0.00)[gmail.com]; TO_DN_NONE(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; PREVIOUSLY_DELIVERED(0.00)[freebsd-hackers@freebsd.org]; MID_RHS_MATCH_FROM(0.00)[]; MLMMJ_DEST(0.00)[freebsd-hackers@freebsd.org]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[2a00:1450:4864:20::42d:from] X-Rspamd-Queue-Id: 4cVh3s6VV3z4Pdb Hi The second issue that I'm seeing with FreeBSD 15 is with ALPHA2 on aarch64. The problem is with ptrace PT_SETREGS. The context is when Valgrind is running with a connection to vgdb/gdb. In this configuration, if the user wants to interrupt the running process with control C the following sequence of events happens 1. vgdb uses ptrace to attach to the Valgrind process 2. It brute-force modifies the PC so that Valgrind will execute a function that will interrupt the guest process. This has been working for a bit over a year since aarch64 support in Valgrind was added. With FreeBSD there is an issue. As an additional check the ptrace code writes a special value, 0x8BADF00D in x0 (first function call argument). On the receiving end there's an assert. That assert is now firing (I'm seeing a value of 4 in the first argument). If I uncomment the assert then the tests all work. That means that PC is getting set OK but not X0. The code that does this is static Bool setregs (pid_t pid, struct reg *regs) {     if (ptrace(PT_SETREGS, pid, (caddr_t)regs, 0) < 0) {         return False;     }     return True; } This is going to be fairly tricky to debug. I can't run Valgrind under gdb since that will prevent vgdb using ptrace to attach to it. I'll see if I can put in a pause after vgdb has detached and then attach gdb to Valgrind. In the meantime, any ideas what could have changed with ptrace? A+ Paul