mbox series

[PATCHSET,v3,0/30] blk-mq driver conversions and legacy path removal

Message ID 20181031175922.8849-1-axboe@kernel.dk (mailing list archive)
Headers show
Series blk-mq driver conversions and legacy path removal | expand

Message

Jens Axboe Oct. 31, 2018, 5:58 p.m. UTC
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 schedulers are killed off.

I'm not aware of any issues with this series.

This patch series is on top of current -git. It can also be bound in
my mq-conversions branch.

Changes since v2:

- Kill q->softirq_done_fn()

Changes since v1:

- Fix removed q->mq_ops non-NULL check in wbt_enable_default()
- Remove spurious return in ide-io.c:ide_timer_expiry()
- Dropped DM legacy path removal patch, now in mainline
- Dropped ib_srp patch, now in mainline
- Fixed a missing port unlock in IDE
- Add SCSI ufs to the BSG conversions
- Add patch to remove bsg-lib queue hook dependencies
- Fixed missing clear of IO contexts
- Added blk-mq backend for blk_lld_busy()

 Documentation/block/biodoc.txt         |   88 -
 Documentation/block/cfq-iosched.txt    |  291 --
 Documentation/scsi/scsi-parameters.txt |    5 -
 block/Kconfig                          |    6 -
 block/Kconfig.iosched                  |   61 -
 block/Makefile                         |    5 +-
 block/bfq-iosched.c                    |    1 -
 block/blk-cgroup.c                     |   55 -
 block/blk-core.c                       | 1836 +-----------
 block/blk-exec.c                       |   20 +-
 block/blk-flush.c                      |  154 +-
 block/blk-ioc.c                        |   33 +-
 block/blk-merge.c                      |   35 +-
 block/blk-mq-debugfs.c                 |    2 -
 block/blk-mq-tag.c                     |    6 +-
 block/blk-mq.c                         |   30 +-
 block/blk-settings.c                   |   55 -
 block/blk-softirq.c                    |   24 +-
 block/blk-sysfs.c                      |   39 +-
 block/blk-tag.c                        |  378 ---
 block/blk-timeout.c                    |   99 +-
 block/blk-wbt.c                        |    3 +-
 block/blk.h                            |   60 +-
 block/bsg-lib.c                        |  146 +-
 block/cfq-iosched.c                    | 4916 --------------------------------
 block/deadline-iosched.c               |  560 ----
 block/elevator.c                       |  447 +--
 block/kyber-iosched.c                  |    1 -
 block/mq-deadline.c                    |    1 -
 block/noop-iosched.c                   |  124 -
 drivers/block/sunvdc.c                 |  149 +-
 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-park.c                 |    4 +-
 drivers/ide/ide-pm.c                   |   28 +-
 drivers/ide/ide-probe.c                |   68 +-
 drivers/memstick/core/ms_block.c       |  110 +-
 drivers/memstick/core/ms_block.h       |    1 +
 drivers/memstick/core/mspro_block.c    |  121 +-
 drivers/s390/block/dasd_ioctl.c        |   22 +-
 drivers/scsi/Kconfig                   |   12 -
 drivers/scsi/cxlflash/main.c           |    6 -
 drivers/scsi/hosts.c                   |   29 +-
 drivers/scsi/lpfc/lpfc_scsi.c          |    2 +-
 drivers/scsi/osd/osd_initiator.c       |    4 +-
 drivers/scsi/osst.c                    |    2 +-
 drivers/scsi/qedi/qedi_main.c          |    3 +-
 drivers/scsi/qla2xxx/qla_os.c          |   30 +-
 drivers/scsi/scsi.c                    |    5 +-
 drivers/scsi/scsi_debug.c              |    3 +-
 drivers/scsi/scsi_error.c              |    4 +-
 drivers/scsi/scsi_lib.c                |  599 +---
 drivers/scsi/scsi_priv.h               |    1 -
 drivers/scsi/scsi_scan.c               |   10 +-
 drivers/scsi/scsi_sysfs.c              |    8 +-
 drivers/scsi/scsi_transport_fc.c       |   71 +-
 drivers/scsi/scsi_transport_iscsi.c    |    7 +-
 drivers/scsi/scsi_transport_sas.c      |   10 +-
 drivers/scsi/sg.c                      |    2 +-
 drivers/scsi/st.c                      |    2 +-
 drivers/scsi/ufs/ufs_bsg.c             |    4 +-
 drivers/scsi/ufs/ufshcd.c              |    6 -
 drivers/target/target_core_pscsi.c     |    2 +-
 include/linux/blk-cgroup.h             |  108 -
 include/linux/blk-mq.h                 |    9 +-
 include/linux/blkdev.h                 |  179 +-
 include/linux/bsg-lib.h                |    6 +-
 include/linux/elevator.h               |   90 +-
 include/linux/ide.h                    |   13 +-
 include/linux/init.h                   |    1 -
 include/scsi/scsi_host.h               |   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(-)

