From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f180.google.com (mail-pf1-f180.google.com [209.85.210.180]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4FB5B258EF0 for ; Thu, 2 Oct 2025 05:59:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.180 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759384755; cv=none; b=n2HIRiw7tVgtHUx5EtJpqHUIRFyNGOBkO9qPEsRaQyqGrMBNaBd4hw4+PUxIX4Go78kKo/pppNaV9crzso6/UDiA0Iyp6psIsidR+li/Mfcinu+26+AKyK3AQtwg07R3068H5spOC7nbDCK+2qDv+ZHzZXbZbSn3IUzbVGfqV08= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759384755; c=relaxed/simple; bh=AeB0HHotof3x6PRuqVzycIKpOT8KClTH51dxePL52+g=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=mFLgac+MYOYbeQdj/xUgLE5J0/mmdc8B9hBf0JIY7NQurBQ+JdBAKLBYyg6VEl7fib4Di2WIumvWGiZ6SfGG3dWQ5lN94CmHLJM/7rQyDO3Q+kCA5RU+6U8pZc0HHd68hY/xJf7h35UzgxVQjOUvAGlNvVb3ZjzUkT3WO5hOpSc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=rivosinc.com; spf=pass smtp.mailfrom=rivosinc.com; dkim=pass (2048-bit key) header.d=rivosinc.com header.i=@rivosinc.com header.b=VJBT3LE9; arc=none smtp.client-ip=209.85.210.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=rivosinc.com header.i=@rivosinc.com header.b="VJBT3LE9" Received: by mail-pf1-f180.google.com with SMTP id d2e1a72fcca58-7835321bc98so768309b3a.2 for ; Wed, 01 Oct 2025 22:59:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc.com; s=google; t=1759384750; x=1759989550; darn=vger.kernel.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=BXQ4CxsL43Ogr7PGdYvnAsJB0DrK7fOoXfrDbIjb6PY=; b=VJBT3LE9rLaOhihjwUUuWf5dvthcRz8EwNfWxeCysDM9f0sj0ks3tPx6sWVirv9I3R 9Om+fPFeUGKCbKXbMpkg02IhILPI9MosOEEX1/z4lDzvk2+FCChpHC0qz8+Z8YWUWqeJ werLdH7pe6DCXej+KJFongzU15ZZ9BX/odwwTuJqfxt2f7njE8jUnKj0xzhKiBSkRWrK dJqIbegjznAK8Q3ZH/73PuU8Xii4TPOQT3ecZJ7FsF+8eJeufwFOX0ZAnQYpNPOKVKzE 8kTSEzHZt5RpIrkQ8NDuwXkTJ+RSe9AWoUnXZGsIH/W6oaXK1BrGxKf8H1QoDtzxEQd0 0PVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759384750; x=1759989550; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=BXQ4CxsL43Ogr7PGdYvnAsJB0DrK7fOoXfrDbIjb6PY=; b=Ps6uiarjDY3KeHROF/0bKpHYdvTWxCpGOMet0dJV7hxUAPOR4kJuRguTSs8eAFZGpm Jm7oX/eDDxSvmAX1uUmGGP+8RFedpqvhFfv3k2b0wr3IMc23qm9+6CmzvdiyeCdW6dD/ uYeiRO5HhO77VlrkbdyoQYhHx/qEQNBG8QLeNPDeRPzZFaa90W5q8cLItIrtDoINirjC m0vDjyTDQeqfC931Vaz3VXC/mbxUNCYNH3Yldwv7/HWFQoeFfQn/LhMICz/un3qN/Y6H 4mlBzP/FPzE4ht/mMivT2riHcYqNaRG5uht8Hu8Wv2yAmEYeMX55jG4ouJPpkf+Xd+AS HyuA== X-Forwarded-Encrypted: i=1; AJvYcCWJkxJ1BDbMqKy+MWKZb1+UwvwkfiEFnPXmy7r/4d64UUHs2NIFHuj8eOvzVQ8jtuDQfQhsEShUTpNz7Y4OqNI=@vger.kernel.org X-Gm-Message-State: AOJu0YxN46/cwgxwuMwL4bTHBXizAfcCq/B/q2H7DnYV6VndEg4pB2k2 JHA8Pz/LFCWGskxHrfKc8kisB8U0kaEE6QwG3wjPzT/OLKQJ5Koove05jh5yNM3IkDo= X-Gm-Gg: ASbGncul3SB2GwR1vyI3vqnQy6SYG9gGTDOT+q9grOVvZgCUjLmlKIzAGX+9KQQyZ03 JdEIgA5MWwb99VQP/bS7qSp6aUedsdWrdGjL5z+zQ6VVZRFgr2N6gb4r6F2PsJCUuUI4jZxZbqV 8jmD9ecoPaHT7tCaq7rmz4bjk57baLTNCgJkbFjavsSUofkcYH0sJT1ljd6b9BtEQpflzMdRQju bRZUBE3WiXxAnACZuGgXGUsWnWFKBOoUZrb4RAA1Upws89BpTFaU4eyHzt1BRW8LPQNvakQlK57 vMdHXnEEyvnYsW6pSnBrPNqOr9JUgAAxti1wWNkmAHhokBfhzYXCJbEIT3ALsmnCSNtZmKeQXUy wusdEJZrntqZ1g4OersW8B8O7NnG+V3n0S6M3BaIGwA== X-Google-Smtp-Source: AGHT+IGPHPH5CNK6OnAVQsGHVb0wf2L07EEb0sQQNxOC4B5rGlQB8izduq3JkiRv+opeWyP/xM1ghg== X-Received: by 2002:a05:6a00:1888:b0:77e:8130:fda with SMTP id d2e1a72fcca58-78af3ffee29mr7483708b3a.13.1759384750327; Wed, 01 Oct 2025 22:59:10 -0700 (PDT) Received: from ghost ([2601:647:6700:64d0:cf18:a2b6:6082:9df8]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-78b020537d2sm1382753b3a.58.2025.10.01.22.59.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Oct 2025 22:59:09 -0700 (PDT) Date: Wed, 1 Oct 2025 22:59:07 -0700 From: Charlie Jenkins To: Andy Chiu Cc: Yong-Xuan Wang , linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, greentime.hu@sifive.com, vincent.chen@sifive.com, Shuah Khan , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , linux-kselftest@vger.kernel.org Subject: Re: [PATCH v 2/2] selftests: riscv: Add test for the Vector ptrace interface Message-ID: References: <20251001111451.299163-1-yongxuan.wang@sifive.com> <20251001111451.299163-3-yongxuan.wang@sifive.com> Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: On Thu, Oct 02, 2025 at 12:53:13AM -0500, Andy Chiu wrote: > Hi Yong-Xuan, > > I found some issues which deserve a re-roll: > > On Wed, Oct 1, 2025 at 6:15 AM Yong-Xuan Wang wrote: > > > > Add a test case that does some basic verification of the Vector ptrace > > interface. This forks a child process then using ptrace to inspect and > > manipulate the v31 register of the child. > > > > Signed-off-by: Yong-Xuan Wang > > --- > > tools/testing/selftests/riscv/vector/Makefile | 5 +- > > .../selftests/riscv/vector/vstate_ptrace.c | 132 ++++++++++++++++++ > > 2 files changed, 136 insertions(+), 1 deletion(-) > > create mode 100644 tools/testing/selftests/riscv/vector/vstate_ptrace.c > > > > diff --git a/tools/testing/selftests/riscv/vector/Makefile b/tools/testing/selftests/riscv/vector/Makefile > > index 6f7497f4e7b3..45f25e9dd264 100644 > > --- a/tools/testing/selftests/riscv/vector/Makefile > > +++ b/tools/testing/selftests/riscv/vector/Makefile > > @@ -2,7 +2,7 @@ > > # Copyright (C) 2021 ARM Limited > > # Originally tools/testing/arm64/abi/Makefile > > > > -TEST_GEN_PROGS := v_initval vstate_prctl > > +TEST_GEN_PROGS := v_initval vstate_prctl vsate_ptrace > > Please s/vsate_ptrace/vstate_ptrace > > Otherwise we will not get the program compiled > > > TEST_GEN_PROGS_EXTENDED := vstate_exec_nolibc v_exec_initval_nolibc > > > > include ../../lib.mk > > @@ -26,3 +26,6 @@ $(OUTPUT)/v_initval: v_initval.c $(OUTPUT)/sys_hwprobe.o $(OUTPUT)/v_helpers.o > > $(OUTPUT)/v_exec_initval_nolibc: v_exec_initval_nolibc.c > > $(CC) -nostdlib -static -include ../../../../include/nolibc/nolibc.h \ > > -Wall $(CFLAGS) $(LDFLAGS) $^ -o $@ -lgcc > > + > > +$(OUTPUT)/vstate_ptrace: vstate_ptrace.c $(OUTPUT)/sys_hwprobe.o $(OUTPUT)/v_helpers.o > > + $(CC) -static -o$@ $(CFLAGS) $(LDFLAGS) $^ > > diff --git a/tools/testing/selftests/riscv/vector/vstate_ptrace.c b/tools/testing/selftests/riscv/vector/vstate_ptrace.c > > new file mode 100644 > > index 000000000000..8a7bcf318e59 > > --- /dev/null > > +++ b/tools/testing/selftests/riscv/vector/vstate_ptrace.c > > @@ -0,0 +1,132 @@ > > +// SPDX-License-Identifier: GPL-2.0-only > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include "../../kselftest.h" > > +#include "v_helpers.h" > > + > > +int parent_set_val, child_set_val; > > + > > +static long do_ptrace(enum __ptrace_request op, pid_t pid, long type, size_t size, void *data) > > +{ > > + struct iovec v_iovec = { > > + .iov_len = size, > > + .iov_base = data > > + }; > > + > > + return ptrace(op, pid, type, &v_iovec); > > +} > > + > > +static int do_child(void) > > +{ > > + int out; > > + > > + if (ptrace(PTRACE_TRACEME, -1, NULL, NULL)) { > > + ksft_perror("PTRACE_TRACEME failed\n"); > > + return EXIT_FAILURE; > > + } > > + > > + asm volatile (".option push\n\t" > > + ".option arch, +v\n\t" > > As mentioned before, please use ".option arch, +v,-c\n\t" or ".option > norvc\n\t" and +=4 when advancing the pc arch -c should be avoided, there are cases when it does not always avoid using all compressed instructions. norvc should always do the right thing though. There is discussion at [1] about deprecating it (along with all variants of -ext). [1] https://inbox.sourceware.org/binutils/7ecdc846-0822-4666-957f-ff818786fb44@iscas.ac.cn/T/#t - Charlie > > > + "vsetivli x0, 1, e32, m1, ta, ma\n\t" > > + "vmv.s.x v31, %[in]\n\t" > > + "ebreak\n\t" > > + "vmv.x.s %[out], v31\n\t" > > + ".option pop\n\t" > > + : [out] "=r" (out) > > + : [in] "r" (child_set_val)); > > + > > + if (out != parent_set_val) > > + return EXIT_FAILURE; > > + > > + return EXIT_SUCCESS; > > +} > > + > > +static void do_parent(pid_t child) > > +{ > > + int status; > > + void *data = NULL; > > + > > + /* Attach to the child */ > > + while (waitpid(child, &status, 0)) { > > + if (WIFEXITED(status)) { > > + ksft_test_result(WEXITSTATUS(status) == 0, "SETREGSET vector\n"); > > + goto out; > > + } else if (WIFSTOPPED(status) && (WSTOPSIG(status) == SIGTRAP)) { > > + size_t size, t; > > unused variable t > > > + void *data, *v31; > > + struct __riscv_v_regset_state *v_regset_hdr; > > + struct user_regs_struct *gpreg; > > + > > + size = sizeof(*v_regset_hdr); > > + data = malloc(size); > > + if (!data) > > + goto out; > > + v_regset_hdr = (struct __riscv_v_regset_state *)data; > > + > > + if (do_ptrace(PTRACE_GETREGSET, child, NT_RISCV_VECTOR, size, data)) > > + goto out; > > + > > + ksft_print_msg("vlenb %ld\n", v_regset_hdr->vlenb); > > + data = realloc(data, size + v_regset_hdr->vlenb * 32); > > realloc may give a new pointer so v_regset_hdr has to be updated here > before the next use > > > + if (!data) > > + goto out; > > + v31 = (void *)(data + size + v_regset_hdr->vlenb * 31); > > + size += v_regset_hdr->vlenb * 32; > > + > > + if (do_ptrace(PTRACE_GETREGSET, child, NT_RISCV_VECTOR, size, data)) > > + goto out; > > + > > + ksft_test_result(*(int *)v31 == child_set_val, "GETREGSET vector\n"); > > + > > + *(int *)v31 = parent_set_val; > > + if (do_ptrace(PTRACE_SETREGSET, child, NT_RISCV_VECTOR, size, data)) > > + goto out; > > + > > + /* move the pc forward */ > > + size = sizeof(*gpreg); > > + data = realloc(data, size); > > + gpreg = (struct user_regs_struct *)data; > > + > > + if (do_ptrace(PTRACE_GETREGSET, child, NT_PRSTATUS, size, data)) > > + goto out; > > + > > + gpreg->pc += 2; > > + if (do_ptrace(PTRACE_SETREGSET, child, NT_PRSTATUS, size, data)) > > + goto out; > > + } > > + > > + ptrace(PTRACE_CONT, child, NULL, NULL); > > + } > > + > > +out: > > + free(data); > > +} > > + > > +int main(void) > > +{ > > + pid_t child; > > + > > + ksft_set_plan(2); > > + if (!is_vector_supported() && !is_xtheadvector_supported()) > > + ksft_exit_skip("Vector not supported\n"); > > + > > + srandom(getpid()); > > + parent_set_val = rand(); > > + child_set_val = rand(); > > + > > + child = fork(); > > + if (child < 0) > > + ksft_exit_fail_msg("Fork failed %d\n", child); > > + > > + if (!child) > > + return do_child(); > > + > > + do_parent(child); > > + > > + ksft_finished(); > > +} > > -- > > 2.43.0 > > > > Thanks, > Andy From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id C189ECAC5B0 for ; Thu, 2 Oct 2025 05:59:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=46slJ4eXMNARZKgIt9f9xNtV/nMPrK+QP5wyaRH7X8s=; b=ZC3ZhmNZixUwog Pjr4ukmJ4UimUgW51KUHBwE0o/X/3+fPibUmzl/7BWmcaV3FRrRmO+teecaZQ8TVCqk2d7uQ8onMQ 1LmPKIiRJB+6rCZGc65HArag4B19imk8efZQAQ3QA4mAlaplxLNBim7ZUCylnPJoLiZyH/aRcTjsk CaKw24WRXxIWbisXUdw7XWvP/ubkdUJCZKp293wt4bte4WG/grMFfCUe7KyMv9dBvlnkPetM9MQY2 8g7TmAOhZtF/BHvyR8Q134dg7N4g9UNEO0y7QorM45xACux/4rNOrdDUFyFy07TsXXfcIiG0Uoce7 qgi5awKr4m816hCHTsEg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1v4CLS-00000009gC7-2Z21; Thu, 02 Oct 2025 05:59:14 +0000 Received: from mail-pf1-x435.google.com ([2607:f8b0:4864:20::435]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1v4CLP-00000009gBd-2DJD for linux-riscv@lists.infradead.org; Thu, 02 Oct 2025 05:59:13 +0000 Received: by mail-pf1-x435.google.com with SMTP id d2e1a72fcca58-7835321bc98so768308b3a.2 for ; Wed, 01 Oct 2025 22:59:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc.com; s=google; t=1759384750; x=1759989550; darn=lists.infradead.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=BXQ4CxsL43Ogr7PGdYvnAsJB0DrK7fOoXfrDbIjb6PY=; b=glRZGfTvphRed7t6SA8vqnVNX1frbRYiek/3X8KdnJHaRy6KHiBAsHFOK45EeIFOUp E+D/EJCJeC/LUnGL1T1tDvcBTlBSaea8/MyIQ+sMhev9RaIUKKcWQzTNt6J5fqwGZq5l rXnMpDbWRHRJNQk9t2s5tO+FJId/0luoseaX/RIk+6lDKf4wfq+kL8XZmt8i+EnmyOPu H33jKiDbuSXPP14uN/lW+iXLIhC6agtEVxSRw+39up8b/9WW9c0BSQTJiPaTDyQCpj18 //zMc2hGIjqhN0cvgfJDrGSpzYEFV44KUi9dhfw9PQn/KEJ16m10+W6hbx6sgOoW9EMR J5tQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759384750; x=1759989550; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=BXQ4CxsL43Ogr7PGdYvnAsJB0DrK7fOoXfrDbIjb6PY=; b=Ktk4Vu5iIbRSnxZCvHo6DHCP9KHTST8k5EG2U5+YL575dv3lqu6nZYZ826Z0WO5xd/ gTP0nS4U7HMnFoD7aMDlBrAxRvY1jxAaoYVX/ROnayVJvABbMvRuhyJN05ldI+f/wJrs wPBEZlp2qv/axTeuyICIp38IRCgjjY90++f5UxDZ7PCuH5pCnPm1JbtS4O+14ZtIgwFG xJPZz/H1kz+JTa7LwFwsOdbpmLgQhSMPiWLHbZotvqbXfrJ7vAbisSXVhaV/oBJz7wwJ erpxSsYjauwUQIlAqFro89XkmDrot4P1g+hK11zAhVcQaig3hqNygre2fsYFQzFJPPmK tmEg== X-Forwarded-Encrypted: i=1; AJvYcCUQeASgmJFu2/mmIA8Qypf/6Ko1NcE5O69lYyGkgb4a6PwqbSFl3MzrOsVF/nWJDcA2wtukXX0gE03QQQ==@lists.infradead.org X-Gm-Message-State: AOJu0YxlhuGok7+2zKvW0zfrxY5geilBVnbanV0YZ+Z8s/V4Ny+rpr/X Gl8W+AGJU9QwdNSUjogCh3ioNBDRHWyyTazYYVkqsIRGBpCB8yXHEQEkGFeQEY77Jro= X-Gm-Gg: ASbGnctvNjZAH+sg1/ZUsLWn6k1Xh66QJ+YvTzkbhJVDVAQ42C9TrL3IHcLglBJY/Ul Kscz498FyUD+cSMULjjao5M+9ls6VxI1bw75ajA0qokxrT7ldj7zCo6ndLC87ZUBBGstssRbigo qn96EKOisHhWzqAxV08j+jV4eCQt9polArwPAJd5m5ZWUWOjJeVAYTmAJnO1tJy3J2Jeo/Hx+Rm 5RsVTp4XKYUpDDkF/FCxyQCbirXqC3mQDQOY46z6dZ0QESoZgUihknZopFYlayCkYu+HY8l4WFl vVgMNBFrwuzAnxI1MBR3/HvncM/h/oRA3ZCYqzjjJf774sYvAC0vWSaDgXyxr2Pd0pwkKauaH4v nYvrbcI6RExIcGqpfDOQaBuqf3t+Dtg9iECvvX1fBAQ== X-Google-Smtp-Source: AGHT+IGPHPH5CNK6OnAVQsGHVb0wf2L07EEb0sQQNxOC4B5rGlQB8izduq3JkiRv+opeWyP/xM1ghg== X-Received: by 2002:a05:6a00:1888:b0:77e:8130:fda with SMTP id d2e1a72fcca58-78af3ffee29mr7483708b3a.13.1759384750327; Wed, 01 Oct 2025 22:59:10 -0700 (PDT) Received: from ghost ([2601:647:6700:64d0:cf18:a2b6:6082:9df8]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-78b020537d2sm1382753b3a.58.2025.10.01.22.59.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Oct 2025 22:59:09 -0700 (PDT) Date: Wed, 1 Oct 2025 22:59:07 -0700 From: Charlie Jenkins To: Andy Chiu Cc: Yong-Xuan Wang , linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, greentime.hu@sifive.com, vincent.chen@sifive.com, Shuah Khan , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , linux-kselftest@vger.kernel.org Subject: Re: [PATCH v 2/2] selftests: riscv: Add test for the Vector ptrace interface Message-ID: References: <20251001111451.299163-1-yongxuan.wang@sifive.com> <20251001111451.299163-3-yongxuan.wang@sifive.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20251001_225911_727828_52EE5A95 X-CRM114-Status: GOOD ( 33.17 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gVGh1LCBPY3QgMDIsIDIwMjUgYXQgMTI6NTM6MTNBTSAtMDUwMCwgQW5keSBDaGl1IHdyb3Rl Ogo+IEhpIFlvbmctWHVhbiwKPiAKPiBJIGZvdW5kIHNvbWUgaXNzdWVzIHdoaWNoIGRlc2VydmUg YSByZS1yb2xsOgo+IAo+IE9uIFdlZCwgT2N0IDEsIDIwMjUgYXQgNjoxNeKAr0FNIFlvbmctWHVh biBXYW5nIDx5b25neHVhbi53YW5nQHNpZml2ZS5jb20+IHdyb3RlOgo+ID4KPiA+IEFkZCBhIHRl c3QgY2FzZSB0aGF0IGRvZXMgc29tZSBiYXNpYyB2ZXJpZmljYXRpb24gb2YgdGhlIFZlY3RvciBw dHJhY2UKPiA+IGludGVyZmFjZS4gVGhpcyBmb3JrcyBhIGNoaWxkIHByb2Nlc3MgdGhlbiB1c2lu ZyBwdHJhY2UgdG8gaW5zcGVjdCBhbmQKPiA+IG1hbmlwdWxhdGUgdGhlIHYzMSByZWdpc3RlciBv ZiB0aGUgY2hpbGQuCj4gPgo+ID4gU2lnbmVkLW9mZi1ieTogWW9uZy1YdWFuIFdhbmcgPHlvbmd4 dWFuLndhbmdAc2lmaXZlLmNvbT4KPiA+IC0tLQo+ID4gIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3Rz L3Jpc2N2L3ZlY3Rvci9NYWtlZmlsZSB8ICAgNSArLQo+ID4gIC4uLi9zZWxmdGVzdHMvcmlzY3Yv dmVjdG9yL3ZzdGF0ZV9wdHJhY2UuYyAgICB8IDEzMiArKysrKysrKysrKysrKysrKysKPiA+ICAy IGZpbGVzIGNoYW5nZWQsIDEzNiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4gPiAgY3Jl YXRlIG1vZGUgMTAwNjQ0IHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Jpc2N2L3ZlY3Rvci92c3Rh dGVfcHRyYWNlLmMKPiA+Cj4gPiBkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMv cmlzY3YvdmVjdG9yL01ha2VmaWxlIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcmlzY3YvdmVj dG9yL01ha2VmaWxlCj4gPiBpbmRleCA2Zjc0OTdmNGU3YjMuLjQ1ZjI1ZTlkZDI2NCAxMDA2NDQK PiA+IC0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Jpc2N2L3ZlY3Rvci9NYWtlZmlsZQo+ ID4gKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvcmlzY3YvdmVjdG9yL01ha2VmaWxlCj4g PiBAQCAtMiw3ICsyLDcgQEAKPiA+ICAjIENvcHlyaWdodCAoQykgMjAyMSBBUk0gTGltaXRlZAo+ ID4gICMgT3JpZ2luYWxseSB0b29scy90ZXN0aW5nL2FybTY0L2FiaS9NYWtlZmlsZQo+ID4KPiA+ IC1URVNUX0dFTl9QUk9HUyA6PSB2X2luaXR2YWwgdnN0YXRlX3ByY3RsCj4gPiArVEVTVF9HRU5f UFJPR1MgOj0gdl9pbml0dmFsIHZzdGF0ZV9wcmN0bCB2c2F0ZV9wdHJhY2UKPiAKPiBQbGVhc2Ug cy92c2F0ZV9wdHJhY2UvdnN0YXRlX3B0cmFjZQo+IAo+IE90aGVyd2lzZSB3ZSB3aWxsIG5vdCBn ZXQgdGhlIHByb2dyYW0gY29tcGlsZWQKPiAKPiA+ICBURVNUX0dFTl9QUk9HU19FWFRFTkRFRCA6 PSB2c3RhdGVfZXhlY19ub2xpYmMgdl9leGVjX2luaXR2YWxfbm9saWJjCj4gPgo+ID4gIGluY2x1 ZGUgLi4vLi4vbGliLm1rCj4gPiBAQCAtMjYsMyArMjYsNiBAQCAkKE9VVFBVVCkvdl9pbml0dmFs OiB2X2luaXR2YWwuYyAkKE9VVFBVVCkvc3lzX2h3cHJvYmUubyAkKE9VVFBVVCkvdl9oZWxwZXJz Lm8KPiA+ICAkKE9VVFBVVCkvdl9leGVjX2luaXR2YWxfbm9saWJjOiB2X2V4ZWNfaW5pdHZhbF9u b2xpYmMuYwo+ID4gICAgICAgICAkKENDKSAtbm9zdGRsaWIgLXN0YXRpYyAtaW5jbHVkZSAuLi8u Li8uLi8uLi9pbmNsdWRlL25vbGliYy9ub2xpYmMuaCBcCj4gPiAgICAgICAgICAgICAgICAgLVdh bGwgJChDRkxBR1MpICQoTERGTEFHUykgJF4gLW8gJEAgLWxnY2MKPiA+ICsKPiA+ICskKE9VVFBV VCkvdnN0YXRlX3B0cmFjZTogdnN0YXRlX3B0cmFjZS5jICQoT1VUUFVUKS9zeXNfaHdwcm9iZS5v ICQoT1VUUFVUKS92X2hlbHBlcnMubwo+ID4gKyAgICAgICAkKENDKSAtc3RhdGljIC1vJEAgJChD RkxBR1MpICQoTERGTEFHUykgJF4KPiA+IGRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0 ZXN0cy9yaXNjdi92ZWN0b3IvdnN0YXRlX3B0cmFjZS5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVz dHMvcmlzY3YvdmVjdG9yL3ZzdGF0ZV9wdHJhY2UuYwo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQK PiA+IGluZGV4IDAwMDAwMDAwMDAwMC4uOGE3YmNmMzE4ZTU5Cj4gPiAtLS0gL2Rldi9udWxsCj4g PiArKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9yaXNjdi92ZWN0b3IvdnN0YXRlX3B0cmFj ZS5jCj4gPiBAQCAtMCwwICsxLDEzMiBAQAo+ID4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBHUEwtMi4wLW9ubHkKPiA+ICsjaW5jbHVkZSA8c3RkaW8uaD4KPiA+ICsjaW5jbHVkZSA8c3Rk bGliLmg+Cj4gPiArI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KPiA+ICsjaW5jbHVkZSA8bGludXgv ZWxmLmg+Cj4gPiArI2luY2x1ZGUgPHN5cy9wdHJhY2UuaD4KPiA+ICsjaW5jbHVkZSA8c3lzL3Vp by5oPgo+ID4gKyNpbmNsdWRlIDxzeXMvd2FpdC5oPgo+ID4gKyNpbmNsdWRlICIuLi8uLi9rc2Vs ZnRlc3QuaCIKPiA+ICsjaW5jbHVkZSAidl9oZWxwZXJzLmgiCj4gPiArCj4gPiAraW50IHBhcmVu dF9zZXRfdmFsLCBjaGlsZF9zZXRfdmFsOwo+ID4gKwo+ID4gK3N0YXRpYyBsb25nIGRvX3B0cmFj ZShlbnVtIF9fcHRyYWNlX3JlcXVlc3Qgb3AsIHBpZF90IHBpZCwgbG9uZyB0eXBlLCBzaXplX3Qg c2l6ZSwgdm9pZCAqZGF0YSkKPiA+ICt7Cj4gPiArICAgICAgIHN0cnVjdCBpb3ZlYyB2X2lvdmVj ID0gewo+ID4gKyAgICAgICAgICAgICAgIC5pb3ZfbGVuID0gc2l6ZSwKPiA+ICsgICAgICAgICAg ICAgICAuaW92X2Jhc2UgPSBkYXRhCj4gPiArICAgICAgIH07Cj4gPiArCj4gPiArICAgICAgIHJl dHVybiBwdHJhY2Uob3AsIHBpZCwgdHlwZSwgJnZfaW92ZWMpOwo+ID4gK30KPiA+ICsKPiA+ICtz dGF0aWMgaW50IGRvX2NoaWxkKHZvaWQpCj4gPiArewo+ID4gKyAgICAgICBpbnQgb3V0Owo+ID4g Kwo+ID4gKyAgICAgICBpZiAocHRyYWNlKFBUUkFDRV9UUkFDRU1FLCAtMSwgTlVMTCwgTlVMTCkp IHsKPiA+ICsgICAgICAgICAgICAgICBrc2Z0X3BlcnJvcigiUFRSQUNFX1RSQUNFTUUgZmFpbGVk XG4iKTsKPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwo+ID4gKyAgICAg ICB9Cj4gPiArCj4gPiArICAgICAgIGFzbSB2b2xhdGlsZSAoIi5vcHRpb24gcHVzaFxuXHQiCj4g PiArICAgICAgICAgICAgICAgIi5vcHRpb24gICAgICAgIGFyY2gsICt2XG5cdCIKPiAKPiBBcyBt ZW50aW9uZWQgYmVmb3JlLCBwbGVhc2UgdXNlICIub3B0aW9uIGFyY2gsICt2LC1jXG5cdCIgb3Ig Ii5vcHRpb24KPiBub3J2Y1xuXHQiIGFuZCArPTQgd2hlbiBhZHZhbmNpbmcgdGhlIHBjCgphcmNo IC1jIHNob3VsZCBiZSBhdm9pZGVkLCB0aGVyZSBhcmUgY2FzZXMgd2hlbiBpdCBkb2VzIG5vdCBh bHdheXMgYXZvaWQKdXNpbmcgYWxsIGNvbXByZXNzZWQgaW5zdHJ1Y3Rpb25zLiBub3J2YyBzaG91 bGQgYWx3YXlzIGRvIHRoZSByaWdodAp0aGluZyB0aG91Z2guIFRoZXJlIGlzIGRpc2N1c3Npb24g YXQgWzFdIGFib3V0IGRlcHJlY2F0aW5nIGl0IChhbG9uZyB3aXRoCmFsbCB2YXJpYW50cyBvZiAt ZXh0KS4KClsxXSBodHRwczovL2luYm94LnNvdXJjZXdhcmUub3JnL2JpbnV0aWxzLzdlY2RjODQ2 LTA4MjItNDY2Ni05NTdmLWZmODE4Nzg2ZmI0NEBpc2Nhcy5hYy5jbi9ULyN0CgotIENoYXJsaWUK Cj4gCj4gPiArICAgICAgICAgICAgICAgInZzZXRpdmxpICAgICAgIHgwLCAxLCBlMzIsIG0xLCB0 YSwgbWFcblx0Igo+ID4gKyAgICAgICAgICAgICAgICJ2bXYucy54ICAgICAgICB2MzEsICVbaW5d XG5cdCIKPiA+ICsgICAgICAgICAgICAgICAiZWJyZWFrXG5cdCIKPiA+ICsgICAgICAgICAgICAg ICAidm12LngucyAgICAgICAgJVtvdXRdLCB2MzFcblx0Igo+ID4gKyAgICAgICAgICAgICAgICIu b3B0aW9uIHBvcFxuXHQiCj4gPiArICAgICAgICAgICAgICAgOiBbb3V0XSAiPXIiIChvdXQpCj4g PiArICAgICAgICAgICAgICAgOiBbaW5dICJyIiAoY2hpbGRfc2V0X3ZhbCkpOwo+ID4gKwo+ID4g KyAgICAgICBpZiAob3V0ICE9IHBhcmVudF9zZXRfdmFsKQo+ID4gKyAgICAgICAgICAgICAgIHJl dHVybiBFWElUX0ZBSUxVUkU7Cj4gPiArCj4gPiArICAgICAgIHJldHVybiBFWElUX1NVQ0NFU1M7 Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyB2b2lkIGRvX3BhcmVudChwaWRfdCBjaGlsZCkKPiA+ ICt7Cj4gPiArICAgICAgIGludCBzdGF0dXM7Cj4gPiArICAgICAgIHZvaWQgKmRhdGEgPSBOVUxM Owo+ID4gKwo+ID4gKyAgICAgICAvKiBBdHRhY2ggdG8gdGhlIGNoaWxkICovCj4gPiArICAgICAg IHdoaWxlICh3YWl0cGlkKGNoaWxkLCAmc3RhdHVzLCAwKSkgewo+ID4gKyAgICAgICAgICAgICAg IGlmIChXSUZFWElURUQoc3RhdHVzKSkgewo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAga3Nm dF90ZXN0X3Jlc3VsdChXRVhJVFNUQVRVUyhzdGF0dXMpID09IDAsICJTRVRSRUdTRVQgdmVjdG9y XG4iKTsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0Owo+ID4gKyAgICAgICAg ICAgICAgIH0gZWxzZSBpZiAoV0lGU1RPUFBFRChzdGF0dXMpICYmIChXU1RPUFNJRyhzdGF0dXMp ID09IFNJR1RSQVApKSB7Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSwg dDsKPiAKPiB1bnVzZWQgdmFyaWFibGUgdAo+IAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg dm9pZCAqZGF0YSwgKnYzMTsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBfX3Jp c2N2X3ZfcmVnc2V0X3N0YXRlICp2X3JlZ3NldF9oZHI7Cj4gPiArICAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgdXNlcl9yZWdzX3N0cnVjdCAqZ3ByZWc7Cj4gPiArCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICBzaXplID0gc2l6ZW9mKCp2X3JlZ3NldF9oZHIpOwo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgZGF0YSA9IG1hbGxvYyhzaXplKTsKPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgIGlmICghZGF0YSkKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290 byBvdXQ7Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICB2X3JlZ3NldF9oZHIgPSAoc3RydWN0 IF9fcmlzY3Zfdl9yZWdzZXRfc3RhdGUgKilkYXRhOwo+ID4gKwo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgaWYgKGRvX3B0cmFjZShQVFJBQ0VfR0VUUkVHU0VULCBjaGlsZCwgTlRfUklTQ1Zf VkVDVE9SLCBzaXplLCBkYXRhKSkKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z290byBvdXQ7Cj4gPiArCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBrc2Z0X3ByaW50X21z ZygidmxlbmIgJWxkXG4iLCB2X3JlZ3NldF9oZHItPnZsZW5iKTsKPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgIGRhdGEgPSByZWFsbG9jKGRhdGEsIHNpemUgKyB2X3JlZ3NldF9oZHItPnZsZW5i ICogMzIpOwo+IAo+IHJlYWxsb2MgbWF5IGdpdmUgYSBuZXcgcG9pbnRlciBzbyB2X3JlZ3NldF9o ZHIgaGFzIHRvIGJlIHVwZGF0ZWQgaGVyZQo+IGJlZm9yZSB0aGUgbmV4dCB1c2UKPiAKPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgIGlmICghZGF0YSkKPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ290byBvdXQ7Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICB2MzEgPSAo dm9pZCAqKShkYXRhICsgc2l6ZSArIHZfcmVnc2V0X2hkci0+dmxlbmIgKiAzMSk7Cj4gPiArICAg ICAgICAgICAgICAgICAgICAgICBzaXplICs9IHZfcmVnc2V0X2hkci0+dmxlbmIgKiAzMjsKPiA+ ICsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGlmIChkb19wdHJhY2UoUFRSQUNFX0dFVFJF R1NFVCwgY2hpbGQsIE5UX1JJU0NWX1ZFQ1RPUiwgc2l6ZSwgZGF0YSkpCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0Owo+ID4gKwo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAga3NmdF90ZXN0X3Jlc3VsdCgqKGludCAqKXYzMSA9PSBjaGlsZF9zZXRfdmFsLCAi R0VUUkVHU0VUIHZlY3RvclxuIik7Cj4gPiArCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAq KGludCAqKXYzMSA9IHBhcmVudF9zZXRfdmFsOwo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg aWYgKGRvX3B0cmFjZShQVFJBQ0VfU0VUUkVHU0VULCBjaGlsZCwgTlRfUklTQ1ZfVkVDVE9SLCBz aXplLCBkYXRhKSkKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBvdXQ7 Cj4gPiArCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAvKiBtb3ZlIHRoZSBwYyBmb3J3YXJk ICovCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBzaXplID0gc2l6ZW9mKCpncHJlZyk7Cj4g PiArICAgICAgICAgICAgICAgICAgICAgICBkYXRhID0gcmVhbGxvYyhkYXRhLCBzaXplKTsKPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgIGdwcmVnID0gKHN0cnVjdCB1c2VyX3JlZ3Nfc3RydWN0 ICopZGF0YTsKPiA+ICsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGlmIChkb19wdHJhY2Uo UFRSQUNFX0dFVFJFR1NFVCwgY2hpbGQsIE5UX1BSU1RBVFVTLCBzaXplLCBkYXRhKSkKPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBvdXQ7Cj4gPiArCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICBncHJlZy0+cGMgKz0gMjsKPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgIGlmIChkb19wdHJhY2UoUFRSQUNFX1NFVFJFR1NFVCwgY2hpbGQsIE5UX1BSU1RBVFVTLCBz aXplLCBkYXRhKSkKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBvdXQ7 Cj4gPiArICAgICAgICAgICAgICAgfQo+ID4gKwo+ID4gKyAgICAgICAgICAgICAgIHB0cmFjZShQ VFJBQ0VfQ09OVCwgY2hpbGQsIE5VTEwsIE5VTEwpOwo+ID4gKyAgICAgICB9Cj4gPiArCj4gPiAr b3V0Ogo+ID4gKyAgICAgICBmcmVlKGRhdGEpOwo+ID4gK30KPiA+ICsKPiA+ICtpbnQgbWFpbih2 b2lkKQo+ID4gK3sKPiA+ICsgICAgICAgcGlkX3QgY2hpbGQ7Cj4gPiArCj4gPiArICAgICAgIGtz ZnRfc2V0X3BsYW4oMik7Cj4gPiArICAgICAgIGlmICghaXNfdmVjdG9yX3N1cHBvcnRlZCgpICYm ICFpc194dGhlYWR2ZWN0b3Jfc3VwcG9ydGVkKCkpCj4gPiArICAgICAgICAgICAgICAga3NmdF9l eGl0X3NraXAoIlZlY3RvciBub3Qgc3VwcG9ydGVkXG4iKTsKPiA+ICsKPiA+ICsgICAgICAgc3Jh bmRvbShnZXRwaWQoKSk7Cj4gPiArICAgICAgIHBhcmVudF9zZXRfdmFsID0gcmFuZCgpOwo+ID4g KyAgICAgICBjaGlsZF9zZXRfdmFsID0gcmFuZCgpOwo+ID4gKwo+ID4gKyAgICAgICBjaGlsZCA9 IGZvcmsoKTsKPiA+ICsgICAgICAgaWYgKGNoaWxkIDwgMCkKPiA+ICsgICAgICAgICAgICAgICBr c2Z0X2V4aXRfZmFpbF9tc2coIkZvcmsgZmFpbGVkICVkXG4iLCBjaGlsZCk7Cj4gPiArCj4gPiAr ICAgICAgIGlmICghY2hpbGQpCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIGRvX2NoaWxkKCk7 Cj4gPiArCj4gPiArICAgICAgIGRvX3BhcmVudChjaGlsZCk7Cj4gPiArCj4gPiArICAgICAgIGtz ZnRfZmluaXNoZWQoKTsKPiA+ICt9Cj4gPiAtLQo+ID4gMi40My4wCj4gPgo+IAo+IFRoYW5rcywK PiBBbmR5CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwps aW51eC1yaXNjdiBtYWlsaW5nIGxpc3QKbGludXgtcmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9yZwpo dHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2Cg==