<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/include/scsi/scsi_tcq.h, branch linux-3.17.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-3.17.y</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-3.17.y'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2014-11-14T18:10:36Z</updated>
<entry>
<title>scsi: set REQ_QUEUE for the blk-mq case</title>
<updated>2014-11-14T18:10:36Z</updated>
<author>
<name>Christoph Hellwig</name>
<email>hch@lst.de</email>
</author>
<published>2014-10-19T15:13:58Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=69700c4380479d395fee66d56d6d0ba8f1d22d07'/>
<id>urn:sha1:69700c4380479d395fee66d56d6d0ba8f1d22d07</id>
<content type='text'>
commit b1dd2aac4cc0892b82ec60232ed37e3b0af776cc upstream.

To generate the right SPI tag messages we need to properly set
QUEUE_FLAG_QUEUED in the request_queue and mirror it to the
request.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Reviewed-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
Acked-by: Jens Axboe &lt;axboe@kernel.dk&gt;
Reported-by: Meelis Roos &lt;mroos@linux.ee&gt;
Tested-by: Meelis Roos &lt;mroos@linux.ee&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>[SCSI] fix regression that accidentally disabled block-based tcq</title>
<updated>2014-09-19T12:23:32Z</updated>
<author>
<name>Christoph Hellwig</name>
<email>hch@infradead.org</email>
</author>
<published>2014-09-12T23:00:32Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=e8be1cf58d5b4ddbf8089700df8458f432ed5934'/>
<id>urn:sha1:e8be1cf58d5b4ddbf8089700df8458f432ed5934</id>
<content type='text'>
The scsi blk-mq support accidentally flipped a conditional, which lead to
never enabling block based tcq when using the legacy request path.

Fixes: d285203cf647d7c9 scsi: add support for a blk-mq based I/O path.
Reported-by: Hans de Goede &lt;hdegoede@redhat.com&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>scsi: add support for a blk-mq based I/O path.</title>
<updated>2014-07-25T21:16:28Z</updated>
<author>
<name>Christoph Hellwig</name>
<email>hch@lst.de</email>
</author>
<published>2014-01-17T11:06:53Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=d285203cf647d7c97db3a1c33794315c9008593f'/>
<id>urn:sha1:d285203cf647d7c97db3a1c33794315c9008593f</id>
<content type='text'>
This patch adds support for an alternate I/O path in the scsi midlayer
which uses the blk-mq infrastructure instead of the legacy request code.

Use of blk-mq is fully transparent to drivers, although for now a host
template field is provided to opt out of blk-mq usage in case any unforseen
incompatibilities arise.

In general replacing the legacy request code with blk-mq is a simple and
mostly mechanical transformation.  The biggest exception is the new code
that deals with the fact the I/O submissions in blk-mq must happen from
process context, which slightly complicates the I/O completion handler.
The second biggest differences is that blk-mq is build around the concept
of preallocated requests that also include driver specific data, which
in SCSI context means the scsi_cmnd structure.  This completely avoids
dynamic memory allocations for the fast path through I/O submission.

Due the preallocated requests the MQ code path exclusively uses the
host-wide shared tag allocator instead of a per-LUN one.  This only
affects drivers actually using the block layer provided tag allocator
instead of their own.  Unlike the old path blk-mq always provides a tag,
although drivers don't have to use it.

For now the blk-mq path is disable by defauly and must be enabled using
the "use_blk_mq" module parameter.  Once the remaining work in the block
layer to make blk-mq more suitable for slow devices is complete I hope
to make it the default and eventually even remove the old code path.

Based on the earlier scsi-mq prototype by Nicholas Bellinger.

Thanks to Bart Van Assche and Robert Elliot for testing, benchmarking and
various sugestions and code contributions.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Reviewed-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
Reviewed-by: Hannes Reinecke &lt;hare@suse.de&gt;
Reviewed-by: Webb Scales &lt;webbnh@hp.com&gt;
Acked-by: Jens Axboe &lt;axboe@kernel.dk&gt;
Tested-by: Bart Van Assche &lt;bvanassche@acm.org&gt;
Tested-by: Robert Elliott &lt;elliott@hp.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] target: Convert TASK_ATTR to scsi_tcq.h definitions</title>
<updated>2011-05-24T17:03:56Z</updated>
<author>
<name>Nicholas Bellinger</name>
<email>nab@linux-iscsi.org</email>
</author>
<published>2011-05-20T03:19:14Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=e66ecd505addaaf40e7d352796ba8d344f6359dd'/>
<id>urn:sha1:e66ecd505addaaf40e7d352796ba8d344f6359dd</id>
<content type='text'>
This patch converts target core and follwing scsi-misc upstream fabric
modules to use include/scsi/scsi_tcq.h includes for SIMPLE, HEAD_OF_QUEUE
and ORDERED SCSI tasks instead of scsi/libsas.h with TASK_ATTR*