Comments

Ming Lei Nov. 1, 2018, 2:35 a.m. UTC | #1
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 schedulers are killed off.
> 
> I'm not aware of any issues with this series.
> 
> This patch series is on top of current -git. It can also be bound in
> my mq-conversions branch.
> 
> Changes since v2:
> 
> - Kill q->softirq_done_fn()
> 
> Changes since v1:
> 
> - Fix removed q->mq_ops non-NULL check in wbt_enable_default()
> - Remove spurious return in ide-io.c:ide_timer_expiry()
> - Dropped DM legacy path removal patch, now in mainline
> - Dropped ib_srp patch, now in mainline
> - Fixed a missing port unlock in IDE
> - Add SCSI ufs to the BSG conversions
> - Add patch to remove bsg-lib queue hook dependencies
> - Fixed missing clear of IO contexts
> - Added blk-mq backend for blk_lld_busy()
> 
>  Documentation/block/biodoc.txt         |   88 -
>  Documentation/block/cfq-iosched.txt    |  291 --
>  Documentation/scsi/scsi-parameters.txt |    5 -
>  block/Kconfig                          |    6 -
>  block/Kconfig.iosched                  |   61 -
>  block/Makefile                         |    5 +-
>  block/bfq-iosched.c                    |    1 -
>  block/blk-cgroup.c                     |   55 -
>  block/blk-core.c                       | 1836 +-----------
>  block/blk-exec.c                       |   20 +-
>  block/blk-flush.c                      |  154 +-
>  block/blk-ioc.c                        |   33 +-
>  block/blk-merge.c                      |   35 +-
>  block/blk-mq-debugfs.c                 |    2 -
>  block/blk-mq-tag.c                     |    6 +-
>  block/blk-mq.c                         |   30 +-
>  block/blk-settings.c                   |   55 -
>  block/blk-softirq.c                    |   24 +-
>  block/blk-sysfs.c                      |   39 +-
>  block/blk-tag.c                        |  378 ---
>  block/blk-timeout.c                    |   99 +-
>  block/blk-wbt.c                        |    3 +-
>  block/blk.h                            |   60 +-
>  block/bsg-lib.c                        |  146 +-
>  block/cfq-iosched.c                    | 4916 --------------------------------
>  block/deadline-iosched.c               |  560 ----
>  block/elevator.c                       |  447 +--
>  block/kyber-iosched.c                  |    1 -
>  block/mq-deadline.c                    |    1 -
>  block/noop-iosched.c                   |  124 -
>  drivers/block/sunvdc.c                 |  149 +-
>  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-park.c                 |    4 +-
>  drivers/ide/ide-pm.c                   |   28 +-
>  drivers/ide/ide-probe.c                |   68 +-
>  drivers/memstick/core/ms_block.c       |  110 +-
>  drivers/memstick/core/ms_block.h       |    1 +
>  drivers/memstick/core/mspro_block.c    |  121 +-
>  drivers/s390/block/dasd_ioctl.c        |   22 +-
>  drivers/scsi/Kconfig                   |   12 -
>  drivers/scsi/cxlflash/main.c           |    6 -
>  drivers/scsi/hosts.c                   |   29 +-
>  drivers/scsi/lpfc/lpfc_scsi.c          |    2 +-
>  drivers/scsi/osd/osd_initiator.c       |    4 +-
>  drivers/scsi/osst.c                    |    2 +-
>  drivers/scsi/qedi/qedi_main.c          |    3 +-
>  drivers/scsi/qla2xxx/qla_os.c          |   30 +-
>  drivers/scsi/scsi.c                    |    5 +-
>  drivers/scsi/scsi_debug.c              |    3 +-
>  drivers/scsi/scsi_error.c              |    4 +-
>  drivers/scsi/scsi_lib.c                |  599 +---
>  drivers/scsi/scsi_priv.h               |    1 -
>  drivers/scsi/scsi_scan.c               |   10 +-
>  drivers/scsi/scsi_sysfs.c              |    8 +-
>  drivers/scsi/scsi_transport_fc.c       |   71 +-
>  drivers/scsi/scsi_transport_iscsi.c    |    7 +-
>  drivers/scsi/scsi_transport_sas.c      |   10 +-
>  drivers/scsi/sg.c                      |    2 +-
>  drivers/scsi/st.c                      |    2 +-
>  drivers/scsi/ufs/ufs_bsg.c             |    4 +-
>  drivers/scsi/ufs/ufshcd.c              |    6 -
>  drivers/target/target_core_pscsi.c     |    2 +-
>  include/linux/blk-cgroup.h             |  108 -
>  include/linux/blk-mq.h                 |    9 +-
>  include/linux/blkdev.h                 |  179 +-
>  include/linux/bsg-lib.h                |    6 +-
>  include/linux/elevator.h               |   90 +-
>  include/linux/ide.h                    |   13 +-
>  include/linux/init.h                   |    1 -
>  include/scsi/scsi_host.h               |   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(-)

