Received: by 2002:a05:6359:6284:b0:131:369:b2a3 with SMTP id se4csp2350690rwb; Sun, 6 Aug 2023 16:24:27 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE8O0VGjPeOr6rp+X5P4Qhq3KVLOiFA7kuXifZzFHhhc0OP3qRopM73Hc/WCNqp4FNOBu+x X-Received: by 2002:a05:6a21:3d85:b0:13b:cc09:a547 with SMTP id bj5-20020a056a213d8500b0013bcc09a547mr9808606pzc.36.1691364267263; Sun, 06 Aug 2023 16:24:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691364267; cv=none; d=google.com; s=arc-20160816; b=n6ZZ1Jqp1c1qk9jeIwCko68Y8l9QEC3+E3vpYWETKUASdEd8r5mLL9sz0OencHew3/ lYJNDN3fPnrFYH0hYrMcLSLWigmoAalrwtVsi9STGzAnL2/Ka714nh9O3PsO3FNTphwp BVVNgnoATbDjpNcTex8rH+aKkXT9PtdhX7vVJ9E21dkmmHYGVDc0TzNS0Kf51lTnhHtD QDX47n0vwQHaNmvyVZ3CWgtzhaSug3DcMXZz6tn8QZhYVvNoSadhkCn1VbXunAooOWdG uWp7VAjH+d+o8TZtLCbpN8PtpYbDyVxdNKZ7ubklKNUkiat1uleerr3708LlPtsByf0A heBw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id:dkim-signature; bh=Icbxqx2rZ2m9iesc4dS/RVt3pIcdIs8leMUKknetbIc=; fh=aBbATEbv/DTX+QqnW8BCtnDDOy3yuobyVpox9O68DTw=; b=teqiCr4Hr7pTSGYkcIJkC3LOOhg+h0zNtgzFlMK4zkfCJeX07t2C4OsDcYDomRyt3N GFcnQEj42phgKAaay3V3f4mbr1jLZTwJwg3ZbznldKJeACt1Ny/u+w9H7/la+I5CMnDI Gjy93XtzVDDN/uzzBIWbZL2i5MGOOJHzbWXyR4gjWtQce/5rvOWN7liI/YQqYKc3zTKZ Lh/R2dVazt582YNv8twekWGm0zF+/i/3k4kcV5+O6WN3xV2tFPoY1J9QqBp/89DTYEk0 9Md2KkKsoYV2JM50CfWmJ7RaqU27rH1wYAQLw8ktiLoWq5Xggc+PJb7+EULYFwi7jipp xwJw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=lAR+DAW6; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id e67-20020a636946000000b0055be61476b4si4680775pgc.288.2023.08.06.16.24.13; Sun, 06 Aug 2023 16:24:27 -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; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=lAR+DAW6; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230357AbjHFRwk (ORCPT + 99 others); Sun, 6 Aug 2023 13:52:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50106 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230362AbjHFRwj (ORCPT ); Sun, 6 Aug 2023 13:52:39 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AF5941719 for ; Sun, 6 Aug 2023 10:52:38 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 0D5386124D for ; Sun, 6 Aug 2023 17:52:38 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E14D6C433C8; Sun, 6 Aug 2023 17:52:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1691344357; bh=GFtElTpnw8Awc2J5lB8COy884PMEifozgPjaaX6ierU=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=lAR+DAW6Lc9+x7+XzVo6wIsyTTrTqhVrQijewLIqUAQ2mbJlKpc3U98aZvpGswOVx kRw11EUDkWIUJDl+/O9G/Epp96eeWYSWYm4ax79za7VuVcpiwBcxCCVkisM/R5maoO 8U5iQmMWTiF+2iPowHSMFxSgsNRL2jgZ2cVOB2w6K4Tb58vUOL8DBgVMu2FiFKiIe4 8fsvIStpMtGob3l+xc9cZJPpi+2UQOJoe76sK2mwS4D6pUv8L4k8qt6QTtyIHaKkfE tAINNyMBTzovDvdIxq/Wd5UC1uExcNyCgWZUZTyUvHkOg/mS8UGOqvQskhMdZfFPtL dk7K0vOSQK9Ng== Message-ID: <8698e2f6-beac-b89f-5b7e-d9dbab267151@kernel.org> Date: Sun, 6 Aug 2023 12:52:35 -0500 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: [PATCH RESEND^2] nios2: support clone3() syscall Content-Language: en-US To: Randy Dunlap , Arnd Bergmann , Christian Brauner Cc: linux-kernel@vger.kernel.org, Christian Brauner References: <20230802051924.7837-1-rdunlap@infradead.org> <20230802-abgaben-behutsam-92946d2ecbf5@brauner> <0156b0e7-d9a9-0bb6-f0af-e6a49ff87e34@infradead.org> From: Dinh Nguyen In-Reply-To: <0156b0e7-d9a9-0bb6-f0af-e6a49ff87e34@infradead.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-6.2 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS autolearn=ham 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 On 8/2/23 10:43, Randy Dunlap wrote: > > > On 8/2/23 01:16, Arnd Bergmann wrote: >> On Wed, Aug 2, 2023, at 09:40, Christian Brauner wrote: >>> On Tue, Aug 01, 2023 at 10:19:24PM -0700, Randy Dunlap wrote: >>>> Add support for the clone3() syscall to prevent a warning from >>>> checksyscalls.sh: >>>> >>>> :1517:2: warning: #warning syscall clone3 not implemented [-Wcpp] >>>> >>>> Signed-off-by: Randy Dunlap >>>> Cc: Dinh Nguyen >>>> Cc: Christian Brauner >>>> --- >>>> Is there some reason that NIOS2 should not (does not) support clone3()? >>> >>> Cc Arnd, in case he knows. >> >> As far as I remember, you left a few architectures without clone3 >> during the introduction when there was neither an obvious way to >> handle the syscall entry nor a maintainer to have a look. >> >> Right now, it seems to be missing on alpha, hexagon, ia64, >> microblaze, nios2, sh and sparc. >> >> There are a few architectures that implement a custom entry >> point for both clone and clone3. The other architectures that >> provide the generic sys_clone3 also use the generic sys_clone. >> These are the wrappers I see: >> >> # ARC >> ENTRY(sys_clone3_wrapper) >> SAVE_CALLEE_SAVED_USER >> bl @sys_clone3 >> DISCARD_CALLEE_SAVED_USER >> >> GET_CURR_THR_INFO_FLAGS r10 >> and.f 0, r10, _TIF_SYSCALL_WORK >> bnz tracesys_exit >> >> b .Lret_from_system_call >> END(sys_clone3_wrapper) >> >> # m68k >> ENTRY(__sys_clone3) >> SAVE_SWITCH_STACK >> pea %sp@(SWITCH_STACK_SIZE) >> jbsr m68k_clone3 >> lea %sp@(28),%sp >> rts >> >> >> # mips >> save_static_function(sys_clone3); >> >> # openrisc >> ENTRY(__sys_clone3) >> l.movhi r29,hi(sys_clone3) >> l.j _fork_save_extra_regs_and_call >> l.ori r29,r29,lo(sys_clone3) >> >> # parisc >> .macro fork_like name >> ENTRY_CFI(sys_\name\()_wrapper) >> mfctl %cr30,%r1 >> ldo TASK_REGS(%r1),%r1 >> reg_save %r1 >> mfctl %cr27, %r28 >> ldil L%sys_\name, %r31 >> be R%sys_\name(%sr4,%r31) >> STREG %r28, PT_CR27(%r1) >> ENDPROC_CFI(sys_\name\()_wrapper) >> .endm >> fork_like clone >> fork_like clone3 >> >> Nios3 in turn has a wrapper for sys_clone: >> ENTRY(sys_clone) >> SAVE_SWITCH_STACK >> subi sp, sp, 4 /* make space for tls pointer */ >> stw r8, 0(sp) /* pass tls pointer (r8) via stack (5th argument) */ >> call nios2_clone >> addi sp, sp, 4 >> RESTORE_SWITCH_STACK >> ret >> >> so my guess would be that it needs the same thing >> for clone3 as well. Same thing on alpha, ia64 and >> sparc. On the other hand hexagon, microblaze and sh >> use the generic sys_clone() and can probably just >> enable sys_clone3() without extra work unless it's >> already broken. > > OK, thanks for the help. > Applied! Thank you, Dinh