From owner-freebsd-hackers@freebsd.org Sun Sep 20 15:58:11 2020 Return-Path: Delivered-To: freebsd-hackers@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E75CB3E6009 for ; Sun, 20 Sep 2020 15:58:11 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from CAN01-QB1-obe.outbound.protection.outlook.com (mail-eopbgr660074.outbound.protection.outlook.com [40.107.66.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "GlobalSign Organization Validation CA - SHA256 - G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4BvXKZ63Fbz3T4h; Sun, 20 Sep 2020 15:58:10 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lZ1ZRI3eCMSQnkDC7ZHUE1ZP3Us1xL49EUExKJY6StQ882xKulK31sVIgGDKm/jKJIcRPKjRi04Y05dKen02a4YzsPbtyNiUjAlF7bGecC1we6RfcpOh7KKrVTEiVdv+jOBriTkNMuDAPbgWrzmB0jsRczQEvdysdeIGpFqtlTyY5RcqKV+ti8sOyVsiVjJnki60yvQ5tNeB7nfSsNRbPA3ShlweD+u7EUzRbtfo4Kwcfnsowoa3Kg1KC5h0YOs+1fvovGhppDORCbBDbbe2m6Oz05Xb8GcX4HvXh12/R+1NaVoI3XZHgMM0iW9lDxIiM+8cSah28bE1gB3DlMtDNA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dkP5eT9t6Df7vVO9XfUKm5oSVdN4vwv5hBoHmimNotU=; b=HNI0awq5Gv3KdXxr01Pqrq+NfaGG2j7nXBk2n2CpMcml6rv8cKr6VCSTMlsp5dQQsUsVUC2LmR2F2N5lZEYTpp97hmapfQa9UBpiMlub/6rReYUtMKm7pai1LLkcVaoJaU0nsMudXxw0VYPsp6LaszMcAL4FoiNVRDuct73oSWl+p4w6XCDm+pMx+vVqD3ygeufp/Pk1nLbQ1fO4X+1wQ4nq+8t3FyBlc+Q0ugZOPBGeJBlE9lL4JtJDVEFU08vmr2gzF61Ut3+JgXl7kmm1ULJNYsWnqTQ3tXVsze92mFE49yWnBI7Q205us10b6VVAEN+0f9qaVzID3lGhxFc1LQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=uoguelph.ca; dmarc=pass action=none header.from=uoguelph.ca; dkim=pass header.d=uoguelph.ca; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=uoguelph.ca; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dkP5eT9t6Df7vVO9XfUKm5oSVdN4vwv5hBoHmimNotU=; b=VtkPQmax1dF/toqtvjFJo7a+Sb767KXz0QdE/txGMoGaLOcdKgCow0qzvyTv9xVAv3HiE1cQn07+OzS5V0/+M3JRUP+AhdDDi5Dd08PERj/qEzhO/Ri37lwH1kWLDzipAux8pWfR+tmqZfIn0D17DZ9vh2puST6PAihkW3f/6uVjvXtmmmb/LeXGNO9p+vx21mxPYTPkeDPM8nhVJB74GCfECGQMXQp1eZP5oI+sH61kdeWIiDJemVvOC9he5X2rrBD40QWM1+rqRNymFJa7bdtgirDMIqJsc3Jd/BExkXNu4UZ2YIWGIJpNuQm/FYsDtBjRoEIN48Sx8VgAPW2KmQ== Received: from YTBPR01MB3966.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:24::27) by YTBPR01MB2895.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:17::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3391.11; Sun, 20 Sep 2020 15:58:09 +0000 Received: from YTBPR01MB3966.CANPRD01.PROD.OUTLOOK.COM ([fe80::687f:d85a:a0a3:bd20]) by YTBPR01MB3966.CANPRD01.PROD.OUTLOOK.COM ([fe80::687f:d85a:a0a3:bd20%6]) with mapi id 15.20.3391.014; Sun, 20 Sep 2020 15:58:09 +0000 From: Rick Macklem To: Alan Somers , FreeBSD Hackers Subject: Re: RFC: copy_file_range(3) Thread-Topic: RFC: copy_file_range(3) Thread-Index: AQHWj2Uep8NVOqCTP0KuS7h/nlgLPqlxrARq Date: Sun, 20 Sep 2020 15:58:09 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f85784ff-5220-4128-4241-08d85d7df86f x-ms-traffictypediagnostic: YTBPR01MB2895: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: R3ItNwVNpo3bJHgoqQIvxXNSVlbTHf8CBhW4FEINUU9sY3DagrwTTODtTk0TPCikaJGvq/OKvOj+Na741+WDcg1LzlZZPzq1VtiJ3tnSqo2hK79NQ1bbm7syTajCuHi4RTPOUAAULGAIZtKpykWdG4fYd1frK5btUh8sCq/JIzUo7cl0D1pwzB+OdujGSAbuSOs8ZCGHRkJFNfx1GevoH7xFisOgebi8WhbG+dfcChGxmkJ0bMYEfL9OO1pB5ZqVoRo3D4THAv5WVEQa86FTZUvxMTBVCa+XbzyH+Qq6NGJUwexXUDNBAcvaPhXT5lQt18vLgEBZcesgxOlEk4r4Kvs8p3tCX/0Ksq0TcBQEmUP9gI41rdc4TMWHl//7a3osqYYW01yyG/MnTR0gem+WNA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:YTBPR01MB3966.CANPRD01.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(396003)(39850400004)(366004)(346002)(376002)(136003)(786003)(316002)(76116006)(7696005)(86362001)(8676002)(33656002)(8936002)(55016002)(91956017)(2906002)(186003)(9686003)(5660300002)(52536014)(66946007)(110136005)(64756008)(6506007)(66446008)(71200400001)(450100002)(66476007)(66556008)(966005)(478600001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: RSpaFlZRay9OS6KspLoCOY4xG6lSfb7vlKHcqBds2x98YdVPFEj4Ml428hgfckIfDzswvvt+kOhZ4LRkz6h5rle7gcnEXnbLYGVCCN1BFUj2MioiNViRGC5J22g8/Ya5JffirbFDXpEgAAw3YlJ3iC6S1p6dYRQwJvzzF9IOcJM1/oFO0U5jToyUTkpX7zzh//O9xQD/rlLVPebdklHT3ic8rHV5o3MWjVXi2k/kJ5V6RTrgn+tl9s0/PSTT40Ce2jRW9SAr7LuBnNDVYoAk5GtfSmSH8w/c+X9QNUHLr+xutvBgGKSu+3SI5kM8oeRrsYniGofC04LOLuW+d4OxgvBpurfrtnkt0kcGyD7hOWM0LR3XU+mApxfYD5HZeGF7zgnivUlW7YRZ460fVX8+FptlInsO+TLtSyxs7+P3KcNNMETiz4EXVF6xaxxyg6fJVWri4OONJCPHWUrZuo0zsubcwUbI+vPtSEw8W/643SILjBqIEGxethB3jZggnQs3GeDQW+iK+8YtBtnr9nYLjUrETnOuCKqMtmWeiKONbzs1QJc5hgjLkNIwlL1SuZevVQUn3ugTMkvwrMAmjsN+LP/tQa0pvS9kL4p941llXCgakuyAFCD/IuL2u4bvsfF5HPbD+OX2QgFWYDzz4Ni8dXvwqHW8p5UD89CkfyuVx1wUnf0KjuseCn8xr8N16HWGIhvzKBFe7Lj2VbdH3ZxbMw== x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: uoguelph.ca X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: YTBPR01MB3966.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: f85784ff-5220-4128-4241-08d85d7df86f X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Sep 2020 15:58:09.2211 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: be62a12b-2cad-49a1-a5fa-85f4f3156a7d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: yAZiLoH3ng6mVqXIg18xd3Uev0ZJifRWVB8X9UVYKtbfphCGeOoV4LelIFSLi2DjV0Ll5FMzAeGLguX/unodtA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: YTBPR01MB2895 X-Rspamd-Queue-Id: 4BvXKZ63Fbz3T4h X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=uoguelph.ca header.s=selector1 header.b=VtkPQmax; dmarc=pass (policy=none) header.from=uoguelph.ca; spf=pass (mx1.freebsd.org: domain of rmacklem@uoguelph.ca designates 40.107.66.74 as permitted sender) smtp.mailfrom=rmacklem@uoguelph.ca X-Spamd-Result: default: False [-5.90 / 15.00]; NEURAL_HAM_MEDIUM(-1.03)[-1.030]; R_DKIM_ALLOW(-0.20)[uoguelph.ca:s=selector1]; FREEFALL_USER(0.00)[rmacklem]; FROM_HAS_DN(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:40.107.0.0/16]; MIME_GOOD(-0.10)[text/plain]; NEURAL_HAM_LONG(-1.03)[-1.034]; DWL_DNSWL_LOW(-1.00)[uoguelph.ca:dkim]; RCVD_COUNT_THREE(0.00)[3]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[uoguelph.ca:+]; RCPT_COUNT_TWO(0.00)[2]; RCVD_IN_DNSWL_NONE(0.00)[40.107.66.74:from]; NEURAL_HAM_SHORT(-0.84)[-0.835]; DMARC_POLICY_ALLOW(-0.50)[uoguelph.ca,none]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:8075, ipnet:40.104.0.0/14, country:US]; ARC_ALLOW(-1.00)[microsoft.com:s=arcselector9901:i=1]; MAILMAN_DEST(0.00)[freebsd-hackers]; RWL_MAILSPIKE_POSSIBLE(0.00)[40.107.66.74:from] X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.33 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Sep 2020 15:58:12 -0000 Alan Somers wrote:=0A= >copy_file_range(2) is nifty, but it has a few sharp edges:=0A= >1) Certain file systems don't support it, necessitating a write/read based= =0A= >fallback=0A= >2) It doesn't handle sparse files as well as SEEK_HOLE/SEEK_DATA=0A= >3) It's slightly tricky to both efficiently deal with holes and also=0A= >promptly respond to signals=0A= >=0A= >These problems aren't terribly hard, but it seems to me like most=0A= >applications that use copy_file_range would share the exact same=0A= >solutions. In particular, I'm thinking about cp(1), dd(1), and=0A= >install(8). Those three could benefit from sharing a userland wrapper tha= t=0A= >handles the above problems.=0A= >=0A= >Should we add such a wrapper to libc? If so, what should it be called, an= d=0A= >should it be public or just private to /usr/src ?=0A= There has been a discussion on src-committers which I suggested should=0A= be taken to a public mailing list.=0A= =0A= The basic question is...=0A= Whether or not the copy_file_range(2) syscall should be compatible with=0A= the Linux one.=0A= When I did the syscall, I tried to make it Linux-compatible, arguing that= =0A= Linux is now a de-facto standard.=0A= The Linux syscall only works on regular files, which is why Alan's patch fo= r=0A= cp required a "fallback to the old way" for VCHR files like /dev/null.=0A= =0A= He is considering a wrapper in libc to provide FreeBSD specific semantics,= =0A= which I have no problem with, so long as the naming and man page make=0A= it clear that it is not compatible with the Linux syscall.=0A= (Personally, I'd prefer a wrapper in libc to making the actual syscall non-= Linux=0A= compatible, but that is just mho.)=0A= =0A= Hopefully this helps clarify what Alan is asking, rick=0A= =0A= -Alan=0A= _______________________________________________=0A= freebsd-hackers@freebsd.org mailing list=0A= https://lists.freebsd.org/mailman/listinfo/freebsd-hackers=0A= To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"= =0A= =0A=