Tested-by: Ming Lei <ming.lei@redhat.com>

Thanks,
Ming
Jens Axboe Nov. 1, 2018, 12:22 p.m. UTC | #2
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 schedulers are killed off.
>>
>> I'm not aware of any issues with this series.
>>
>> This patch series is on top of current -git. It can also be bound in
>> my mq-conversions branch.
>>
>> Changes since v2:
>>
>> - Kill q->softirq_done_fn()
>>
>> Changes since v1:
>>
>> - Fix removed q->mq_ops non-NULL check in wbt_enable_default()
>> - Remove spurious return in ide-io.c:ide_timer_expiry()
>> - Dropped DM legacy path removal patch, now in mainline
>> - Dropped ib_srp patch, now in mainline
>> - Fixed a missing port unlock in IDE
>> - Add SCSI ufs to the BSG conversions
>> - Add patch to remove bsg-lib queue hook dependencies
>> - Fixed missing clear of IO contexts
>> - Added blk-mq backend for blk_lld_busy()
>>
>>  Documentation/block/biodoc.txt         |   88 -
>>  Documentation/block/cfq-iosched.txt    |  291 --
>>  Documentation/scsi/scsi-parameters.txt |    5 -
>>  block/Kconfig                          |    6 -
>>  block/Kconfig.iosched                  |   61 -
>>  block/Makefile                         |    5 +-
>>  block/bfq-iosched.c                    |    1 -
>>  block/blk-cgroup.c                     |   55 -
>>  block/blk-core.c                       | 1836 +-----------
>>  block/blk-exec.c                       |   20 +-
>>  block/blk-flush.c                      |  154 +-
>>  block/blk-ioc.c                        |   33 +-
>>  block/blk-merge.c                      |   35 +-
>>  block/blk-mq-debugfs.c                 |    2 -
>>  block/blk-mq-tag.c                     |    6 +-
>>  block/blk-mq.c                         |   30 +-
>>  block/blk-settings.c                   |   55 -
>>  block/blk-softirq.c                    |   24 +-
>>  block/blk-sysfs.c                      |   39 +-
>>  block/blk-tag.c                        |  378 ---
>>  block/blk-timeout.c                    |   99 +-
>>  block/blk-wbt.c                        |    3 +-
>>  block/blk.h                            |   60 +-
>>  block/bsg-lib.c                        |  146 +-
>>  block/cfq-iosched.c                    | 4916 --------------------------------
>>  block/deadline-iosched.c               |  560 ----
>>  block/elevator.c                       |  447 +--
>>  block/kyber-iosched.c                  |    1 -
>>  block/mq-deadline.c                    |    1 -
>>  block/noop-iosched.c                   |  124 -
>>  drivers/block/sunvdc.c                 |  149 +-
>>  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-park.c                 |    4 +-
>>  drivers/ide/ide-pm.c                   |   28 +-
>>  drivers/ide/ide-probe.c                |   68 +-
>>  drivers/memstick/core/ms_block.c       |  110 +-
>>  drivers/memstick/core/ms_block.h       |    1 +
>>  drivers/memstick/core/mspro_block.c    |  121 +-
>>  drivers/s390/block/dasd_ioctl.c        |   22 +-
>>  drivers/scsi/Kconfig                   |   12 -
>>  drivers/scsi/cxlflash/main.c           |    6 -
>>  drivers/scsi/hosts.c                   |   29 +-
>>  drivers/scsi/lpfc/lpfc_scsi.c          |    2 +-
>>  drivers/scsi/osd/osd_initiator.c       |    4 +-
>>  drivers/scsi/osst.c                    |    2 +-
>>  drivers/scsi/qedi/qedi_main.c          |    3 +-
>>  drivers/scsi/qla2xxx/qla_os.c          |   30 +-
>>  drivers/scsi/scsi.c                    |    5 +-
>>  drivers/scsi/scsi_debug.c              |    3 +-
>>  drivers/scsi/scsi_error.c              |    4 +-
>>  drivers/scsi/scsi_lib.c                |  599 +---
>>  drivers/scsi/scsi_priv.h               |    1 -
>>  drivers/scsi/scsi_scan.c               |   10 +-
>>  drivers/scsi/scsi_sysfs.c              |    8 +-
>>  drivers/scsi/scsi_transport_fc.c       |   71 +-
>>  drivers/scsi/scsi_transport_iscsi.c    |    7 +-
>>  drivers/scsi/scsi_transport_sas.c      |   10 +-
>>  drivers/scsi/sg.c                      |    2 +-
>>  drivers/scsi/st.c                      |    2 +-
>>  drivers/scsi/ufs/ufs_bsg.c             |    4 +-
>>  drivers/scsi/ufs/ufshcd.c              |    6 -
>>  drivers/target/target_core_pscsi.c     |    2 +-
>>  include/linux/blk-cgroup.h             |  108 -
>>  include/linux/blk-mq.h                 |    9 +-
>>  include/linux/blkdev.h                 |  179 +-
>>  include/linux/bsg-lib.h                |    6 +-
>>  include/linux/elevator.h               |   90 +-
>>  include/linux/ide.h                    |   13 +-
>>  include/linux/init.h                   |    1 -
>>  include/scsi/scsi_host.h               |   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(-)
> 
> Tested-by: Ming Lei <ming.lei@redhat.com>

