From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750947AbdALS1x (ORCPT ); Thu, 12 Jan 2017 13:27:53 -0500 Received: from mail-by2nam01on0102.outbound.protection.outlook.com ([104.47.34.102]:59324 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750909AbdALS0p (ORCPT ); Thu, 12 Jan 2017 13:26:45 -0500 From: "Kani, Toshimitsu" To: "joe@perches.com" , "dan.j.williams@intel.com" , "akpm@linux-foundation.org" CC: "viro@zeniv.linux.org.uk" , "david@fromorbit.com" , "linux-nvdimm@lists.01.org" , "ross.zwisler@linux.intel.com" , "linux-fsdevel@vger.kernel.org" , "linux-kernel@vger.kernel.org" Subject: Re: [PATCH v5] DAX: enable iostat for read/write Thread-Topic: [PATCH v5] DAX: enable iostat for read/write Thread-Index: AQHSbPtlTiUJMkiVMkuLU74ml2JDaaE1IhOAgAAWXgA= Date: Thu, 12 Jan 2017 18:26:42 +0000 Message-ID: <1484248944.2029.5.camel@hpe.com> References: <20170112183848.23159-1-toshi.kani@hpe.com> <1484244141.3065.20.camel@perches.com> In-Reply-To: <1484244141.3065.20.camel@perches.com> 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: 2d3e1efd-c307-4196-e5a1-08d43b188ee3 x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:CS1PR84MB0294; x-microsoft-exchange-diagnostics: 1;CS1PR84MB0294;7:RO/1lkgnjaNNXsRkDwlOjgxsK8t4udhT2A/i8ErLl3OzZW/osIAOBCA1kxDF5eO/60jkt2keC756VdUti9CT7NqqQiIoVpQrR+OKsdIc9dmXCpxZGeeOpP8L+4ZBrxlTbMy4T9H8RmdFWgy3JtBa/Ann9t00Edqmk+JDE1MsUi+pPruzUTg4oYUY35bt6LmeqZ18s8+nK9FnJMWzl1QJdvIn4E4M8RAL1Jg2zJZ6QIdjk9c3p1iMDa7J+5cr5Bhcv2q9iFYTEWD17j5F7NIuziowfHWnuJaDrnZt2S2/XK21wTIvB18jm/R5qyAypr5015yRWrhKntY3kaIJDpfHNfgu1yeAlFfp0AdoSprkHum3khNcwiBKMYCZnDjsOY636EjJqLdsULtjWzKKDGqff36OzH0t3epGpOgC5RdLvQViggpB5t0TkV4LJm2I6st70FCqpJ2jLIBRxkwiGmrosQ== x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:; x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6055026)(6041248)(20161123560025)(20161123562025)(20161123555025)(20161123564025)(6072148);SRVR:CS1PR84MB0294;BCL:0;PCL:0;RULEID:;SRVR:CS1PR84MB0294; x-forefront-prvs: 018577E36E x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(6009001)(7916002)(39840400002)(39450400003)(39410400002)(39850400002)(39860400002)(24454002)(189002)(199003)(377424004)(189998001)(305945005)(2950100002)(103116003)(8936002)(101416001)(6436002)(6512007)(81166006)(92566002)(106116001)(66066001)(7736002)(105586002)(3660700001)(106356001)(229853002)(122556002)(2900100001)(6506006)(38730400001)(97736004)(77096006)(3280700002)(5660300001)(68736007)(54356999)(54906002)(2906002)(4326007)(5001770100001)(86362001)(102836003)(8676002)(3846002)(2501003)(33646002)(2201001)(81156014)(50986999)(6116002)(6486002)(36756003)(76176999);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: MIME-Version: 1.0 X-OriginatorOrg: hpe.com X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Jan 2017 18:26:42.7605 (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 v0CISM28007620 On Thu, 2017-01-12 at 10:02 -0800, Joe Perches wrote: > On Thu, 2017-01-12 at 11:38 -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. > > [] > > diff --git 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); > >   > >   if (iov_iter_rw(iter) == WRITE) > >   flags |= IOMAP_WRITE; > >   > > + if (do_acct) { > > + sector_t sec = iov_iter_count(iter) >> 9; > > + > > + start = jiffies; > > + generic_start_io_acct(iov_iter_rw(iter), > > +       min_t(unsigned long, 1, > > sec), > > I believe I mislead you with a thinko. > > Your original code was > (!sec) ? 1 : sec > and I suggested incorrectly using min_t > > It should of course be max_t.  Sorry. My bad. I should have caught it. > Also, as sec is now sector_t (u64), perhaps this > unsigned long cast is incorrect. I see. Since iov_iter_count() returns a size_t value, I will use 'size_t' for 'sec' as you originally suggested. Thanks, -Toshi