Received: by 2002:a25:d7c1:0:0:0:0:0 with SMTP id o184csp5642574ybg; Tue, 22 Oct 2019 06:23:15 -0700 (PDT) X-Google-Smtp-Source: APXvYqwflRiM1I8Q2+crhM1CYB0XhtkFNjvlFSI8j44uRGgGM5tVro5nme5dhtmVEzK9K+iURzMi X-Received: by 2002:a17:906:3488:: with SMTP id g8mr26982755ejb.162.1571750595062; Tue, 22 Oct 2019 06:23:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1571750595; cv=none; d=google.com; s=arc-20160816; b=aRs61YAZi5N14k1KrO+gw6AddvU66iLh5WNEGqzViHlFZyCHTUZ7i2oagnkJod29XK m9taYQBXV5CefUuoQp7JpWMJ7FqI2yxuyyNkWxWyuuFGMv7ksyLkCo8riHqI3EK3E2BP a0QqWbv6t4pWVGTLTMt7nqvtPd4vXpeXLTnn8WBJqguMbXa04XmfZndFm8kxvWPf1Cw0 sJUPWGEhWkaRcNVkiiglnvbOsM66fx+Udt42dbCVlH5wv37Y5tO9jPfiERGrQmkGnzwT DWMnxEEPq9pfv1MvLP2IlWJtK27p9fdinQ2cgL202p+NczdciFtE0qDpRfYcp5RtEpjQ WAvQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature; bh=IXdjAlYYb0/3BF9pQMCekdzHObGq7UqdMRAHLQJHvP0=; b=wlAAKOi1fbMX2bcwBsW1+RVkUYzaJNuD1ThkiBByr7CylslkjtWnBZeyHZIolB8uBF CODxob0aaG1yryZ3N7u8jpOVoK+vyVXuXNnL5u9gO7SPGEANl4D77IynwLWL5pJgPQEr VX2E5t/scccZ2zbWZtkfRqXJXsz7O14RhdEU8di4js62aPp3CZnnK7Qzh/JxUtOUEUxD bqHyQxNJKmxFgPpV5Fxw8iS2fdMk3qnE9asI90xBTBYuah3XOcwGb169/fIkEwDcHdFV pj1hE7SoaHahqi8hff6SgtlYHw2f8VIezKo+Xb7siWER5qGBv+jYpS9HLBCTARDe+zov nftA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@plexistor-com.20150623.gappssmtp.com header.s=20150623 header.b=nshfuIVH; spf=pass (google.com: best guess record for domain of linux-ext4-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s58si6279705edm.45.2019.10.22.06.22.50; Tue, 22 Oct 2019 06:23:15 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-ext4-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@plexistor-com.20150623.gappssmtp.com header.s=20150623 header.b=nshfuIVH; spf=pass (google.com: best guess record for domain of linux-ext4-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388373AbfJVLcJ (ORCPT + 99 others); Tue, 22 Oct 2019 07:32:09 -0400 Received: from mail-ed1-f67.google.com ([209.85.208.67]:37688 "EHLO mail-ed1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731132AbfJVLcI (ORCPT ); Tue, 22 Oct 2019 07:32:08 -0400 Received: by mail-ed1-f67.google.com with SMTP id r4so12605420edy.4 for ; Tue, 22 Oct 2019 04:32:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=plexistor-com.20150623.gappssmtp.com; s=20150623; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=IXdjAlYYb0/3BF9pQMCekdzHObGq7UqdMRAHLQJHvP0=; b=nshfuIVHMv5W1kTsmAFRMGY2vgtWD69hiQb7EqRiIky+siiGzKA8rT9H/CfogSpRWH ZzKKpiJII+11E/4bokPxJF9UeJdJJFXxET0FxY7Fny224N4pEngrgxbgQWpkSB/j7Pbn yhlbR9Y6w0Wujfqk41ZsLKXwAKZ5+/c46nnZSXt9j0X4GaelObZTCP/32nzyoA0eGKvJ EJrJ2D/qFHzNtezHZpQReKsjKU8Z2UcNRzQD+t2nObetnUDXlscLrsyXvG4/6VXG33QW RkNeTXbG4vW3EOIhy/oixEhvw+WDoPM5OFP1aGoYuZk451UWI2GmpxEwbsd+n8WpfONN 5FnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=IXdjAlYYb0/3BF9pQMCekdzHObGq7UqdMRAHLQJHvP0=; b=qknXnVne56O1RTkcrDWyRXl9ZCV2R1dNoTXZhmbfDPcvOb9lEOqsoAHe409wiA3kMk LKKjtnUdNL2PPn+cY0wPo5N63HzpKdiQqTFqRLh7/U8FT3UtVavFhuj9+IaUfcxx1oDq pizyKmkTov8OD8AupaeZkeaNag9AakDHkh8iWZKviKeVzcFcelrz24hH4iDnt1jXRwLX IFdxV3fiN6zbKMrWHBNNIAxJ3pdQvz13pNucuiftWC+GhJMYAH2LSQubMPaPh2Wf98hL BSQfw2k6CxXfKGjgNQkVqJuBYof6zHBcIavMoJ3XQzxNJ4Sfd+Ba1BlPdBRkk1bm0B6n 8udw== X-Gm-Message-State: APjAAAUDEyednG3NMX/0xqcn6zQgCnaUL45s/4Zesu04QUYnHrYZzm9n qV9sU2CuHsq1EJ0EWtQYkX0SnQ== X-Received: by 2002:aa7:c595:: with SMTP id g21mr30006580edq.79.1571743927007; Tue, 22 Oct 2019 04:32:07 -0700 (PDT) Received: from [10.68.217.182] ([217.70.210.43]) by smtp.googlemail.com with ESMTPSA id g17sm97740ejx.75.2019.10.22.04.32.05 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 22 Oct 2019 04:32:06 -0700 (PDT) Subject: Re: [PATCH 1/5] fs/stat: Define DAX statx attribute To: ira.weiny@intel.com, linux-kernel@vger.kernel.org Cc: Alexander Viro , "Darrick J. Wong" , Dan Williams , Dave Chinner , Christoph Hellwig , "Theodore Y. Ts'o" , Jan Kara , linux-ext4@vger.kernel.org, linux-xfs@vger.kernel.org, linux-fsdevel@vger.kernel.org References: <20191020155935.12297-1-ira.weiny@intel.com> <20191020155935.12297-2-ira.weiny@intel.com> From: Boaz Harrosh Message-ID: <119b57ed-2799-c499-00df-50da80d23612@plexistor.com> Date: Tue, 22 Oct 2019 14:32:04 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.1.0 MIME-Version: 1.0 In-Reply-To: <20191020155935.12297-2-ira.weiny@intel.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-ext4-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org On 20/10/2019 18:59, ira.weiny@intel.com wrote: > From: Ira Weiny > > In order for users to determine if a file is currently operating in DAX > mode (effective DAX). Define a statx attribute value and set that > attribute if the effective DAX flag is set. > > To go along with this we propose the following addition to the statx man > page: > > STATX_ATTR_DAX > > DAX (cpu direct access) is a file mode that attempts to minimize > software cache effects for both I/O and memory mappings of this > file. It requires a capable device, a compatible filesystem > block size, and filesystem opt-in. It generally assumes all > accesses are via cpu load / store instructions which can > minimize overhead for small accesses, but adversely affect cpu > utilization for large transfers. File I/O is done directly > to/from user-space buffers. While the DAX property tends to > result in data being transferred synchronously it does not give > the guarantees of synchronous I/O that data and necessary > metadata are transferred. Memory mapped I/O may be performed > with direct mappings that bypass system memory buffering. Again > while memory-mapped I/O tends to result in data being > transferred synchronously it does not guarantee synchronous > metadata updates. A dax file may optionally support being mapped > with the MAP_SYNC flag which does allow cpu store operations to > be considered synchronous modulo cpu cache effects. > > Signed-off-by: Ira Weiny > --- > fs/stat.c | 3 +++ > include/uapi/linux/stat.h | 1 + > 2 files changed, 4 insertions(+) > > diff --git a/fs/stat.c b/fs/stat.c > index c38e4c2e1221..59ca360c1ffb 100644 > --- a/fs/stat.c > +++ b/fs/stat.c > @@ -77,6 +77,9 @@ int vfs_getattr_nosec(const struct path *path, struct kstat *stat, > if (IS_AUTOMOUNT(inode)) > stat->attributes |= STATX_ATTR_AUTOMOUNT; > > + if (inode->i_flags & S_DAX) Is there a reason not to use IS_DAX(inode) ? > + stat->attributes |= STATX_ATTR_DAX; > + > if (inode->i_op->getattr) > return inode->i_op->getattr(path, stat, request_mask, > query_flags); > diff --git a/include/uapi/linux/stat.h b/include/uapi/linux/stat.h > index 7b35e98d3c58..5b0962121ef7 100644 > --- a/include/uapi/linux/stat.h > +++ b/include/uapi/linux/stat.h > @@ -169,6 +169,7 @@ struct statx { > #define STATX_ATTR_ENCRYPTED 0x00000800 /* [I] File requires key to decrypt in fs */ > > #define STATX_ATTR_AUTOMOUNT 0x00001000 /* Dir: Automount trigger */ > +#define STATX_ATTR_DAX 0x00002000 /* [I] File is DAX */ > > > #endif /* _UAPI_LINUX_STAT_H */ >