Thanks for testing, Ming.
Omar Sandoval Nov. 1, 2018, 9:26 p.m. UTC | #3
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 congestions. We also kill anything
> related to request allocation, merging, retrieval, and completion.
> 
> Remove any checking for single queue IO schedulers, as they no
> longer exist. This means we can also delete a bunch of code related
> to request issue, adding, completion, etc - and all the SQ related
> ops and helpers.
> 
> Also kill the load_default_modules(), as all that did was provide
> for a way to load the default single queue elevator.
> 
> Signed-off-by: Jens Axboe <axboe@kernel.dk>

[snip]

> -struct elevator_ops
> -{
> -	elevator_merge_fn *elevator_merge_fn;
> -	elevator_merged_fn *elevator_merged_fn;
> -	elevator_merge_req_fn *elevator_merge_req_fn;
> -	elevator_allow_bio_merge_fn *elevator_allow_bio_merge_fn;
> -	elevator_allow_rq_merge_fn *elevator_allow_rq_merge_fn;
> -	elevator_bio_merged_fn *elevator_bio_merged_fn;
> -
> -	elevator_dispatch_fn *elevator_dispatch_fn;
> -	elevator_add_req_fn *elevator_add_req_fn;
> -	elevator_activate_req_fn *elevator_activate_req_fn;
> -	elevator_deactivate_req_fn *elevator_deactivate_req_fn;
> -
> -	elevator_completed_req_fn *elevator_completed_req_fn;
> -
> -	elevator_request_list_fn *elevator_former_req_fn;
> -	elevator_request_list_fn *elevator_latter_req_fn;
> -
> -	elevator_init_icq_fn *elevator_init_icq_fn;	/* see iocontext.h */
> -	elevator_exit_icq_fn *elevator_exit_icq_fn;	/* ditto */
> -
> -	elevator_set_req_fn *elevator_set_req_fn;
> -	elevator_put_req_fn *elevator_put_req_fn;
> -
> -	elevator_may_queue_fn *elevator_may_queue_fn;
> -
> -	elevator_init_fn *elevator_init_fn;
> -	elevator_exit_fn *elevator_exit_fn;
> -	elevator_registered_fn *elevator_registered_fn;
> -};
> -
>  struct blk_mq_alloc_data;
>  struct blk_mq_hw_ctx;
>  
> @@ -138,16 +70,15 @@ struct elevator_type
>  
>  	/* fields provided by elevator implementation */
>  	union {
> -		struct elevator_ops sq;
>  		struct elevator_mq_ops mq;
>  	} ops;
> +

