From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtprelay.hostedemail.com (smtprelay0174.hostedemail.com [216.40.44.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 6A4C981B3E for ; Tue, 10 Jan 2017 20:36:09 -0800 (PST) Message-ID: <1484109363.12006.19.camel@perches.com> Subject: Re: [PATCH v4] DAX: enable iostat for read/write From: Joe Perches Date: Tue, 10 Jan 2017 20:36:03 -0800 In-Reply-To: <20170111001122.10826-1-toshi.kani@hpe.com> References: <20170111001122.10826-1-toshi.kani@hpe.com> Mime-Version: 1.0 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: linux-nvdimm-bounces@lists.01.org Sender: "Linux-nvdimm" To: Toshi Kani , akpm@linux-foundation.org, dan.j.williams@intel.com Cc: linux-nvdimm@lists.01.org, viro@zenihttp.01.org, david@fromorbit.com, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org List-ID: On Tue, 2017-01-10 at 17:11 -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,22 @@ dax_iomap_rw(struct kiocb *iocb, struct iov_iter *iter, [] > + if (blk_queue_io_stat(disk->queue)) { > + int sec = iov_iter_count(iter) >> 9; > + > + start = jiffies; > + generic_start_io_acct(iov_iter_rw(iter), > + (!sec) ? 1 : sec, &disk->part0); > + } There is a signed/unsigned conversion of sec It may be better to use something like: size_t sec = iov_iter_count(iter) >> 9; [...] generic_start_io_acct(iov_iter_rw(iter), min_t(unsigned long, 1, sec), &disk->part0); > _______________________________________________ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <1484109363.12006.19.camel@perches.com> Subject: Re: [PATCH v4] DAX: enable iostat for read/write From: Joe Perches To: Toshi Kani , akpm@linux-foundation.org, dan.j.williams@intel.com Cc: david@fromorbit.com, viro@zenihttp, ross.zwisler@linux.intel.com, linux-nvdimm@lists.01.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Date: Tue, 10 Jan 2017 20:36:03 -0800 In-Reply-To: <20170111001122.10826-1-toshi.kani@hpe.com> References: <20170111001122.10826-1-toshi.kani@hpe.com> Content-Type: text/plain; charset="ISO-8859-1" Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: On Tue, 2017-01-10 at 17:11 -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,22 @@ dax_iomap_rw(struct kiocb *iocb, struct iov_iter *iter, [] > + if (blk_queue_io_stat(disk->queue)) { > + int sec = iov_iter_count(iter) >> 9; > + > + start = jiffies; > + generic_start_io_acct(iov_iter_rw(iter), > + (!sec) ? 1 : sec, &disk->part0); > + } There is a signed/unsigned conversion of sec It may be better to use something like: size_t sec = iov_iter_count(iter) >> 9; [...] generic_start_io_acct(iov_iter_rw(iter), min_t(unsigned long, 1, sec), &disk->part0); > From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1761455AbdAKEgL (ORCPT ); Tue, 10 Jan 2017 23:36:11 -0500 Received: from smtprelay0220.hostedemail.com ([216.40.44.220]:60794 "EHLO smtprelay.hostedemail.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1761205AbdAKEgJ (ORCPT ); Tue, 10 Jan 2017 23:36:09 -0500 X-Session-Marker: 6A6F6540706572636865732E636F6D X-Spam-Summary: 10,1,0,,d41d8cd98f00b204,joe@perches.com,::::::::::::::::,RULES_HIT:41:355:379:541:599:988:989:1260:1277:1311:1313:1314:1345:1359:1373:1437:1515:1516:1518:1534:1540:1593:1594:1711:1730:1747:1777:1792:2194:2199:2393:2553:2559:2562:2828:3138:3139:3140:3141:3142:3352:3622:3866:3867:3871:3872:4250:4321:4605:5007:10007:10400:10848:11026:11232:11658:11914:12043:12296:12438:12740:12760:12895:13069:13161:13229:13311:13357:13439:14659:14721:21060:21080:21433:30054:30090:30091,0,RBL:error,CacheIP:none,Bayesian:0.5,0.5,0.5,Netcheck:none,DomainCache:0,MSF:not bulk,SPF:fn,MSBL:0,DNSBL:error,Custom_rules:0:1:0,LFtime:2000,LUA_SUMMARY:none X-HE-Tag: plant17_35036140d3d58 X-Filterd-Recvd-Size: 1709 Message-ID: <1484109363.12006.19.camel@perches.com> Subject: Re: [PATCH v4] DAX: enable iostat for read/write From: Joe Perches To: Toshi Kani , akpm@linux-foundation.org, dan.j.williams@intel.com Cc: david@fromorbit.com, viro@zenihttp, ross.zwisler@linux.intel.com, linux-nvdimm@ml01.01.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Date: Tue, 10 Jan 2017 20:36:03 -0800 In-Reply-To: <20170111001122.10826-1-toshi.kani@hpe.com> References: <20170111001122.10826-1-toshi.kani@hpe.com> Content-Type: text/plain; charset="ISO-8859-1" X-Mailer: Evolution 3.22.3-0ubuntu0.1 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 2017-01-10 at 17:11 -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,22 @@ dax_iomap_rw(struct kiocb *iocb, struct iov_iter *iter, [] > + if (blk_queue_io_stat(disk->queue)) { > + int sec = iov_iter_count(iter) >> 9; > + > + start = jiffies; > + generic_start_io_acct(iov_iter_rw(iter), > + (!sec) ? 1 : sec, &disk->part0); > + } There is a signed/unsigned conversion of sec It may be better to use something like: size_t sec = iov_iter_count(iter) >> 9; [...] generic_start_io_acct(iov_iter_rw(iter), min_t(unsigned long, 1, sec), &disk->part0); >