DMARC-Filter: OpenDMARC Filter v1.4.2 delorie.com 58MBuhQj1446513
Authentication-Results: delorie.com; dmarc=pass (p=none dis=none) header.from=cygwin.com
Authentication-Results: delorie.com; spf=pass smtp.mailfrom=cygwin.com
DKIM-Filter: OpenDKIM Filter v2.11.0 delorie.com 58MBuhQj1446513
Authentication-Results: delorie.com;
	dkim=pass (1024-bit key, unprotected) header.d=cygwin.com header.i=@cygwin.com header.a=rsa-sha256 header.s=default header.b=NBRTpLhn
X-Recipient: archive-cygwin@delorie.com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 087E03858C2F
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
	s=default; t=1758542203;
	bh=Uw2ZwXvRcADYw7+oYVIylAQ0p3w/ej1Bak7/ADPL1pI=;
	h=References:In-Reply-To:Date:Subject:To:List-Id:List-Unsubscribe:
	 List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:
	 From;
	b=NBRTpLhnkhUJhplGCXeAYoRB7dLPlIuAFG5n3ThW8vpHDf/HX6am2pTuBSlXBpRZd
	 g2BODkSM2jjiYhr2PUq3XOev52nf1a9PGfvdwXJr8EOLvzl8Lnpzb00AIyFaj3i/+C
	 tl6+a+AeNRpHyPLo6eZYfSGOOljmz8DQCqupx8ok=
X-Original-To: cygwin@cygwin.com
Delivered-To: cygwin@cygwin.com
DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0F01A3858290
ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 0F01A3858290
ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1758542178; cv=none;
 b=f7NQmrHCVsbw7J7JlTrcyfi52W2qYHEsrHSB5G7pL54q/1q9w2kGTvEElVUOoz5J/3swJZoyjsvPJ6Db6ck5Q482XSEQjIpY/jznKyFNeya+9jxgp1jM/ge4zmWQzFh0M9TxbfV2rHMokN46HJHSYdQzYgpAZd8A4Y7lahrLsts=
ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key;
 t=1758542178; c=relaxed/simple;
 bh=PiSMvhhHZOJMnCwZUCw+MvMhbM91Wgm4OdPM0NpG8l0=;
 h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To;
 b=vB/30sURTgJAgJsI3AmgXZ0COR6g4jjUqUdR72KVNdLtuWV+2YtR0K47yFm3lf+ejt5PeDrDUngzwjg98oRokhgC4+2RYXiRQZewS/Hcog2rAhXWq9M+dQntbPX4gAIwf0TmkzYWEXjk5xet/ESpWnCy7VvOyvDTY/D1NH95QUw=
ARC-Authentication-Results: i=1; server2.sourceware.org
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0F01A3858290
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1758542176; x=1759146976;
 h=content-transfer-encoding:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=PiSMvhhHZOJMnCwZUCw+MvMhbM91Wgm4OdPM0NpG8l0=;
 b=SMoaZ4HwWxEsxnedT/obdcI0BYKrRfr+9os/H0OiHK1eTlcqY/Wp92081Z20BoJWvo
 q9LX40ARkDo4cjGVHsuxhNwHCE24nHeZmdYx+vbP00uuvxP5HXniLugNDTRgjU+XMQ4C
 T3slImn+rgl4BlMTkmD1749EgUSDkR4Olk5W61JoXxvjbwK7haruJ7IK/hgEAlTApfKM
 cEqStX4zVPVMj2t7KX1DnCWXGkZHvky3vLpS8eCGTFsqPOg7zl1jspN49qf8ad/J1VuN
 7Wyare75/8UDwtXf5jn7kBUBlirCuzaFaw/ZgfM0iUJbyAjJlHB7iRPJEAn36gvq+xP/
 THhA==
X-Gm-Message-State: AOJu0Ywl+qanR0j2WZj0Bd+uAEPjB11WqC3GnP8mr8FIJvuCB5gjerG7
 JfrLsOegnfXotuBbviDD7GN62+EQJ5PWmlDK6BAh61plsbInObH/eynf89XPhcTigRcV/aI3BEw
 +1W16j6cjZuSfsA3SO6yhqkERajX8eQt3Mg==
