From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751549AbdAMXKD (ORCPT ); Fri, 13 Jan 2017 18:10:03 -0500 Received: from mail-co1nam03on0127.outbound.protection.outlook.com ([104.47.40.127]:45362 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751443AbdAMXKB (ORCPT ); Fri, 13 Jan 2017 18:10:01 -0500 From: "Kani, Toshimitsu" To: "akpm@linux-foundation.org" CC: "linux-kernel@vger.kernel.org" , "linux-nvdimm@ml01.01.org" , "viro@zeniv.linux.org.uk" , "dan.j.williams@intel.com" , "joe@perches.com" , "linux-fsdevel@vger.kernel.org" , "ross.zwisler@linux.intel.com" , "david@fromorbit.com" Subject: Re: [PATCH v6] DAX: enable iostat for read/write Thread-Topic: [PATCH v6] DAX: enable iostat for read/write Thread-Index: AQHSbe3YdLghXM92XEeA1JTtesn7WKE3BAYAgAAT/QA= Date: Fri, 13 Jan 2017 23:09:58 +0000 Message-ID: <1484352338.2029.7.camel@hpe.com> References: <20170113233418.32252-1-toshi.kani@hpe.com> <20170113145406.b1f065fb7fda67fd18830969@linux-foundation.org> In-Reply-To: <20170113145406.b1f065fb7fda67fd18830969@linux-foundation.org> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=toshi.kani@hpe.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [15.219.163.9] x-ms-office365-filtering-correlation-id: 80a7eb0f-aa50-4bcf-6852-08d43c094bc5 x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:CS1PR84MB0294; x-microsoft-exchange-diagnostics: 1;CS1PR84MB0294;7:Ip3FJzwyYjC9XIeBeM9axJJsh/He6G2CQPTmqRHo0nnP7bo43pJNigEJCm+c83/2FEzJ/YDr/14GxUrKjfalsbrUJzBNRIi+fBpm01i+qxwgKO0bGYQkySsdHBzHWSkEOlT26HbL18ukIosv5MW8rHNfaKZH8OXIWULYyoc09GXJlFLsMEO3bMnQRDUR2yCOJfY5ICeKtGNqRUayNsU/NMdOuqAf67trjpFIUXI17hXAxrCxL/k65Z/NJNUKhp1Z1oFLecgHsbf1EUnJlQ0zy6JbApY2dSi44abMiaC9qunpK9PINwuDTjJ5jhO9eth2KdpxsvC3KYPpke0GiY1tHw+ZHgeYu1eDuoeVP4DbKVoBB/Mq65uMpD14pa9EKs8gSq6V4zrvoVZsP8s6fMB/r+l8qjD3GUYR7XYOamqvJ+aIC+cf8PfLw7DreSwpUQh45UJI2XMs7TZhQXQN7oWYUg== x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(227479698468861)(278428928389397); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6055026)(6041248)(20161123562025)(20161123555025)(20161123564025)(20161123560025)(6072148);SRVR:CS1PR84MB0294;BCL:0;PCL:0;RULEID:;SRVR:CS1PR84MB0294; x-forefront-prvs: 018632C080 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(6009001)(7916002)(39850400002)(39410400002)(39450400003)(39860400002)(39840400002)(24454002)(377424004)(189002)(199003)(33646002)(305945005)(92566002)(66066001)(7736002)(6512007)(2351001)(105586002)(97736004)(76176999)(27001)(106116001)(2906002)(50986999)(2950100002)(54356999)(6916009)(101416001)(106356001)(86362001)(2501003)(2900100001)(110136003)(54906002)(3660700001)(5640700003)(103116003)(38730400001)(6436002)(68736007)(122556002)(1730700003)(8676002)(81156014)(81166006)(5660300001)(8936002)(6116002)(77096006)(229853002)(102836003)(6506006)(3846002)(189998001)(6486002)(3280700002)(36756003)(4326007);DIR:OUT;SFP:1102;SCL:1;SRVR:CS1PR84MB0294;H:CS1PR84MB0294.NAMPRD84.PROD.OUTLOOK.COM;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: <787FDB5E94CDFA4ABCDA1E53EC2E4B91@NAMPRD84.PROD.OUTLOOK.COM> MIME-Version: 1.0 X-OriginatorOrg: hpe.com X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Jan 2017 23:09:58.7451 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 105b2061-b669-4b31-92ac-24d304d195dc X-MS-Exchange-Transport-CrossTenantHeadersStamped: CS1PR84MB0294 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by mail.home.local id v0DNA8Kk027059 On Fri, 2017-01-13 at 14:54 -0800, Andrew Morton wrote: > On Fri, 13 Jan 2017 16:34:18 -0700 Toshi Kani > wrote: > > > DAX IO path does not support iostat, but its metadata IO path does. > > Therefore, iostat shows metadata IO statistics only, which has been > > confusing to users. > > > > Add iostat support to the DAX read/write path. > > > > Note, iostat still does not support the DAX mmap path as it allows > > user applications to access directly. > > > > ... > > > > --- a/fs/dax.c > > +++ b/fs/dax.c > > @@ -1058,12 +1058,24 @@ dax_iomap_rw(struct kiocb *iocb, struct > > iov_iter *iter, > >  { > >   struct address_space *mapping = iocb->ki_filp->f_mapping; > >   struct inode *inode = mapping->host; > > + struct gendisk *disk = inode->i_sb->s_bdev->bd_disk; > >   loff_t pos = iocb->ki_pos, ret = 0, done = 0; > >   unsigned flags = 0; > > + unsigned long start = 0; > > + int do_acct = blk_queue_io_stat(disk->queue); > > (The poorly named) blk_queue_io_stat() actually returns a bool.  This > is well concealed because blk_queue_io_stat() is unnecessarily > implemented as a macro (why oh why). It was unclear to me what type I needed to use. test_bit() is 'bool' in arch/x86/include/asm/bitops.h but is 'int' in include/asm- generic/bitops/non-atomic.h. So, I used 'int' for safe... Thanks, -Toshi > > --- a/fs/dax.c~dax-enable-iostat-for-read-write-fix > +++ a/fs/dax.c > @@ -1085,7 +1085,7 @@ dax_iomap_rw(struct kiocb *iocb, struct >   loff_t pos = iocb->ki_pos, ret = 0, done = 0; >   unsigned flags = 0; >   unsigned long start = 0; > - int do_acct = blk_queue_io_stat(disk->queue); > + bool do_acct = blk_queue_io_stat(disk->queue); >   >   if (iov_iter_rw(iter) == WRITE) >   flags |= IOMAP_WRITE; > _ >