Lol. Maybe we should get rid of this union in a followup? At least until
we rewrite the block layer again.
Omar Sandoval Nov. 1, 2018, 9:27 p.m. UTC | #4
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 schedulers are killed off.
> 
> I'm not aware of any issues with this series.
> 
> This patch series is on top of current -git. It can also be bound in
> my mq-conversions branch.
> 
> Changes since v2:
> 
> - Kill q->softirq_done_fn()
> 
> Changes since v1:
> 
> - Fix removed q->mq_ops non-NULL check in wbt_enable_default()
> - Remove spurious return in ide-io.c:ide_timer_expiry()
> - Dropped DM legacy path removal patch, now in mainline
> - Dropped ib_srp patch, now in mainline
> - Fixed a missing port unlock in IDE
> - Add SCSI ufs to the BSG conversions
> - Add patch to remove bsg-lib queue hook dependencies
> - Fixed missing clear of IO contexts
> - Added blk-mq backend for blk_lld_busy()
> 
>  Documentation/block/biodoc.txt         |   88 -
>  Documentation/block/cfq-iosched.txt    |  291 --
>  Documentation/scsi/scsi-parameters.txt |    5 -
>  block/Kconfig                          |    6 -
>  block/Kconfig.iosched                  |   61 -
>  block/Makefile                         |    5 +-
>  block/bfq-iosched.c                    |    1 -
>  block/blk-cgroup.c                     |   55 -
>  block/blk-core.c                       | 1836 +-----------
>  block/blk-exec.c                       |   20 +-
>  block/blk-flush.c                      |  154 +-
>  block/blk-ioc.c                        |   33 +-
>  block/blk-merge.c                      |   35 +-
>  block/blk-mq-debugfs.c                 |    2 -
>  block/blk-mq-tag.c                     |    6 +-
>  block/blk-mq.c                         |   30 +-
>  block/blk-settings.c                   |   55 -
>  block/blk-softirq.c                    |   24 +-
>  block/blk-sysfs.c                      |   39 +-
>  block/blk-tag.c                        |  378 ---
>  block/blk-timeout.c                    |   99 +-
>  block/blk-wbt.c                        |    3 +-
>  block/blk.h                            |   60 +-
>  block/bsg-lib.c                        |  146 +-
>  block/cfq-iosched.c                    | 4916 --------------------------------
>  block/deadline-iosched.c               |  560 ----
>  block/elevator.c                       |  447 +--
>  block/kyber-iosched.c                  |    1 -
>  block/mq-deadline.c                    |    1 -
>  block/noop-iosched.c                   |  124 -
>  drivers/block/sunvdc.c                 |  149 +-
>  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-park.c                 |    4 +-
>  drivers/ide/ide-pm.c                   |   28 +-
>  drivers/ide/ide-probe.c                |   68 +-
>  drivers/memstick/core/ms_block.c       |  110 +-
>  drivers/memstick/core/ms_block.h       |    1 +
>  drivers/memstick/core/mspro_block.c    |  121 +-
>  drivers/s390/block/dasd_ioctl.c        |   22 +-
>  drivers/scsi/Kconfig                   |   12 -
>  drivers/scsi/cxlflash/main.c           |    6 -
>  drivers/scsi/hosts.c                   |   29 +-
>  drivers/scsi/lpfc/lpfc_scsi.c          |    2 +-
>  drivers/scsi/osd/osd_initiator.c       |    4 +-
>  drivers/scsi/osst.c                    |    2 +-
>  drivers/scsi/qedi/qedi_main.c          |    3 +-
>  drivers/scsi/qla2xxx/qla_os.c          |   30 +-
>  drivers/scsi/scsi.c                    |    5 +-
>  drivers/scsi/scsi_debug.c              |    3 +-
>  drivers/scsi/scsi_error.c              |    4 +-
>  drivers/scsi/scsi_lib.c                |  599 +---
>  drivers/scsi/scsi_priv.h               |    1 -
>  drivers/scsi/scsi_scan.c               |   10 +-
>  drivers/scsi/scsi_sysfs.c              |    8 +-
>  drivers/scsi/scsi_transport_fc.c       |   71 +-
>  drivers/scsi/scsi_transport_iscsi.c    |    7 +-
>  drivers/scsi/scsi_transport_sas.c      |   10 +-
>  drivers/scsi/sg.c                      |    2 +-
>  drivers/scsi/st.c                      |    2 +-
>  drivers/scsi/ufs/ufs_bsg.c             |    4 +-
>  drivers/scsi/ufs/ufshcd.c              |    6 -
>  drivers/target/target_core_pscsi.c     |    2 +-
>  include/linux/blk-cgroup.h             |  108 -
>  include/linux/blk-mq.h                 |    9 +-
>  include/linux/blkdev.h                 |  179 +-
>  include/linux/bsg-lib.h                |    6 +-
>  include/linux/elevator.h               |   90 +-
>  include/linux/ide.h                    |   13 +-
>  include/linux/init.h                   |    1 -
>  include/scsi/scsi_host.h               |   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(-)

