t; or something similar. Then build a kernel from the new source code and
> test it.
>
> Ultimately, if nobody can find a way to restore the sequential I/O
> behavior we had prior to commit f664a3cc17b7, that commit may have to
> be reverted.
Don't use patch1, it's buggy. patch2 should be enough to test the theory.
--
Jens Axboe
On 7/11/19 8:05 PM, Jens Axboe wrote:
> On 7/7/19 8:02 PM, Damien Le Moal wrote:
>> On 2019/07/01 14:09, Damien Le Moal wrote:
>>> This series addresses a recuring problem with zone revalidation
>>> failures observed during extensive testing with memory constraine
s, Martin,
>
> Any comment regarding this series ?
LGTM, I'll queue it up for this release.
--
Jens Axboe
turns out it isn't easy to fix them all.
>
> So move freeing of hw queue resources into hctx's release handler, then
> the above issue is fixed. Meantime, this way is safe given freeing hw
> queue resource doesn't require tags.
Applied, thanks Ming.
--
Jens Axboe
use a livelock. If the system
> is running out of memory and the page cache submits a write request with
> a scatterlist with more than two elements, if the kmalloc() for the
> scatterlist fails, will that prevent the page cache from making any progress
> with writeback?
The mempool prevents that - as long as we have at least one reserved unit
of the given size, we know we'll always make progress (eventually). The
finite life times of the sg pool allocations guarantee that.
--
Jens Axboe
ified, and the
> whole events checking code path can be skipped. This simplifies handling
> of non-removable SCSI disks.
>
> I have tested this with removable and non-removable SCSI disks, SCSI
> cdrom, and ide-cd.
>
> This patch set targets the same problem as Hannes' late submission "sd:
> skip non-removable devices in sd_check_events()".
Applied for 5.2, thanks.
--
Jens Axboe
into MSI-X with one vector for config
> and one shared for queues.
>
> Considering above reasons, this patch set limits the number of hw queues
> used by nr_cpu_ids for both virtio-blk and virtio-scsi.
I picked both up for 5.1.
--
Jens Axboe
nly if the device actually reports being non-rotational via
> the VPD page.
Reviewed-by: Jens Axboe
--
Jens Axboe
On 2/12/19 8:24 AM, James Bottomley wrote:
> On Mon, 2019-02-11 at 19:50 -0700, Jens Axboe wrote:
>> On 2/11/19 7:13 PM, James Bottomley wrote:
>>> On Mon, 2019-02-11 at 09:31 -0700, Jens Axboe wrote:
>>>> On 2/11/19 9:28 AM, James Bottomley wrote:
>>>>
On 2/11/19 7:13 PM, James Bottomley wrote:
> On Mon, 2019-02-11 at 09:31 -0700, Jens Axboe wrote:
>> On 2/11/19 9:28 AM, James Bottomley wrote:
>>> On Mon, 2019-02-11 at 08:46 -0700, Jens Axboe wrote:
>>>> On 2/11/19 8:42 AM, James Bottomley wrote:
>>>>
aker (Filesystems)
Josef Bacik (Filesystems)
Martin K. Petersen (Storage)
Jens Axboe (Storage)
Michal Hocko (MM)
Rik van Riel (MM)
Johannes Weiner (MM)
Alexei Starovoitov (BPF)
--
Jens Axboe
is for me ;-)"
>
> Now the last time this caused a bit of a stir, but still no actual users,
> not even for SG_IO passthrough commands. So here we go again, this time
> including removing everything in the scsi and block layer supporting it,
> and thus shrinking struct request.
I
On 1/19/19 2:56 AM, Christoph Hellwig wrote:
> On Fri, Jan 18, 2019 at 10:48:15AM -0700, Jens Axboe wrote:
>> It's UFS that totally buggy, if you look at its queuecommand, it does:
>>
>> if (!down_read_trylock(&hba->clk_scaling_lock))
On 1/18/19 10:51 AM, Bart Van Assche wrote:
> On Fri, 2019-01-18 at 10:48 -0700, Jens Axboe wrote:
>> It's UFS that totally buggy, if you look at its queuecommand, it does:
>>
>> if (!down_read_trylock(&hba->clk_scaling_lock))
the ->queuecommand() ever blocks, this should be set
+*/
+ int queue_may_block;
+
/*
* In many instances, especially where disconnect / reconnect are
* supported, our host also has an ID on the SCSI bus. If this is
@@ -584,6 +589,7 @@ struct Scsi_Host {
int this_id;
int can_queue;
+ int queue_may_block;
short cmd_per_lun;
short unsigned int sg_tablesize;
short unsigned int sg_prot_tablesize;
--
Jens Axboe
is year's, please also send that to:
lsf...@lists.linux-foundation.org
Thank you on behalf of the program committee:
Anna Schumaker (Filesystems)
Josef Bacik (Filesystems)
Martin K. Petersen (Storage)
Jens Axboe (Storage)
Michal Hocko (MM)
calls
> t10_pi_complete().
>
> To prevent this, the calls to scsi_host_set_prot() are moved into
> isci_host_alloc() before the call to scsi_add_host(). Out of caution,
> also move the similar call to scsi_host_set_guard().
Nice work!
Reviewed-by: Jens Axboe
--
Jens Axboe
On 12/22/18 10:42 AM, James Bottomley wrote:
> On Fri, 2018-12-21 at 20:49 -0700, Jens Axboe wrote:
>> On 12/21/18 7:48 PM, James Bottomley wrote:
>>> On Wed, 2018-12-12 at 06:46 -0700, Jens Axboe wrote:
>>>> When boxes are run near (or to) OOM, we have a prob
On 12/21/18 7:48 PM, James Bottomley wrote:
> On Wed, 2018-12-12 at 06:46 -0700, Jens Axboe wrote:
>> When boxes are run near (or to) OOM, we have a problem with the
>> discard page allocation in sd. If we fail allocating the special
>> page, we return busy, and it'
SBC4r15. It probably doesn't make sense to keep the support
> code around just for that, so start deprecating the support.
Applied, thanks.
--
Jens Axboe
On 12/20/18 12:12 AM, Christoph Hellwig wrote:
> On Wed, Dec 19, 2018 at 04:23:14PM -0700, Jens Axboe wrote:
>> On 12/19/18 7:39 AM, Christoph Hellwig wrote:
>>> Besides the OSD command set that never got traction, the only SCSI
>>> command using bidirectional buffers i
pport code around just for that, so start
> deprecating the support.
Acked-by: Jens Axboe
--
Jens Axboe
and and patch 9 forgot to
> update myrs and myrb.
>
> I left patch 10 for Jens to merge later (unless he acks it for me to
> pull in).
You can add my reviewed-by to 10 and add that one too, that makes more
sense than me adding it for a post-merge pull. But either way works
for me.
--
Jens Axboe
isn't going away.
The mpt3sas use case is crap. It's iterating every tag, just in case it
needs to do something to it.
My suggestion would be to scrap that bad implementation and have
something available for iterating busy tags instead. That'd be more
appropriate and a lot more efficient that a random loop from 0..depth.
If you are flushing running commands, looking up tags that aren't even
active is silly and counterproductive.
--
Jens Axboe
henever scsi_device is deleted, associated
>>> request is also deleted. What is missing is - "Deleted request still
>>> available in
>>> hctx->tags->rqs[rq->tag]."
>>
>> So that sounds like the issue. If the device is deleted and its requests
>> go away,
>> those pointers should be cleared. That's what your patch should do, not do
>> it
>> for each IO.
>
> At the time of device removal, it requires reverse traversing. Find out if
> each requests associated with sdev is part of hctx->tags->rqs() and clear
> that entry.
> Not sure about atomic traverse if more than one device removal is happening
> in parallel. May be more error prone. ?
>
> Just wondering both the way we will be removing invalid request from array.
> Are you suspecting any performance issue if we do it per IO ?
It's an extra store, and it's a store to an area that's then now shared
between issue and completion. Those are never a good idea. Besides, it's
the kind of issue you solve in the SLOW path, not in the fast path. Since
that's doable, it would be silly to do it for every IO.
This might not matter on mpt3sas, but on more efficient hw it definitely
will.
I'm still trying to convince myself that this issue even exists. I can see
having stale entries, but those should never be busy. Why are you finding
them with the tag iteration? It must be because the tag is reused, and
you are finding it before it's re-assigned?
--
Jens Axboe
s request pool per HBA.
>
> Example - IF HBA queue depth is 1K and there are 8 device behind that HBA,
> total request pool is created is 1K + 8 * scsi_device queue depth. 1K will
> be always static, but other request pool is managed whenever scsi device is
> added/removed.
>
> I never observe requests allocated per HBA is used in IO path. It is always
> request allocated per scsi device is what active.
> Also, what I observed is whenever scsi_device is deleted, associated request
> is also deleted. What is missing is - "Deleted request still available in
> hctx->tags->rqs[rq->tag]."
So that sounds like the issue. If the device is deleted and its requests
go away, those pointers should be cleared. That's what your patch should
do, not do it for each IO.
--
Jens Axboe
gt;
> Avoiding block layer changes is also attempted in but our problem
> is to convert that code common for non-mq and mq.
> Temporary to unblock this issue, We have fixed using driver
> internals scsiio_tracker() instead of piggy back in scsi_command.
For mq, the requests never go out of scope, they are always valid. So
the key question here is WHY they have been freed. If the queue gets killed,
then one potential solution would be to clear pointers in the tag map
belonging to that queue. That also takes it out of the hot path.
--
Jens Axboe
ed
> by modifying the mpt3sas driver. So why to fix this by modifying the block
> layer? Additionally, what prevents that a race condition occurs between
> the block layer clearing hctx->tags->rqs[rq->tag] and scsi_host_find_tag()
> reading that same array element? I'm afraid that this is an attempt to
> paper over a real problem instead of fixing the root cause.
I have to agree with Bart here, I just don't see how the mpt3sas use case
is special. The change will paper over the issue in any case.
--
Jens Axboe
On 12/13/18 1:04 PM, Ladvine D Almeida wrote:
> On 13/12/18 7:42 PM, Jens Axboe wrote:
>> On 12/13/18 12:39 PM, Ladvine D Almeida wrote:
>>> Suggest to take a look into the article
>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__lwn.net_Articles_717754&d=Dw
ou both need to edit when you reply, wading through 650 lines of
text to get to this...
You obviously can't modify the bio if you don't own it, but you could
clone it and then you have storage in ->bi_private.
--
Jens Axboe
On 12/12/18 8:33 AM, Jens Axboe wrote:
> On 12/12/18 8:32 AM, Christoph Hellwig wrote:
>> On Wed, Dec 12, 2018 at 08:22:37AM -0700, Jens Axboe wrote:
>>> That one is a little worse, since we only need a full page if we
>>> use all 256 segments. I don't want to ma
On 12/12/18 8:32 AM, Christoph Hellwig wrote:
> On Wed, Dec 12, 2018 at 08:22:37AM -0700, Jens Axboe wrote:
>> That one is a little worse, since we only need a full page if we
>> use all 256 segments. I don't want to make the fast case of
>> 16 bytes single segment all
On 12/12/18 7:35 AM, Jens Axboe wrote:
> On 12/12/18 7:21 AM, Christoph Hellwig wrote:
>> Looks good:
>>
>> Reviewed-by: Christoph Hellwig
>>
>> Note that NVMe will need the same treatment.
>
> Indeed, I'll prep one for that too.
That one is a little
On 12/12/18 7:21 AM, Christoph Hellwig wrote:
> Looks good:
>
> Reviewed-by: Christoph Hellwig
>
> Note that NVMe will need the same treatment.
Indeed, I'll prep one for that too.
--
Jens Axboe
/0x40
Ensure that the discard page allocation has a mempool backing, so we
know we can make progress.
Cc: sta...@vger.kernel.org
Signed-off-by: Jens Axboe
---
We actually hit this in production, it's not a theoretical issue.
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index 4a
On 12/7/18 8:20 PM, Martin K. Petersen wrote:
>
> Jens,
>
> This went in through your tree. Can you please pick this fix up?
Yep, applied, thanks Dan.
--
Jens Axboe
provide control if driver wants to quit in-between or do some
> retry logic etc.
>
> Why can't we add single API which provides the correct output.
>From 4.21 and forward, there will only be blk/scsi-mq. This is exactly
the problem with having to maintain two stacks, it's a huge pain.
--
Jens Axboe
.
And with that, can we please put an end to this thread (and patchset)?
--
Jens Axboe
. How would anyone get offended by reading
> technical comments? This is all beyond me...
Agree, this is insanity.
--
Jens Axboe
On 11/28/18 9:26 AM, Keith Busch wrote:
> On Wed, Nov 28, 2018 at 08:58:00AM -0700, Jens Axboe wrote:
>> On 11/28/18 8:49 AM, Keith Busch wrote:
>>> On Wed, Nov 28, 2018 at 11:08:48AM +0100, Christoph Hellwig wrote:
>>>> On Wed, Nov 28, 2018 at 06:07:01PM +0800, Ming
rder. If this were a real device, that'd probably result
> in data corruption.
null_blk just needs updating for this.
--
Jens Axboe
to its completed state by
> shifting that expense to lower level drivers that actually need it,
> and removing the software layering violation that was required to use
> that mechnaism.
Thanks Keith, added for 4.21.
--
Jens Axboe
r two and then move that over as well.
>>
>> The only concurrent access is completion + timeout, otherwise access is
>> single-threaded. I'm using the atomic operations only where it is
>> needed.
>>
>> We implicitly clear the SCMD_COMPLETED flag along with SCMD_TAGGED in
>> scsi_init_command() too, and I didn't want to add new overhead with
>> new atomics.
>
> In general mixing access types on a single field (nevermind bit)
> is going to cause us problems further down the road sooner or later.
>
> I'd be much happier with a separate field.
Keith, will you please respin with the separate field? Would be nice
to get this merged for 4.21.
--
Jens Axboe
On 11/21/18 7:00 PM, Ming Lei wrote:
> On Wed, Nov 21, 2018 at 06:42:51PM -0700, Jens Axboe wrote:
>> On 11/21/18 6:00 PM, Ming Lei wrote:
>>> On Wed, Nov 21, 2018 at 02:47:35PM -0700, Jens Axboe wrote:
>>>> On 11/14/18 8:20 AM, Jens Axboe wrote:
>>>
On 11/21/18 6:00 PM, Ming Lei wrote:
> On Wed, Nov 21, 2018 at 02:47:35PM -0700, Jens Axboe wrote:
>> On 11/14/18 8:20 AM, Jens Axboe wrote:
>>> On 11/14/18 1:25 AM, Ming Lei wrote:
>>>> c2856ae2f315d ("blk-mq: quiesce queue before freeing queue") has
&
On 11/14/18 8:20 AM, Jens Axboe wrote:
> On 11/14/18 1:25 AM, Ming Lei wrote:
>> c2856ae2f315d ("blk-mq: quiesce queue before freeing queue") has
>> already fixed this race, however the implied synchronize_rcu()
>> in blk_mq_quiesce_queue() can slow down LUN probe
!blk_mq_complete_request(cmd->request)))
>> +clear_bit(__SCMD_COMPLETE, &cmd->flags);
>> }
>
> This looks a little odd to me. If we didn't complete the command
> someone else did. Why would we clear the bit in this case?
It's strictly for the fake timeout, it didn't complete it, it just
ignored it. This is an artifact of the weird way that works.
--
Jens Axboe
ng violation that was required to use that mechnaism.
Looks good to me.
--
Jens Axboe
uest and the following run queue.
Thanks applied, this bug was elusive but ever present in recent
testing that we did internally, it's been a huge pain in the butt.
The symptoms were usually a crash in blk_mq_get_driver_tag() with
hctx->tags == NULL, or a crash inside deadline request insert off
requeue.
--
Jens Axboe
On 11/13/18 12:45 PM, Keith Busch wrote:
> On Tue, Nov 13, 2018 at 12:20:46PM -0700, Jens Axboe wrote:
>> On 11/13/18 11:57 AM, Keith Busch wrote:
>>> static void scsi_mq_done(struct scsi_cmnd *cmd)
>>> {
>>> + if (test_and_set_bit(__SCMD_COMPLETE,
as going to suggest a request flag, but the request is gone at this
point. So that won't really work...
I'm with your solution as well, fwiw.
--
Jens Axboe
On 11/9/18 6:42 AM, Christoph Hellwig wrote:
> Hi Jens,
>
> this series gets rid of the old BLKPREP_* values from the legacy block
> layer in favor of always using a blk_status_t (or a bool in one case).
Applied
--
Jens Axboe
take this through the block tree with the dependencies, I'll wait
a bit to let folks take a closer look.
--
Jens Axboe
ou to base
>> the 4.21 SCSI branch on it to avoid conflicting changes.
>
> Sure, that's fine.
Great, it's all sitting in my for-4.21/block branch now.
--
Jens Axboe
, which would make
it trivial for you to base the 4.21 SCSI branch on it to avoid
conflicting changes.
--
Jens Axboe
On 11/1/18 3:26 PM, Omar Sandoval wrote:
> On Wed, Oct 31, 2018 at 11:59:13AM -0600, Jens Axboe wrote:
>> This removes a bunch of core and elevator related code. On the core
>> front, we remove anything related to queue running, draining,
>> initialization, plugging, and cong
device_attribute *attr, char *buf)
>> }
>> static DEVICE_ATTR(host_busy, S_IRUGO, show_host_busy, NULL);
>>
>> +static ssize_t
>> +show_use_blk_mq(struct device *dev, struct device_attribute *attr, char
>> *buf)
>> +{
>> +return snprintf(buf, 20, "1\n");
>> +}
>
> Looks like you forgot to change this to sprintf()
Indeed, I'll make that change.
Thanks for the review!
--
Jens Axboe
On 10/31/18 8:35 PM, Ming Lei wrote:
> On Wed, Oct 31, 2018 at 11:58:52AM -0600, Jens Axboe wrote:
>> This patch series converts the remaining drivers to blk-mq. SCSI
>> supports both paths, this removes the legacy IO path from SCSI. At the
>> end, legacy IO code and sche
The only user of legacy timing now is BSG, which is invoked
from the mq timeout handler. Kill the legacy code, and rename
the q->rq_timed_out_fn to q->bsg_job_timeout_fn.
Reviewed-by: Hannes Reinecke
Signed-off-by: Jens Axboe
---
block/blk-core.c | 1 -
block/blk-settings.c
It's now unused, kill it.
Reviewed-by: Hannes Reinecke
Signed-off-by: Jens Axboe
---
Documentation/block/biodoc.txt | 88
block/Makefile | 2 +-
block/blk-core.c | 6 -
block/blk-mq-debugfs.c | 2 -
block/blk-mq-tag.c
Now there's no difference between blk_put_request() and
__blk_put_request() anymore, get rid of the underscore version and
convert the few callers.
Reviewed-by: Hannes Reinecke
Signed-off-by: Jens Axboe
---
block/blk-core.c | 9 -
block/blk-me
Only the SCSI legacy path provides a way to check if target is
currently busy, provide the same for the MQ path.
Cc: linux-scsi@vger.kernel.org
Reviewed-by: Hannes Reinecke
Signed-off-by: Jens Axboe
---
drivers/scsi/scsi_lib.c | 6 ++
1 file changed, 6 insertions(+)
diff --git a/drivers
We only support mq devices now.
Reviewed-by: Hannes Reinecke
Signed-off-by: Jens Axboe
---
block/blk-cgroup.c | 8
1 file changed, 8 deletions(-)
diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c
index 992da5592c6e..5f10d755ec52 100644
--- a/block/blk-cgroup.c
+++ b/block/blk
It's now dead code, nobody uses it.
Reviewed-by: Hannes Reinecke
Signed-off-by: Jens Axboe
---
block/blk-cgroup.c | 47
block/blk-core.c | 75 --
block/blk-mq.c | 4 --
block/blk.h| 3 --
include/
Reviewed-by: Hannes Reinecke
Signed-off-by: Jens Axboe
---
block/blk-flush.c | 154 +-
block/blk.h | 4 +-
2 files changed, 31 insertions(+), 127 deletions(-)
diff --git a/block/blk-flush.c b/block/blk-flush.c
index 8b44b86779da..9baa9a119447
Reviewed-by: Hannes Reinecke
Signed-off-by: Jens Axboe
---
block/blk-core.c | 8
block/blk.h | 1 -
2 files changed, 9 deletions(-)
diff --git a/block/blk-core.c b/block/blk-core.c
index 0678ec4b1169..951e8cf082e1 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -57,11
It'll always be false at this point, just remove it.
Reviewed-by: Hannes Reinecke
Signed-off-by: Jens Axboe
---
block/blk-merge.c | 25 +++--
1 file changed, 3 insertions(+), 22 deletions(-)
diff --git a/block/blk-merge.c b/block/blk-merge.c
index 7fedc03
We'll hook into this from blk_lld_busy(), allowing blk-mq to also
return whether or not a given queue currently has requests in
progress.
Reviewed-by: Hannes Reinecke
Signed-off-by: Jens Axboe
---
block/blk-core.c | 2 ++
include/linux/blk-mq.h | 6 ++
2 files changed, 8 inser
With the legacy path gone, all we do is funnel it through the
mq_ops->complete() operation.
Signed-off-by: Jens Axboe
---
block/blk-mq.c | 17 -
block/blk-settings.c | 6 --
block/blk-softirq.c| 4 ++--
include/linux/blk-mq.h | 3 ++-
include/linux/blkde
This is dead code, any queue reaching this part has mq_ops
attached.
Reviewed-by: Hannes Reinecke
Signed-off-by: Jens Axboe
---
block/blk-merge.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/block/blk-merge.c b/block/blk-merge.c
index 3561dcce2260..0128284bded4 100644
--- a/block/blk
No point in hiding what this does, just open code it in the
one spot where we are still using it.
Reviewed-by: Hannes Reinecke
Signed-off-by: Jens Axboe
---
block/blk-mq.c | 2 +-
include/linux/blkdev.h | 2 --
2 files changed, 1 insertion(+), 3 deletions(-)
diff --git a/block/blk
.
Signed-off-by: Jens Axboe
---
block/bfq-iosched.c |1 -
block/blk-core.c | 1749 +-
block/blk-exec.c | 20 +-
block/blk-ioc.c | 33 +-
block/blk-merge.c|5 -
block/blk-settings.c | 36 -
block/blk-sysfs.c
Get rid of the special bsg job fn and timeout handler, move them
into a private bsg_set instead.
Mostly from Christoph, with fixes for error handling and cleanups.
Reviewed-by: Hannes Reinecke
Signed-off-by: Jens Axboe
---
block/bsg-lib.c | 43
Everything is blk-mq at this point, so it doesn't make any sense
to have this option available as it does nothing.
Reviewed-by: Hannes Reinecke
Signed-off-by: Jens Axboe
---
block/Kconfig | 6 --
block/blk-wbt.c | 3 +--
2 files changed, 1 insertion(+), 8 deletions(-)
diff --git a/
It's now unused.
Reviewed-by: Hannes Reinecke
Signed-off-by: Jens Axboe
---
block/blk-softirq.c| 20
include/linux/blkdev.h | 1 -
2 files changed, 21 deletions(-)
diff --git a/block/blk-softirq.c b/block/blk-softirq.c
index e47a2f751884..8ca0f6caf174 100644
Requires a few changes to the FC transport class as well.
Cc: linux-scsi@vger.kernel.org
Reviewed-by: Hannes Reinecke
Reviewed-by: Johannes Thumshirn
Tested-by: Benjamin Block
Signed-off-by: Jens Axboe
---
block/bsg-lib.c | 123 +++
drivers/scsi
All drivers do unregister + cleanup, provide a helper for that.
Cc: linux-scsi@vger.kernel.org
Reviewed-by: Hannes Reinecke
Reviewed-by: Johannes Thumshirn
Reviewed-by: Christoph Hellwig
Tested-by: Benjamin Block
Signed-off-by: Jens Axboe
---
block/bsg-lib.c | 9
This will ease in the conversion to blk-mq, where we can't set
a timeout handler after queue init.
Cc: Johannes Thumshirn
Cc: linux-scsi@vger.kernel.org
Reviewed-by: Hannes Reinecke
Tested-by: Benjamin Block
Signed-off-by: Jens Axboe
---
block/bsg-lib.c | 3 ++-
dr
Nobody is using the legacy path for blk_lld_busy() anymore, remove
it.
Reviewed-by: Hannes Reinecke
Signed-off-by: Jens Axboe
---
block/blk-core.c | 2 --
block/blk-settings.c | 6 --
include/linux/blkdev.h | 3 ---
3 files changed, 11 deletions(-)
diff --git a/block/blk-core.c b
ewed-by: Jan Hoeppner
Signed-off-by: Stefan Haberland
Signed-off-by: Jens Axboe
---
drivers/s390/block/dasd_ioctl.c | 22 +-
1 file changed, 5 insertions(+), 17 deletions(-)
diff --git a/drivers/s390/block/dasd_ioctl.c b/drivers/s390/block/dasd_ioctl.c
index 2016e0ed5865..8e26
Cc: linux-scsi@vger.kernel.org
Acked-by: Himanshu Madhani
Reviewed-by: Hannes Reinecke
Signed-off-by: Jens Axboe
---
Documentation/scsi/scsi-parameters.txt | 5 -
drivers/scsi/Kconfig | 12 -
drivers/scsi/cxlflash/main.c | 6 -
drivers/scsi/hosts.c
Reviewed-by: Hannes Reinecke
Signed-off-by: Jens Axboe
---
block/blk-mq.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/block/blk-mq.c b/block/blk-mq.c
index 4c82dc44d4d8..a58d2d953876 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -177,8 +177,6 @@ void blk_freeze_queue(struct
Straight forward conversion, there's room for improvement.
Reviewed-by: Hannes Reinecke
Signed-off-by: Jens Axboe
---
drivers/memstick/core/mspro_block.c | 121 +++-
1 file changed, 66 insertions(+), 55 deletions(-)
diff --git a/drivers/memstick/core/mspro_block
We don't do anything with it, that's just the legacy path.
Reviewed-by: Hannes Reinecke
Signed-off-by: Jens Axboe
---
block/blk-mq.c | 5 -
1 file changed, 5 deletions(-)
diff --git a/block/blk-mq.c b/block/blk-mq.c
index 3f91c6e5b17a..4c82dc44d4d8 100644
--- a/block/blk-mq.c
+
| 18 +-
include/scsi/scsi_tcq.h| 14 +-
init/do_mounts_initrd.c|3 -
init/initramfs.c |6 -
init/main.c| 12 -
77 files changed, 837 insertions(+), 10733 deletions(-)
--
Jens Axboe
Cc: David Miller
Reviewed-by: Hannes Reinecke
Signed-off-by: Jens Axboe
---
drivers/ide/ide-atapi.c | 25 --
drivers/ide/ide-cd.c| 175 +---
drivers/ide/ide-disk.c | 5 +-
drivers/ide/ide-io.c| 100 +--
drivers/ide/ide-par
Signed-off-by: Jens Axboe
---
drivers/memstick/core/ms_block.c | 110 +--
drivers/memstick/core/ms_block.h | 1 +
2 files changed, 62 insertions(+), 49 deletions(-)
diff --git a/drivers/memstick/core/ms_block.c b/drivers/memstick/core/ms_block.c
index 8a02f11076f9
Convert from the old request_fn style driver to blk-mq.
Cc: David Miller
Reviewed-by: Hannes Reinecke
Signed-off-by: Jens Axboe
---
drivers/block/sunvdc.c | 149 +++--
1 file changed, 98 insertions(+), 51 deletions(-)
diff --git a/drivers/block/sunvdc.c b
On 10/30/18 1:45 AM, Christoph Hellwig wrote:
> On Mon, Oct 29, 2018 at 02:42:12PM -0600, Jens Axboe wrote:
>> LGTM, for both:
>
> I also have this one on top as requested by Martin. The core block
> bidi support is unfortunately also used by bsg-lib, although it is
>
On 10/30/18 11:46 AM, Thomas Gleixner wrote:
> On Tue, 30 Oct 2018, Jens Axboe wrote:
>> On 10/30/18 11:25 AM, Thomas Gleixner wrote:
>>> Jens,
>>>
>>> On Tue, 30 Oct 2018, Jens Axboe wrote:
>>>> On 10/30/18 10:02 AM, Keith Busch wrote:
>>>&
On 10/30/18 11:34 AM, Jens Axboe wrote:
> On 10/30/18 11:25 AM, Thomas Gleixner wrote:
>> Jens,
>>
>> On Tue, 30 Oct 2018, Jens Axboe wrote:
>>> On 10/30/18 10:02 AM, Keith Busch wrote:
>>>> pci_alloc_irq_vectors_affinity() starts at the provided ma
On 10/30/18 11:25 AM, Thomas Gleixner wrote:
> Jens,
>
> On Tue, 30 Oct 2018, Jens Axboe wrote:
>> On 10/30/18 10:02 AM, Keith Busch wrote:
>>> pci_alloc_irq_vectors_affinity() starts at the provided max_vecs. If
>>> that doesn't work, it will iterate down to
On 10/30/18 11:22 AM, Keith Busch wrote:
> On Tue, Oct 30, 2018 at 11:09:04AM -0600, Jens Axboe wrote:
>> Pretty trivial, below. This also keeps the queue mapping calculations
>> more clean, as we don't have to do one after we're done allocating
>> IRQs.
>
&g
just respin and keep
the 'ctx' argument to keep that perfectly clear. It'll work just fine
with different ctxs, but they will end up on a non-matching ctx which
isn't ideal.
--
Jens Axboe
On 10/30/18 10:42 AM, Jens Axboe wrote:
> On 10/30/18 10:02 AM, Keith Busch wrote:
>> On Tue, Oct 30, 2018 at 09:18:05AM -0600, Jens Axboe wrote:
>>> On 10/30/18 9:08 AM, Keith Busch wrote:
>>>> On Tue, Oct 30, 2018 at 08:53:37AM -0600, Jens Axboe wrote:
>>>
On 10/30/18 10:02 AM, Keith Busch wrote:
> On Tue, Oct 30, 2018 at 09:18:05AM -0600, Jens Axboe wrote:
>> On 10/30/18 9:08 AM, Keith Busch wrote:
>>> On Tue, Oct 30, 2018 at 08:53:37AM -0600, Jens Axboe wrote:
>>>> The sum of the set can't exceed the n
On 10/30/18 9:08 AM, Keith Busch wrote:
> On Tue, Oct 30, 2018 at 08:53:37AM -0600, Jens Axboe wrote:
>> The sum of the set can't exceed the nvecs passed in, the nvecs passed in
>> should be the less than or equal to nvecs. Granted this isn't enforced,
>> and
On 10/30/18 8:45 AM, Keith Busch wrote:
> On Tue, Oct 30, 2018 at 08:36:35AM -0600, Jens Axboe wrote:
>> On 10/30/18 8:26 AM, Keith Busch wrote:
>>> On Mon, Oct 29, 2018 at 10:37:35AM -0600, Jens Axboe wrote:
>>>> diff --git a/kernel/irq/affinity.c b/kernel/irq/affi
On 10/30/18 8:26 AM, Keith Busch wrote:
> On Mon, Oct 29, 2018 at 10:37:35AM -0600, Jens Axboe wrote:
>> diff --git a/kernel/irq/affinity.c b/kernel/irq/affinity.c
>> index f4f29b9d90ee..2046a0f0f0f1 100644
>> --- a/kernel/irq/affinity.c
>> +++ b/kernel/irq/aff
On 10/30/18 3:41 AM, Ming Lei wrote:
> On Mon, Oct 29, 2018 at 09:04:33AM -0600, Jens Axboe wrote:
>> On 10/29/18 8:50 AM, Jens Axboe wrote:
>>> On 10/29/18 6:00 AM, Ming Lei wrote:
>>>> On Thu, Oct 25, 2018 at 03:10:11PM -0600, Jens Axboe wrote:
>>>>&
1 - 100 of 1039 matches
Mail list logo