All of lore.kernel.org
 help / color / mirror / Atom feed
From: FUJITA Tomonori <tomof@acm.org>
To: htejun@gmail.com
Cc: tomof@acm.org, fujita.tomonori@lab.ntt.co.jp,
	jens.axboe@oracle.com, James.Bottomley@HansenPartnership.com,
	efault@gmx.de, akpm@linux-foundation.org,
	linux-kernel@vger.kernel.org, linux-ide@vger.kernel.org,
	linux-scsi@vger.kernel.org,
	jgarzik@pobox.comfujita.tomonori@lab.ntt.co.jp
Subject: Re: [PATCH] block: fix residual byte count handling
Date: Mon, 3 Mar 2008 23:01:18 +0900	[thread overview]
Message-ID: <20080303230121M.tomof@acm.org> (raw)
In-Reply-To: <47CC036C.2060902@gmail.com>

On Mon, 03 Mar 2008 22:55:56 +0900
Tejun Heo <htejun@gmail.com> wrote:

> FUJITA Tomonori wrote:
> >>>> FUJITA Tomonori wrote:
> >>>>>>> I can't see what changing the meaning of rq->data_len (and
> >>>>>>> investigating all the block drivers) gives us.
> >>>>>> No matter which way you go, you change the meaning of rq->data_len and
> >>>>>> you MUST inspect rq->data_len usage whichever way you go.
> >>>>> The patch doens't change that rq->data_len means the true data
> >>>>> length. But yeah, it breaks rq->data_len == sum(sg). So it might break
> >>>>> some drivers.
> >>>> Yeah, that's what I was saying.  You end up breaking one of the two
> >>>> assumptions.  As sglist is getting modified for any driver if it has DMA
> >>>> alignment set, whether rq->data_len is adjusted together or not, sglist
> >>>> and data_len usages have to be audited.
> >>> My patch (well, James' original approach) doesn't affect drivers that
> >>> don't use drain buffer. rq->data_len still means the true data length
> >>> and rq->data_len is equal to sum(sg) for them. So right now we need to
> >>> audit only libata.
> >> Your patch does change sglist for any driver which sets DMA alignment.
> > 
> > I overlook it. Where does it changes sglist?
> 
> At the end of blk_rq_map_user() together with data_len / extra_len
> mangling or were you talking about James' original patch?

With my patch, at the end of blk_rq_map_user, we have:

	if (len & queue_dma_alignment(q)) {
		unsigned int pad_len = (queue_dma_alignment(q) & ~len) + 1;

		rq->extra_len += pad_len;
	}


So no change as compared with 2.6.24?

WARNING: multiple messages have this Message-ID (diff)
From: FUJITA Tomonori <tomof@acm.org>
To: htejun@gmail.com
Cc: tomof@acm.org, fujita.tomonori@lab.ntt.co.jp,
	jens.axboe@oracle.com, James.Bottomley@HansenPartnership.com,
	efault@gmx.de, akpm@linux-foundation.org,
	linux-kernel@vger.kernel.org, linux-ide@vger.kernel.org,
	linux-scsi@vger.kernel.org, jgarzik@pobox.com
Cc: fujita.tomonori@lab.ntt.co.jp
Subject: Re: [PATCH] block: fix residual byte count handling
Date: Mon, 3 Mar 2008 23:01:18 +0900	[thread overview]
Message-ID: <20080303230121M.tomof@acm.org> (raw)
In-Reply-To: <47CC036C.2060902@gmail.com>

On Mon, 03 Mar 2008 22:55:56 +0900
Tejun Heo <htejun@gmail.com> wrote:

> FUJITA Tomonori wrote:
> >>>> FUJITA Tomonori wrote:
> >>>>>>> I can't see what changing the meaning of rq->data_len (and
> >>>>>>> investigating all the block drivers) gives us.
> >>>>>> No matter which way you go, you change the meaning of rq->data_len and
> >>>>>> you MUST inspect rq->data_len usage whichever way you go.
> >>>>> The patch doens't change that rq->data_len means the true data
> >>>>> length. But yeah, it breaks rq->data_len == sum(sg). So it might break
> >>>>> some drivers.
> >>>> Yeah, that's what I was saying.  You end up breaking one of the two
> >>>> assumptions.  As sglist is getting modified for any driver if it has DMA
> >>>> alignment set, whether rq->data_len is adjusted together or not, sglist
> >>>> and data_len usages have to be audited.
> >>> My patch (well, James' original approach) doesn't affect drivers that
> >>> don't use drain buffer. rq->data_len still means the true data length
> >>> and rq->data_len is equal to sum(sg) for them. So right now we need to
> >>> audit only libata.
> >> Your patch does change sglist for any driver which sets DMA alignment.
> > 
> > I overlook it. Where does it changes sglist?
> 
> At the end of blk_rq_map_user() together with data_len / extra_len
> mangling or were you talking about James' original patch?

With my patch, at the end of blk_rq_map_user, we have:

	if (len & queue_dma_alignment(q)) {
		unsigned int pad_len = (queue_dma_alignment(q) & ~len) + 1;

		rq->extra_len += pad_len;
	}


So no change as compared with 2.6.24?

  reply	other threads:[~2008-03-03 14:02 UTC|newest]

Thread overview: 116+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-02-21  8:42 regression: CD burning (k3b) went broke Mike Galbraith
2008-02-22  7:32 ` Jens Axboe
2008-02-23  7:42   ` Mike Galbraith
2008-02-24  7:54     ` Mike Galbraith
2008-02-26  9:48       ` Mike Galbraith
2008-02-26 13:36         ` Mike Galbraith
2008-02-26 23:08           ` Andrew Morton
2008-02-27  0:46             ` Jeff Garzik
2008-02-27  2:58               ` Mike Galbraith
2008-02-27  2:24             ` Mike Galbraith
2008-02-27  6:00               ` Mike Galbraith
2008-02-27  7:07                 ` Mike Galbraith
2008-02-28  7:43                   ` Tejun Heo
2008-02-28  8:20                     ` Mike Galbraith
2008-02-28  8:50                       ` [PATCH] block: fix residual byte count handling Tejun Heo
2008-02-28 15:35                         ` Jens Axboe
2008-02-28 15:46                           ` Tejun Heo
2008-02-29 16:47                             ` James Bottomley
2008-02-29 20:11                               ` Jens Axboe
2008-03-01  6:17                                 ` Tejun Heo
2008-03-01 15:19                                   ` James Bottomley
2008-03-02 14:52                                   ` FUJITA Tomonori
2008-03-02 14:52                                     ` FUJITA Tomonori
2008-03-02 18:46                                     ` Mike Christie
2008-03-03  3:27                                       ` Mike Galbraith
2008-03-03  2:40                                     ` Tejun Heo
2008-03-03  3:59                                       ` FUJITA Tomonori
2008-03-03  4:09                                         ` Tejun Heo
2008-03-03  6:08                                           ` [PATCH 1/2] " Tejun Heo
2008-03-03  6:10                                             ` [PATCH] block: separate out padding from alignment Tejun Heo
2008-03-03 18:27                                               ` James Bottomley
2008-03-03  8:26                                           ` [PATCH] block: fix residual byte count handling FUJITA Tomonori
2008-03-03  9:21                                             ` Tejun Heo
2008-03-03 12:17                                               ` FUJITA Tomonori
2008-03-03 12:17                                                 ` FUJITA Tomonori
2008-03-03 13:38                                                 ` Tejun Heo
2008-03-03 13:50                                                   ` FUJITA Tomonori
2008-03-03 13:50                                                     ` FUJITA Tomonori
2008-03-03 13:55                                                     ` Tejun Heo
2008-03-03 14:01                                                       ` FUJITA Tomonori [this message]
2008-03-03 14:01                                                         ` FUJITA Tomonori
2008-03-03 14:22                                                         ` Tejun Heo
2008-03-03 14:52                                                           ` FUJITA Tomonori
2008-03-03 22:44                                                             ` Tejun Heo
2008-03-04  2:11                                                               ` FUJITA Tomonori
2008-03-04  2:32                                                                 ` Tejun Heo
2008-03-04  8:53                                                                   ` FUJITA Tomonori
2008-03-04  8:59                                                                     ` Jens Axboe
2008-03-04  9:06                                                                       ` FUJITA Tomonori
2008-03-04  9:22                                                                         ` FUJITA Tomonori
2008-03-04  9:30                                                                           ` Tejun Heo
2008-03-04  9:35                                                                           ` Jens Axboe
2008-03-04  9:40                                                                             ` Tejun Heo
2008-03-04  9:46                                                                               ` Jens Axboe
2008-03-04 12:37                                                                             ` Mike Galbraith
2008-03-04 12:39                                                                               ` Jens Axboe
2008-03-04 12:43                                                                                 ` Mike Galbraith
2008-03-04 12:58                                                                                   ` Mike Galbraith
2008-03-04 13:03                                                                                     ` Jens Axboe
2008-03-04 14:25                                                                                       ` Mike Galbraith
2008-03-04 18:17                                                                                         ` Jens Axboe
2008-03-04 18:29                                                                                           ` Jens Axboe
2008-03-04 18:35                                                                                           ` Mike Galbraith
2008-03-04 18:45                                                                                             ` Jens Axboe
2008-03-04 18:49                                                                                               ` Mike Galbraith
2008-03-04 18:54                                                                                                 ` Jens Axboe
2008-03-04 19:26                                                                                                   ` Mike Galbraith
2008-03-04 19:28                                                                                                     ` Jens Axboe
2008-03-04 16:04                                                                                 ` James Bottomley
2008-03-04 18:46                                                                                   ` Jens Axboe
2008-03-04 17:34                                                                                 ` walt
2008-03-04 17:34                                                                                   ` walt
2008-03-04 17:59                                                                                   ` Tejun Heo
2008-03-04 19:18                                                                                     ` walt
2008-03-04 19:42                                                                                   ` Kiyoshi Ueda
2008-03-04 12:40                                                                               ` Tejun Heo
2008-03-04 12:45                                                                                 ` Mike Galbraith
2008-03-04 13:30                                                                                 ` FUJITA Tomonori
2008-03-04 13:50                                                                                   ` Tejun Heo
2008-03-04 16:17                                                                                     ` Tejun Heo
2008-03-04 16:42                                                                                       ` Tejun Heo
2008-03-04 18:26                                                                                         ` Boaz Harrosh
2008-03-04 18:35                                                                                           ` Tejun Heo
2008-03-04 18:27                                                                                         ` James Bottomley
2008-03-04 18:33                                                                                           ` Tejun Heo
2008-03-04 18:45                                                                                         ` Mike Galbraith
2008-03-04 19:25                                                                                           ` Jens Axboe
2008-03-04 19:33                                                                                             ` Mike Galbraith
2008-03-04 19:34                                                                                               ` Jens Axboe
2008-03-04 19:19                                                                                         ` FUJITA Tomonori
2008-03-04 19:19                                                                                           ` FUJITA Tomonori
2008-03-04 23:33                                                                                           ` Tejun Heo
2008-03-04 23:54                                                                                             ` Tejun Heo
2008-03-05  0:26                                                                                             ` FUJITA Tomonori
2008-03-05  0:44                                                                                               ` Tejun Heo
2008-03-06  4:56                                                                                                 ` FUJITA Tomonori
2008-03-06  5:02                                                                                                   ` Tejun Heo
2008-03-05 10:16                                                                                               ` [PATCH] blk: missing add of padded bytes to io completion byte count Boaz Harrosh
2008-03-05 12:28                                                                                                 ` Mike Galbraith
2008-03-05 12:33                                                                                                 ` Jens Axboe
2008-03-05 12:46                                                                                                   ` Boaz Harrosh
2008-03-05 12:48                                                                                                     ` Jens Axboe
2008-03-05 13:45                                                                                                       ` Tejun Heo
2008-03-05 13:51                                                                                                         ` Jens Axboe
2008-03-05 14:08                                                                                                           ` Tejun Heo
2008-03-05 15:21                                                                                                           ` James Bottomley
2008-03-06  4:41                                                                                                             ` FUJITA Tomonori
2008-03-06 13:41                                                                                                               ` Jens Axboe
2008-03-07  0:07                                                                                                                 ` Tejun Heo
2008-03-07 15:07                                                                                                                   ` FUJITA Tomonori
2008-03-08  1:06                                                                                                                     ` Tejun Heo
2008-03-20 12:54                                                                                                                 ` FUJITA Tomonori
2008-03-05 14:46                                                                                                         ` Boaz Harrosh
2008-03-05 15:11                                                                                                           ` Tejun Heo
2008-03-06  5:02                                                                                                 ` FUJITA Tomonori
2008-03-04  9:29                                                                       ` [PATCH] block: fix residual byte count handling Tejun Heo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080303230121M.tomof@acm.org \
    --to=tomof@acm.org \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=akpm@linux-foundation.org \
    --cc=efault@gmx.de \
    --cc=fujita.tomonori@lab.ntt.co.jp \
    --cc=htejun@gmail.com \
    --cc=jens.axboe@oracle.com \
    --cc=jgarzik@pobox.comfujita.tomonori \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.