X-Gm-Gg: ASbGncvsz79r0IPEu3sZPFTXSQbkSiW9U3JBdpRZRpPFNsOrkWUkLvTjzr5ylcYTJsG
 FmQpLjCH6w5hpmajpF3Uu0P7Nsnd3CPRkdkfcVoUaD+3pKAqVYrHgUa+EiOiei0hNcCTD2jHYOA
 tlSIoJ9Jms0zNaoyYjYH9SZt1NexvSpnpdNqtWNFP9s3jkwbF1ZLWJoiG7E/dh1NVLGntc4x6Ev
 Ut4k2E=
X-Google-Smtp-Source: AGHT+IHf9P0vQKYZ+vYGuakIRmrHI7I+z1oSsYp/vz5wAT0WrQHVMkhEv6rI05DRbrEV/c3y1BmPLe9pMrTuR5M21zk=
X-Received: by 2002:a17:907:940d:b0:b07:d904:4b9c with SMTP id
 a640c23a62f3a-b24ee6ef767mr1228222766b.12.1758542176064; Mon, 22 Sep 2025
 04:56:16 -0700 (PDT)
MIME-Version: 1.0
References: <CAN0SSYzFKJoZRU7fCm4YKH5O_J3SMvCjjgfua7zUJQL4Zj3rzA@mail.gmail.com>
 <CAN0SSYzB77kcuM-jzRkpDhx6ncpGP0kb70W7goXF4ZHAtdzaLg@mail.gmail.com>
In-Reply-To: <CAN0SSYzB77kcuM-jzRkpDhx6ncpGP0kb70W7goXF4ZHAtdzaLg@mail.gmail.com>
Date: Mon, 22 Sep 2025 13:55:39 +0200
X-Gm-Features: AS18NWCRIUjtciZZIrfg64DxUI6rlUqztwZq1bvDGRM1VLTDmXOW2ZeWCrpPGq4
Message-ID: <CAPJSo4VqoYWXCd1fszbupfMtsiFfrb1L9-udRnDgqnX1e5wHgg@mail.gmail.com>
Subject: Re: Why does Cygwin not use MiCloneProcessAddressSpace() for fork()
To: cygwin@cygwin.com
X-BeenThere: cygwin@cygwin.com
X-Mailman-Version: 2.1.30
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin@cygwin.com>
List-Help: <mailto:cygwin-request@cygwin.com?subject=help>
List-Subscribe: <https://cygwin.com/mailman/listinfo/cygwin>,
 <mailto:cygwin-request@cygwin.com?subject=subscribe>
From: Lionel Cons via Cygwin <cygwin@cygwin.com>
Reply-To: Lionel Cons <lionelcons1972@gmail.com>
Content-Type: text/plain; charset="utf-8"
Sender: "Cygwin" <cygwin-bounces~archive-cygwin=delorie.com@cygwin.com>
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from base64 to 8bit by delorie.com id 58MBuhQj1446513

On Mon, 22 Sept 2025 at 12:49, Mark Liam Brown via Cygwin
<cygwin@cygwin.com> wrote:
>
> On Mon, Sep 22, 2025 at 12:35 PM Mark Liam Brown
> <brownmarkliam@gmail.com> wrote:
> >
> > Greetings!
> >
> > Why does Cygwin not use MiCloneProcessAddressSpace() for fork()? That
> > function was added for the Windows Services for UNIX, and it still
> > working in Windows 11.
>
> This is exposed to the userspace as NtCreateProcessEx() as documented
> in https://github.com/huntandhackett/process-cloning

That is the basis for RtlCloneUserProcess(), which AT&T UWIN and SFU use.

This is also the reason why UWIN runs circles around Cygwin in terms
of fork() performance, which directly affects performance of shell
scripts and /bin/make. That's also the reason we still have UWIN5 in
use, Cygwin has terrible fork() performance.


Lionel

-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