*) tcm_loop: Convert tcm_loop_allocate_core_cmd() + tcm_loop_device_reset() to
   scsi_tcq.h
*) tcm_fc: Convert ft_send_cmd() from FCP_PTA_* to scsi_tcq.h

Reported-by: Christoph Hellwig &lt;hch@infradead.org&gt;
Signed-off-by: Nicholas A. Bellinger &lt;nab@linux-iscsi.org&gt;
Signed-off-by: James Bottomley &lt;jbottomley@parallels.com&gt;
</content>
</entry>
<entry>
<title>block: remove spurious uses of REQ_HARDBARRIER</title>
<updated>2010-09-10T10:35:36Z</updated>
<author>
<name>Tejun Heo</name>
<email>tj@kernel.org</email>
</author>
<published>2010-09-03T09:56:16Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=9cbbdca44ae1a6f512ea1e2be11ced8bbb9d430a'/>
<id>urn:sha1:9cbbdca44ae1a6f512ea1e2be11ced8bbb9d430a</id>
<content type='text'>
REQ_HARDBARRIER is deprecated.  Remove spurious uses in the following
users.  Please note that other than osdblk, all other uses were
already spurious before deprecation.

* osdblk: osdblk_rq_fn() won't receive any request with
  REQ_HARDBARRIER set.  Remove the test for it.

* pktcdvd: use of REQ_HARDBARRIER in pkt_generic_packet() doesn't mean
  anything.  Removed.

* aic7xxx_old: Setting MSG_ORDERED_Q_TAG on REQ_HARDBARRIER is
  spurious.  Removed.

* sas_scsi_host: Setting TASK_ATTR_ORDERED on REQ_HARDBARRIER is
  spurious.  Removed.

* scsi_tcq: The ordered tag path wasn't being used anyway.  Removed.

Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Acked-by: Boaz Harrosh &lt;bharrosh@panasas.com&gt;
Cc: James Bottomley &lt;James.Bottomley@suse.de&gt;
Cc: Peter Osterlund &lt;petero2@telia.com&gt;
Signed-off-by: Jens Axboe &lt;jaxboe@fusionio.com&gt;
</content>
</entry>
<entry>
<title>scsi: make sure that scsi_init_shared_tag_map() doesn't overwrite existing map</title>
<updated>2008-10-27T18:25:30Z</updated>
<author>
<name>Jens Axboe</name>
<email>jens.axboe@oracle.com</email>
</author>
<published>2008-10-27T18:20:59Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=3070f69b66b7ab2f02d8a2500edae07039c38508'/>
<id>urn:sha1:3070f69b66b7ab2f02d8a2500edae07039c38508</id>
<content type='text'>
Right now callers have to check whether scsi_host-&gt;bqt is already
set up, it's much cleaner to just have scsi_init_shared_tag_map()
does this check on its own.

Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
</content>
</entry>
<entry>
<title>[PATCH] helper function for retrieving scsi_cmd given host based block layer tag</title>
<updated>2006-10-04T17:32:09Z</updated>
<author>
<name>David C Somayajulu</name>
<email>david.somayajulu@qlogic.com</email>
</author>
<published>2006-10-04T06:27:25Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=f583f4924d669d36de677e0cc2422ee95203d444'/>
<id>urn:sha1:f583f4924d669d36de677e0cc2422ee95203d444</id>
<content type='text'>
This was necessitated by the need for a function to get back
to a scsi_cmnd, when an hba the posts its (corresponding) completion
interrupt with a block layer tag as its reference.

