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 X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BDE17C433DB for ; Thu, 31 Dec 2020 22:47:10 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9A4C420678 for ; Thu, 31 Dec 2020 22:47:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727133AbgLaWrK (ORCPT ); Thu, 31 Dec 2020 17:47:10 -0500 Received: from aserp2130.oracle.com ([141.146.126.79]:56692 "EHLO aserp2130.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726896AbgLaWrJ (ORCPT ); Thu, 31 Dec 2020 17:47:09 -0500 Received: from pps.filterd (aserp2130.oracle.com [127.0.0.1]) by aserp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 0BVMkRTV155714; Thu, 31 Dec 2020 22:46:27 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=subject : from : to : cc : date : message-id : in-reply-to : references : mime-version : content-type : content-transfer-encoding; s=corp-2020-01-29; bh=LgzhvwLBlETPOwP0ljRGBvv6d5IkgoheQjWiV+eZfJ4=; b=xMPP92mVGp+GNHY9JcemTBZUZquN129KkR5cp5MSEc3zVoyD8N9uTzK2Lcg9Um+C1QZl bjYis59M5OBEwsyTsE20tWcPr5i8EjMrlfgvKP7wAcRP4DtTIAaSC9dQ8cAbgloj/XH8 90n3/1mzHux1azpvqcvUEtRHr2p+lGySDepkDUO5L18TjZNatQLO9OIE16Vg4VD6U/4i Sup3y3RvnSydJV4eodA2F09IvU+FauOQBvWHmkDGuRMj4Pi5R3uXGsrPi96gE1lKUzOJ wByhDRswtnqlrpZXo0z5NmpMnz9L41PJeGfMZM4QJ+f3SyZFQJhUfIkOZ8tlwljsQ9In VA== Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by aserp2130.oracle.com with ESMTP id 35rk3bv3q1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Thu, 31 Dec 2020 22:46:26 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 0BVMk5Ye153779; Thu, 31 Dec 2020 22:46:26 GMT Received: from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236]) by userp3020.oracle.com with ESMTP id 35pexukuar-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 31 Dec 2020 22:46:26 +0000 Received: from abhmp0018.oracle.com (abhmp0018.oracle.com [141.146.116.24]) by aserv0122.oracle.com (8.14.4/8.14.4) with ESMTP id 0BVMkP6r025528; Thu, 31 Dec 2020 22:46:25 GMT Received: from localhost (/67.169.218.210) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 31 Dec 2020 14:46:24 -0800 Subject: [PATCHSET 0/7] xfs: reflink with large realtime extents From: "Darrick J. Wong" To: darrick.wong@oracle.com Cc: Dave Chinner , linux-xfs@vger.kernel.org Date: Thu, 31 Dec 2020 14:46:24 -0800 Message-ID: <160945478389.2833972.13762851013245875609.stgit@magnolia> In-Reply-To: <20201231223847.GI6918@magnolia> References: <20201231223847.GI6918@magnolia> User-Agent: StGit/0.19 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9851 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 adultscore=0 spamscore=0 malwarescore=0 mlxscore=0 mlxlogscore=999 bulkscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2012310135 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9851 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 clxscore=1015 impostorscore=0 mlxlogscore=999 adultscore=0 spamscore=0 mlxscore=0 bulkscore=0 priorityscore=1501 lowpriorityscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2012310135 Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org Hi all, Now that we've landed support for reflink on the realtime device for cases where the rt extent size is the same as the fs block size, enhance the reflink code further to support cases where the rt extent size is a power-of-two multiple of the fs block size. This enables us to do data block sharing (for example) for much larger allocation units by dirtying pagecache around shared extents and expanding writeback to write back shared extents fully. If you're going to start using this mess, you probably ought to just pull from my git trees, which are linked below. This is an extraordinary way to destroy everything. Enjoy! Comments and questions are, as always, welcome. --D kernel git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfs-linux.git/log/?h=realtime-reflink-extsize --- fs/remap_range.c | 37 +++++++--- fs/xfs/xfs_aops.c | 43 +++++++++--- fs/xfs/xfs_file.c | 174 +++++++++++++++++++++++++++++++++++++++++++----- fs/xfs/xfs_inode.h | 2 + fs/xfs/xfs_iops.c | 15 ++++ fs/xfs/xfs_reflink.c | 181 +++++++++++++++++++++++++++++++++++++++++++++++++- fs/xfs/xfs_reflink.h | 9 ++ fs/xfs/xfs_super.c | 11 ++- include/linux/fs.h | 5 + 9 files changed, 429 insertions(+), 48 deletions(-)