Received: by 2002:a05:6358:c692:b0:131:369:b2a3 with SMTP id fe18csp221581rwb; Tue, 25 Jul 2023 14:50:51 -0700 (PDT) X-Google-Smtp-Source: APBJJlEnndnZLsMxIHZhjdSJEhrUgj+e35pOwImGtL7+Ev/xuXt9Yk7tkKh1JFLgtrKqWuk15xsQ X-Received: by 2002:a17:907:2cc1:b0:991:e458:d16 with SMTP id hg1-20020a1709072cc100b00991e4580d16mr69445ejc.72.1690321851386; Tue, 25 Jul 2023 14:50:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1690321851; cv=none; d=google.com; s=arc-20160816; b=UPaaXob8Bkn6oSZfFrv0A2fQQlI+56EKzswVWFKMrHcFnHeKWYTOxGoK3i0CFpvmNH 6xu4Vn9AvRYvL0iaDklX/E73mAghwcrP4bqexlRlAHryPIEFIfYifl/7opnSlZ1QgY0U jxnzKRCzwPU9kvQ5nAy7rs6zV5xauo3K4pYS9rgOEHTDtneYnUwgTetuweU2mc5DcBh/ 4HDJRMJF6OYrr8eSTmoEmGuY28p+fyzPVaJVECv9n0BFZjLLFBWARttrD/UZYhFIDQaK PSvwBtbmmyRi46Rnp5s1iLYvl05oCLmNQtEx6skkVO99k1bGo48T28MTcnW7FBah/z+l teMw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:feedback-id:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from; bh=v62NBHeU9ep9QY1IK/i1UhwUYZotaWyE0ioYx+5DrcE=; fh=pFt/cg8EKMVfXhRMKLVARmWeCJMMrAKqtFh01+oCmJo=; b=dizOMwTjw4u7IbzBdbIwrgxOwVI0Zj0NM45hy7FSwkD04ieHr73swg0msl/3DspscL gILl0VpX/tnIrsCRYFt9Tn4F1bfn+zYX0cUFrjyBT/evZvxcJyTZE+sSseMfLfm+wWz8 dvCtf89NNHh0Lg+0Eekk8WtYdhAFmQEUdxZ9vUNxMKXpcyqmKNoxXte3UqAjEV+7jgEl GNxAoka56BqCtgvIZCfkXo1NF+veUUNzePXBrM4MQUeKcGawf+g8R4RSDtQKygDzXZgX 0JZWLmeIiN9SMzLwR+zAfKY0JgXK5+nviYZ9c7VetbNd4ytUfaVuSHKdHSAfSQAv0/Rc r61w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h17-20020a170906855100b00993032b5db1si8629766ejy.726.2023.07.25.14.50.25; Tue, 25 Jul 2023 14:50:51 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231189AbjGYUw1 (ORCPT + 99 others); Tue, 25 Jul 2023 16:52:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46472 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230075AbjGYUw0 (ORCPT ); Tue, 25 Jul 2023 16:52:26 -0400 Received: from bg4.exmail.qq.com (bg4.exmail.qq.com [43.155.65.254]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CDAB6B6; Tue, 25 Jul 2023 13:52:23 -0700 (PDT) X-QQ-mid: bizesmtp63t1690318323thbmfm5x Received: from linux-lab-host.localdomain ( [61.141.78.189]) by bizesmtp.qq.com (ESMTP) with id ; Wed, 26 Jul 2023 04:52:02 +0800 (CST) X-QQ-SSF: 01200000002000D0X000B00A0000000 X-QQ-FEAT: dKvkn8qoLrEfuiEGb04Gt0hhYl6ZZfsg2nQWwpGYNORZ45+H0KEVkeSopkUAr wFohsahUk0FwqtjhVwPdRLh1GgccUmJE1fNAdswGJruLN9G7y9qPe9JOJXhOcRuACwDEC9X S/3DFqSBWU64voxitA7DMRmEdLJc+UzzPDxECC/RvXFpVa6lAAq0TgetDizqfLtrvjLXckq bMGlw7X/Z2euP09rhfbh3W2WyyekjFJWDjm9hTyXGT7LW/yAioqOivdP9DhL7bpmw5k2uhx sMnz97qf7sIH15yMkMiyI3+bhNYyXEB9Tu8xEesMpPi/Cg2XOkV4EfYGNkzhP1lOF7N0o8x 8AOAuQfPOzxLyExmEeSBPoQsbI8oCRx7OqxWrASTQbSNXiQAlZLEUlWv4e8b1bb15VxmHJZ X-QQ-GoodBg: 0 X-BIZMAIL-ID: 11414832214700930819 From: Zhangjin Wu To: w@1wt.eu Cc: ammarfaizi2@gnuweeb.org, arnd@arndb.de, falcon@tinylab.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, svens@linux.ibm.com, thomas@t-8ch.de Subject: Re: [PATCH v1 1/8] tools/nolibc: add support for powerpc Date: Wed, 26 Jul 2023 04:52:02 +0800 Message-Id: <20230725205202.36788-1-falcon@tinylab.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230725182736.GA24943@1wt.eu> References: <20230725182736.GA24943@1wt.eu> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:tinylab.org:qybglogicsvrgz:qybglogicsvrgz5a-1 X-Spam-Status: No, score=-0.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,RCVD_IN_VALIDITY_RPBL,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Willy, > On Tue, Jul 25, 2023 at 07:02:55PM +0800, Zhangjin Wu wrote: > > > > With this new syscall.h, to support my_syscall, the arch-.h > > > > will only require to add ~10 lines to define their own syscall > > > > instructions, registers and clobberlist, which looks like this (for > > > > powerpc): > > > > > > > > #define _NOLIBC_SYSCALL_CALL "sc; bns+ 1f; neg %0, %0; 1:" > > > > > > > > /* PowerPC doesn't always restore r3-r12 for us */ > > > > #define _NOLIBC_SYSCALL_CLOBBERLIST > > > > "memory", "cr0", "r12", "r11", "r10", "r9", "r8", "r7", "r6", "r5", "r4" > > > > > > > > /* PowerPC write GPRS in kernel side but not restore them */ > > > > #define _NOLIBC_GPRS_AS_OUTPUT_OPERANDS > > > > > > > > #define _NOLIBC_REG_NUM "r0" > > > > #define _NOLIBC_REG_RET "r3" > > > > #define _NOLIBC_REG_arg1 "r3" > > > > #define _NOLIBC_REG_arg2 "r4" > > > > #define _NOLIBC_REG_arg3 "r5" > > > > #define _NOLIBC_REG_arg4 "r6" > > > > #define _NOLIBC_REG_arg5 "r7" > > > > #define _NOLIBC_REG_arg6 "r8" > > > > > > > > Before: > > > > > > > > $ ls tools/include/nolibc/arch-*.h | while read f; do git show dfef4fc45d5713eb23d87f0863aff9c33bd4bfaf:$f 2>/dev/null | wc -l | tr -d '\n'; echo " $f"; done > > > > 157 tools/include/nolibc/arch-aarch64.h > > > > 199 tools/include/nolibc/arch-arm.h > > > > 178 tools/include/nolibc/arch-i386.h > > > > 164 tools/include/nolibc/arch-loongarch.h > > > > 195 tools/include/nolibc/arch-mips.h > > > > 0 tools/include/nolibc/arch-powerpc.h > > > > 160 tools/include/nolibc/arch-riscv.h > > > > 186 tools/include/nolibc/arch-s390.h > > > > 176 tools/include/nolibc/arch-x86_64.h > > > > > > > > After: > > > > > > > > $ wc -l tools/include/nolibc/arch-*.h > > > > 54 tools/include/nolibc/arch-aarch64.h > > > > 84 tools/include/nolibc/arch-arm.h > > > > 90 tools/include/nolibc/arch-i386.h /* the last one use stack to pass arguments, reserve as-is */ > > > > 59 tools/include/nolibc/arch-loongarch.h > > > > 120 tools/include/nolibc/arch-mips.h /* the last two use stack to pass arguments, reserve as-is */ > > > > 73 tools/include/nolibc/arch-powerpc.h > > > > 58 tools/include/nolibc/arch-riscv.h > > > > 87 tools/include/nolibc/arch-s390.h > > > > 67 tools/include/nolibc/arch-x86_64.h > > > > > > > > syscall.h itself: > > > > > > > > $ wc -l tools/include/nolibc/syscall.h > > > > 112 tools/include/nolibc/syscall.h > > > > > [...] > > Hoping this clarifies my position on this. > Willy, Thanks very much for your detailed reply, based on your reply, I plan to renew the powerpc patchset itself at first since both you and Thomas have already reviewed it carefully. After that, I will come back to read your reply again and discuss more about our new syscall.h, I still think it is something valuable to take a look at, although something about it still need more attention, perhaps a RFC patchset is better for more discuss, it may show us the profile easily. Best regards, Zhangjin > Thanks, > Willy