Beautiful. For the series:

Reviewed-by: Omar Sandoval <osandov@fb.com>
Jens Axboe Nov. 1, 2018, 10:32 p.m. UTC | #5
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 congestions. We also kill anything
>> related to request allocation, merging, retrieval, and completion.
>>
>> Remove any checking for single queue IO schedulers, as they no
>> longer exist. This means we can also delete a bunch of code related
>> to request issue, adding, completion, etc - and all the SQ related
>> ops and helpers.
>>
>> Also kill the load_default_modules(), as all that did was provide
>> for a way to load the default single queue elevator.
>>
>> Signed-off-by: Jens Axboe <axboe@kernel.dk>
> 
> [snip]
> 
>> -struct elevator_ops
>> -{
>> -	elevator_merge_fn *elevator_merge_fn;
>> -	elevator_merged_fn *elevator_merged_fn;
>> -	elevator_merge_req_fn *elevator_merge_req_fn;
>> -	elevator_allow_bio_merge_fn *elevator_allow_bio_merge_fn;
>> -	elevator_allow_rq_merge_fn *elevator_allow_rq_merge_fn;
>> -	elevator_bio_merged_fn *elevator_bio_merged_fn;
>> -
>> -	elevator_dispatch_fn *elevator_dispatch_fn;
>> -	elevator_add_req_fn *elevator_add_req_fn;
>> -	elevator_activate_req_fn *elevator_activate_req_fn;
>> -	elevator_deactivate_req_fn *elevator_deactivate_req_fn;
>> -
>> -	elevator_completed_req_fn *elevator_completed_req_fn;
>> -
>> -	elevator_request_list_fn *elevator_former_req_fn;
>> -	elevator_request_list_fn *elevator_latter_req_fn;
>> -
>> -	elevator_init_icq_fn *elevator_init_icq_fn;	/* see iocontext.h */
>> -	elevator_exit_icq_fn *elevator_exit_icq_fn;	/* ditto */
>> -
>> -	elevator_set_req_fn *elevator_set_req_fn;
>> -	elevator_put_req_fn *elevator_put_req_fn;
>> -
>> -	elevator_may_queue_fn *elevator_may_queue_fn;
>> -
>> -	elevator_init_fn *elevator_init_fn;
>> -	elevator_exit_fn *elevator_exit_fn;
>> -	elevator_registered_fn *elevator_registered_fn;
>> -};
>> -
>>  struct blk_mq_alloc_data;
>>  struct blk_mq_hw_ctx;
>>  
>> @@ -138,16 +70,15 @@ struct elevator_type
>>  
>>  	/* fields provided by elevator implementation */
>>  	union {
>> -		struct elevator_ops sq;
>>  		struct elevator_mq_ops mq;
>>  	} ops;
>> +
> 
> Lol. Maybe we should get rid of this union in a followup? At least until
> we rewrite the block layer again.

Totally agree, wanted to do that in a followup patch, but just
haven't gotten around to it. I'll tack one on.