Signed-off-by: Mike Christie &lt;michaelc@cs.wisc.edu&gt;
Signed-off-by: David Somayajulu &lt;david.somayajulu@qlogic.com&gt;
Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
</content>
</entry>
<entry>
<title>[PATCH] BLOCK: Make it possible to disable the block layer [try #6]</title>
<updated>2006-09-30T18:52:31Z</updated>
<author>
<name>David Howells</name>
<email>dhowells@redhat.com</email>
</author>
<published>2006-09-30T18:45:40Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=9361401eb7619c033e2394e4f9f6d410d6719ac7'/>
<id>urn:sha1:9361401eb7619c033e2394e4f9f6d410d6719ac7</id>
<content type='text'>
Make it possible to disable the block layer.  Not all embedded devices require
it, some can make do with just JFFS2, NFS, ramfs, etc - none of which require
the block layer to be present.

This patch does the following:

 (*) Introduces CONFIG_BLOCK to disable the block layer, buffering and blockdev
     support.

 (*) Adds dependencies on CONFIG_BLOCK to any configuration item that controls
     an item that uses the block layer.  This includes:

     (*) Block I/O tracing.

     (*) Disk partition code.

     (*) All filesystems that are block based, eg: Ext3, ReiserFS, ISOFS.

     (*) The SCSI layer.  As far as I can tell, even SCSI chardevs use the
     	 block layer to do scheduling.  Some drivers that use SCSI facilities -
     	 such as USB storage - end up disabled indirectly from this.

     (*) Various block-based device drivers, such as IDE and the old CDROM
     	 drivers.

     (*) MTD blockdev handling and FTL.

     (*) JFFS - which uses set_bdev_super(), something it could avoid doing by
     	 taking a leaf out of JFFS2's book.

 (*) Makes most of the contents of linux/blkdev.h, linux/buffer_head.h and
     linux/elevator.h contingent on CONFIG_BLOCK being set.  sector_div() is,
     however, still used in places, and so is still available.

 (*) Also made contingent are the contents of linux/mpage.h, linux/genhd.h and
     parts of linux/fs.h.

 (*) Makes a number of files in fs/ contingent on CONFIG_BLOCK.

 (*) Makes mm/bounce.c (bounce buffering) contingent on CONFIG_BLOCK.

 (*) set_page_dirty() doesn't call __set_page_dirty_buffers() if CONFIG_BLOCK
     is not enabled.

 (*) fs/no-block.c is created to hold out-of-line stubs and things that are
     required when CONFIG_BLOCK is not set:

     (*) Default blockdev file operations (to give error ENODEV on opening).

 (*) Makes some /proc changes:

     (*) /proc/devices does not list any blockdevs.

     (*) /proc/diskstats and /proc/partitions are contingent on CONFIG_BLOCK.

 (*) Makes some compat ioctl handling contingent on CONFIG_BLOCK.

 (*) If CONFIG_BLOCK is not defined, makes sys_quotactl() return -ENODEV if
     given command other than Q_SYNC or if a special device is specified.

 (*) In init/do_mounts.c, no reference is made to the blockdev routines if
     CONFIG_BLOCK is not defined.  This does not prohibit NFS roots or JFFS2.

 (*) The bdflush, ioprio_set and ioprio_get syscalls can now be absent (return
     error ENOSYS by way of cond_syscall if so).

 (*) The seclvl_bd_claim() and seclvl_bd_release() security calls do nothing if
     CONFIG_BLOCK is not set, since they can't then happen.

Signed-Off-By: David Howells &lt;dhowells@redhat.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;
</content>
</entry>
<entry>
<title>[PATCH] Split struct request -&gt;flags into two parts</title>
<updated>2006-09-30T18:23:37Z</updated>
<author>
<name>Jens Axboe</name>
<email>axboe@suse.de</email>
</author>
<published>2006-08-10T06:44:47Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=4aff5e2333c9a1609662f2091f55c3f6fffdad36'/>
<id>urn:sha1:4aff5e2333c9a1609662f2091f55c3f6fffdad36</id>
<content type='text'>
Right now -&gt;flags is a bit of a mess: some are request types, and
others are just modifiers. Clean this up by splitting it into
-&gt;cmd_type and -&gt;cmd_flags. This allows introduction of generic
Linux block message types, useful for sending generic Linux commands
to block devices.

Signed-off-by: Jens Axboe &lt;axboe@suse.de&gt;
</content>
</entry>
<entry>
<title>[SCSI] add failure return to scsi_init_shared_tag_map()</title>
<updated>2006-09-02T18:57:28Z</updated>
<author>
<name>James Bottomley</name>
<email>James.Bottomley@steeleye.com</email>
</author>
<published>2006-09-01T13:28:48Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=deb81d80ba27da8dfabc29ccb5977db8f4942a0a'/>
<id>urn:sha1:deb81d80ba27da8dfabc29ccb5977db8f4942a0a</id>
<content type='text'>
And use it in the stex driver.

Signed-off-by: James Bottomley &lt;James.Bottomley@SteelEye.com&gt;
</content>
</entry>
</feed>
