* Re: [PATCH 2/5] block: add function to issue compare and write
[not found] ` <1413437835-13778-3-git-send-email-michaelc@cs.wisc.edu>
@ 2014-10-17 9:55 ` Christoph Hellwig
2014-10-17 23:38 ` Martin K. Petersen
0 siblings, 1 reply; 3+ messages in thread
From: Christoph Hellwig @ 2014-10-17 9:55 UTC (permalink / raw)
To: michaelc; +Cc: linux-scsi, target-devel, ceph-devel, axboe, linux-kernel
On Thu, Oct 16, 2014 at 12:37:12AM -0500, michaelc@cs.wisc.edu wrote:
> @@ -160,7 +160,7 @@ enum rq_flag_bits {
> __REQ_DISCARD, /* request to discard sectors */
> __REQ_SECURE, /* secure discard (used with __REQ_DISCARD) */
> __REQ_WRITE_SAME, /* write same block many times */
> -
> + __REQ_CMP_AND_WRITE, /* compare data and write if matched */
I think it's time that we stop overloading the request flags with
request types.
We already have req->cmd_type which actually is a fairly good
description of what we get except for REQ_TYPE_FS, which is a horrible
overload using req->cmd_flags.
Given that you're just one of many currently ongoing patches to add
more flags here I think you need to byte the bullet and fix this up
by replacing REQ_TYPE_FS with:
REQ_TYPE_WRITE
REQ_TYPE_READ
REQ_TYPE_FLUSH
REQ_TYPE_DISCARD
REQ_TYPE_WRITE_SAME
REQ_TYPE_CMP_AND_WRITE
sd.c is a nice guide of what should be a flag and what a type since my
last refactoring of the command_init function.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH 2/5] block: add function to issue compare and write
2014-10-17 9:55 ` [PATCH 2/5] block: add function to issue compare and write Christoph Hellwig
@ 2014-10-17 23:38 ` Martin K. Petersen
2014-10-18 15:16 ` Christoph Hellwig
0 siblings, 1 reply; 3+ messages in thread
From: Martin K. Petersen @ 2014-10-17 23:38 UTC (permalink / raw)
To: Christoph Hellwig
Cc: michaelc, linux-scsi, target-devel, ceph-devel, axboe,
linux-kernel
>>>>> "Christoph" == Christoph Hellwig <hch@infradead.org> writes:
Christoph> We already have req->cmd_type which actually is a fairly good
Christoph> description of what we get except for REQ_TYPE_FS, which is a
Christoph> horrible overload using req->cmd_flags.
Christoph> Given that you're just one of many currently ongoing patches
Christoph> to add more flags here I think you need to byte the bullet
Christoph> and fix this up by replacing REQ_TYPE_FS with:
Christoph> REQ_TYPE_WRITE REQ_TYPE_READ REQ_TYPE_FLUSH REQ_TYPE_DISCARD
Christoph> REQ_TYPE_WRITE_SAME REQ_TYPE_CMP_AND_WRITE
The problem with this is that, as it stands, a bio has no type. And it
would suck if we couldn't keep bio rw and request flags in sync.
I wonder if it would make more sense to move the remaining rq types to
cmd_flags after I'm done with the 64-bit conversion?
--
Martin K. Petersen Oracle Linux Engineering
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH 2/5] block: add function to issue compare and write
2014-10-17 23:38 ` Martin K. Petersen
@ 2014-10-18 15:16 ` Christoph Hellwig
0 siblings, 0 replies; 3+ messages in thread
From: Christoph Hellwig @ 2014-10-18 15:16 UTC (permalink / raw)
To: Martin K. Petersen
Cc: michaelc, linux-scsi, target-devel, ceph-devel, axboe,
linux-kernel
On Fri, Oct 17, 2014 at 07:38:37PM -0400, Martin K. Petersen wrote:
> The problem with this is that, as it stands, a bio has no type. And it
> would suck if we couldn't keep bio rw and request flags in sync.
>
> I wonder if it would make more sense to move the remaining rq types to
> cmd_flags after I'm done with the 64-bit conversion?
I'd prefer adding a cmd_type to the bio as well and avoid the 64-bit
flag conversion. While we'll probably grow more types of I/Os (e.g.
copy offload) I hope we can actually reduce the number of real flags,
and it's easier to read for sure if we can switch on the command type
in the driver.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2014-10-18 15:16 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1413437835-13778-1-git-send-email-michaelc@cs.wisc.edu>
[not found] ` <1413437835-13778-3-git-send-email-michaelc@cs.wisc.edu>
2014-10-17 9:55 ` [PATCH 2/5] block: add function to issue compare and write Christoph Hellwig
2014-10-17 23:38 ` Martin K. Petersen
2014-10-18 15:16 ` Christoph Hellwig
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox