lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [day] [month] [year] [list]
Date:	Wed, 24 Sep 2008 13:47:20 +0200
From:	Jens Axboe <jens.axboe@...cle.com>
To:	linux-kernel@...r.kernel.org
Subject: What's in in the block git tree for 2.6.28?

Hi,

It seems it is about time to send out that mail on what I have queued up
for merging in the block layer for 2.6.28. So here it is, summarized and
in no particular order:

- IO scheduler fixes
        deadline: documentation fixes, cleanups, and allow
                  non-sequential request batching.
        cfq: fix queue depth detection.

- Support for handling online resizing of block devices.

- xen: support more than 16 devices in blkfront driver.

- Adds block layer support for the 'discard' operation, which can be
  used to tell devices that blocks are no longer in use anymore. Useful
  for SSD/flash and such.

- Lots of block IO mapping updates, mainly for moving large parts of
  that code out of SG and into the block core.

- Drop virtual merging support. It was largely a big cause of bugs, and
  its merrits are really low. By dropping it we can also shrink request
  and bio size, since we don't have to carry two seperate segment counts
  around.

- Add support for IO CPU affinity. This has been a long project with
  lots of architecture bits needing to get done first (are in 2.6.26),
  now we get to reap the benefits of this by adding simple support for
  controlling where we get IO completions on each individual request.
  Typical benefits are less variations in runtime for testing and a good
  reduction in system time due to less lock contention and bouncing.
  There's a coarse mode setting that migrates each completion to the
  submitter CPU (in sysfs, dev/queue/rq_affinity) and also support for
  letting the queuer (eg the fs) control completion location.

- Unify request timeout handling. This moves the timeout code out of
  SCSI and supports it directly in the block layer. The timeout concept
  is modified from being a per-request timer to a per-queue timer,
  greatly reducing the fiddling we have to do with timers on each IO. So
  it should be a performance improvement, as well as a space and code
  saver. Required for moving libata out of SCSI.

- Add FAULT_ config option for testing request timeouts.

- Detect SSD devices in libata and inform the block layer of such. Then
  we can make some better decisions in the IO scheduler about when to
  idle the queue, etc. Improves SSD performance with CFQ/AS.

- Various driver fixlets and driver/core cleanups.

- Add request update/submission interface, needed for request based DM
  support.

- kerneldoc updates.

- Support for extended and sparse device space. Required for moving
  libata out of SCSI.

I have probably forgotten a thing or two, if in doubt check the below
diffstat.

Aaron Carroll (4):
      deadline-iosched: allow non-sequential batching
      deadline-iosched: non-functional fixes
      block: update documentation for deadline fifo_batch tunable
      cfq-iosched: fix queue depth detection

Andrew Patterson (6):
      Wrapper for lower-level revalidate_disk routines.
      Adjust block device size after an online resize of a disk.
      Check for device resize when rescanning partitions
      SCSI sd driver calls revalidate_disk wrapper.
      Added flush_disk to factor out common buffer cache flushing code.
      Call flush_disk() after detecting an online resize.

Chris Lalancette (1):
      block: Expand Xen blkfront for > 16 xvd

David Woodhouse (10):
      Fix up comments about matching flags between bio and rq
      Add 'discard' request handling
      Let the block device know when sectors can be discarded
      Support 'discard sectors' operation in translation layer support core
      Support 'discard sectors' operation.
      blktrace: support discard requests
      blktrace: simplify flags handling in __blk_add_trace
      Add BLKDISCARD ioctl to allow userspace to discard sectors
      Allow elevators to sort/merge discard requests
      Kill REQ_TYPE_FLUSH

FUJITA Tomonori (19):
      block: add gfp_mask argument to blk_rq_map_user and blk_rq_map_user_iov
      block: introduce struct rq_map_data to use reserved pages
      sg: convert the non-data path to use the block layer
      sg: convert the direct IO path to use the block layer
      sg: convert the indirect IO path to use the block layer
      bio: convert bio_copy_kern to use bio_copy_user
      block: add blk_rq_aligned helper function
      sg: use blk_rq_aligned helper function
      block: make blk_rq_map_user take a NULL user-space buffer
      sg: set dxferp to NULL for READ with the older SG interface
      sg: rename sg_cmd_done sg_rq_end_io
      sg: remove SG_ALLOW_DIO_CODE define
      sg: remove b_malloc_len in sg_scatter_hold struct
      sg: remove __sg_start_req
      sg: incorporate sg_build_direct into sg_start_req
      sg: remove sg_write_xfer
      sg: remove sg_read_xfer
      sg: remove unnecessary blk_rq_unmap_user
      fix an example of scatterlists handling in DMA-API.txt

Fernando Luis Vázquez Cao (1):
      virtio_blk: use a wrapper function to access io context information of IO requests

Harvey Harrison (1):
      block: kmalloc args reversed, small function definition fixes

Hugh Dickins (1):
      block: adjust blkdev_issue_discard for swap

Jens Axboe (22):
      block: add bio_has_data() to detect whether a bio carries data or not
      block: use bio_has_data() to check for data carrying bio
      block: use bio_has_data() in the IO completion path
      highmem: use bio_has_data() in the bounce path
      block: raid fixups for removal of bi_hw_segments
      block: make bi_phys_segments an unsigned int instead of short
      block: use linux/uaccess.h in elevator.c instead of asm variant
      block: split softirq handling into blk-softirq.c
      block: make kblockd_schedule_work() take the queue as parameter
      block: add support for IO CPU affinity
      block: inherit CPU completion on bio->rq and rq->rq merges
      block: don't use bio_has_data() in the completion path
      Change default value of CONFIG_DEBUG_BLOCK_EXT_DEVT to 'n'
      block: update comment on end_request()
      block: unify request timeout handling
      block: add bio_kmalloc()
      block: add fault injection mechanism for faking request timeouts
      block: use rq complete marking in blk_abort_request()
      block: cleanup some of the integrity stuff in blkdev.h
      block: blk_cleanup_queue() should call blk_sync_queue()
      block: add queue flag for SSD/non-rotational devices
      libata: set queue SSD flag for SSD devices

Julia Lawall (1):
      drivers/block: Use DIV_ROUND_UP

Keith Wansbrough (1):
      floppy: support arbitrary first-sector numbers

Kiyoshi Ueda (3):
      block: add request update interface
      block: add request submission interface
      block: add a queue flag for request stacking support

Mike Anderson (2):
      block: Add interface to abort queued requests
      dm: Call blk_abort_queue on failed paths

Mikulas Patocka (2):
      block: drop virtual merging accounting
      drop vmerge accounting

OGAWA Hirofumi (1):
      Use WRITE_BARRIER in blkdev_issue_flush(), not (1<<BIO_RW_BARRIER)

Randy Dunlap (1):
      Add some block/ source files to the kernel-api docbook. Fix kernel-doc notation in them as needed. Fix changed function parameter names. Fix typos/spellos. In comments, change REQ_SPECIAL to REQ_TYPE_SPECIAL and REQ_BLOCK_PC to REQ_TYPE_BLOCK_PC.

Tejun Heo (32):
      klist: don't iterate over deleted entries
      driver-core: use klist for class device list and implement iterator
      block: fix partition info printouts
      block: don't grab block_class_lock unnecessarily
      block: use class_dev_iterator instead of class_for_each_device()
      block: allow deleting zero length partition
      block: update add_partition() error handling
      block: misc updates
      block: make variable and argument names more consistent
      block: don't depend on consecutive minor space
      block: fix disk->part[] dereferencing race
      block: fix diskstats access
      block: implement extended dev numbers
      block: adjust formatting for large minors and add ext_range sysfs attr
      sd/ide-disk: apply extended minors to sd and ide
      block: implement CONFIG_DEBUG_BLOCK_EXT_DEVT
      block: implement and use {disk|part}_to_dev()
      block: introduce partition 0
      block: move capacity from disk to part0
      block: move __dev from disk to part0
      block: unify sysfs size node handling
      block: move policy from disk to part0
      block: move holder_dir from disk to part0
      block: always set bdev->bd_part
      block: kill GENHD_FL_FAIL and use part0->make_it_fail
      block: move stats from disk to part0
      block: make partition array dynamic
      block: replace @ext_minors with GENHD_FL_EXT_DEVT
      block: allow disk to have extended device number
      block: don't test for partition size in bdget_disk() and blk_lookup_devt()
      init: DEBUG_BLOCK_EXT_DEVT requires explicit root= param
      block: fix duplicate headers for /proc/partitions

scameron@...rdog.cca.cpqcorp.net (1):
      cciss: Fix cciss SCSI rescan code to better notice device changes

xiphmont@...h.org (1):
      SG_IO block filter whitelist missing MMC SET READ AHEAD command

 Documentation/DMA-API.txt                |    2 +-
 Documentation/DocBook/kernel-api.tmpl    |    4 +
 Documentation/block/deadline-iosched.txt |   14 +-
 block/Makefile                           |    4 +-
 block/as-iosched.c                       |   12 +-
 block/blk-barrier.c                      |   72 +++-
 block/blk-core.c                         |  525 +++++++++--------
 block/blk-exec.c                         |    6 +-
 block/blk-integrity.c                    |    9 +-
 block/blk-map.c                          |   68 ++-
 block/blk-merge.c                        |  129 +----
 block/blk-settings.c                     |   37 +-
 block/blk-softirq.c                      |  175 ++++++
 block/blk-sysfs.c                        |   35 +-
 block/blk-tag.c                          |    8 +-
 block/blk-timeout.c                      |  238 ++++++++
 block/blk.h                              |   48 ++
 block/blktrace.c                         |   29 +-
 block/bsg.c                              |    6 +-
 block/cfq-iosched.c                      |   55 ++-
 block/cmd-filter.c                       |    9 +-
 block/compat_ioctl.c                     |    1 +
 block/deadline-iosched.c                 |   40 +-
 block/elevator.c                         |   36 +-
 block/genhd.c                            |  965 ++++++++++++++++++++----------
 block/ioctl.c                            |  124 ++++-
 block/scsi_ioctl.c                       |    8 +-
 drivers/ata/libata-eh.c                  |   13 +-
 drivers/ata/libata-scsi.c                |    4 +
 drivers/ata/libata.h                     |    2 +-
 drivers/base/base.h                      |    2 +-
 drivers/base/class.c                     |  136 ++++-
 drivers/base/core.c                      |    6 +-
 drivers/block/aoe/aoeblk.c               |    6 +-
 drivers/block/aoe/aoecmd.c               |   19 +-
 drivers/block/aoe/aoedev.c               |    2 +-
 drivers/block/cciss.c                    |    8 +-
 drivers/block/cciss_scsi.c               |  151 +++--
 drivers/block/cciss_scsi.h               |    4 +
 drivers/block/cpqarray.c                 |    2 +-
 drivers/block/floppy.c                   |   31 +-
 drivers/block/nbd.c                      |    4 +-
 drivers/block/pktcdvd.c                  |    2 +-
 drivers/block/ps3disk.c                  |   11 +-
 drivers/block/virtio_blk.c               |    4 +-
 drivers/block/xen-blkfront.c             |   76 ++-
 drivers/cdrom/cdrom.c                    |    2 +-
 drivers/char/random.c                    |    6 +-
 drivers/ide/ide-cd.c                     |    2 +-
 drivers/ide/ide-disk.c                   |   15 +-
 drivers/ide/ide-probe.c                  |    2 +-
 drivers/md/dm-ioctl.c                    |    6 +-
 drivers/md/dm-mpath.c                    |   15 +-
 drivers/md/dm-stripe.c                   |    4 +-
 drivers/md/dm.c                          |   40 +-
 drivers/md/linear.c                      |    8 +-
 drivers/md/md.c                          |   15 +-
 drivers/md/multipath.c                   |    8 +-
 drivers/md/raid0.c                       |    8 +-
 drivers/md/raid1.c                       |   13 +-
 drivers/md/raid10.c                      |   12 +-
 drivers/md/raid5.c                       |   75 ++-
 drivers/memstick/core/mspro_block.c      |    2 +-
 drivers/mmc/card/block.c                 |    2 +-
 drivers/mtd/ftl.c                        |   24 +
 drivers/mtd/mtd_blkdevs.c                |   16 +
 drivers/s390/block/dasd_proc.c           |    3 +-
 drivers/s390/block/dcssblk.c             |    4 +-
 drivers/scsi/aacraid/aachba.c            |    2 +-
 drivers/scsi/gdth.c                      |   60 ++-
 drivers/scsi/gdth.h                      |    2 +-
 drivers/scsi/gdth_proc.c                 |   66 --
 drivers/scsi/gdth_proc.h                 |    3 -
 drivers/scsi/ibmvscsi/ibmvscsi.c         |    2 +-
 drivers/scsi/ide-scsi.c                  |    2 +-
 drivers/scsi/ipr.c                       |    3 +-
 drivers/scsi/ips.c                       |    2 +-
 drivers/scsi/libiscsi.c                  |   17 +-
 drivers/scsi/libsas/sas_ata.c            |    2 +-
 drivers/scsi/libsas/sas_internal.h       |    2 +-
 drivers/scsi/libsas/sas_scsi_host.c      |   30 +-
 drivers/scsi/megaraid/megaraid_sas.c     |    6 +-
 drivers/scsi/ncr53c8xx.c                 |    4 +-
 drivers/scsi/qla1280.c                   |    4 +-
 drivers/scsi/qla4xxx/ql4_os.c            |    4 +-
 drivers/scsi/scsi.c                      |   92 +---
 drivers/scsi/scsi_error.c                |   90 +---
 drivers/scsi/scsi_lib.c                  |   17 +-
 drivers/scsi/scsi_priv.h                 |    7 +-
 drivers/scsi/scsi_sysfs.c                |    7 +-
 drivers/scsi/scsi_tgt_lib.c              |    2 +-
 drivers/scsi/scsi_transport_fc.c         |    6 +-
 drivers/scsi/sd.c                        |   95 ++-
 drivers/scsi/sg.c                        |  667 +++++----------------
 drivers/scsi/sr.c                        |    7 +-
 drivers/scsi/sym53c8xx_2/sym_glue.c      |    4 +-
 fs/bio-integrity.c                       |   31 +
 fs/bio.c                                 |  252 +++++----
 fs/block_dev.c                           |  181 ++++--
 fs/fat/fatent.c                          |   14 +
 fs/partitions/check.c                    |  268 +++++----
 fs/partitions/check.h                    |    4 +-
 include/linux/ata.h                      |    6 +
 include/linux/bio.h                      |   81 ++--
 include/linux/blkdev.h                   |  146 +++--
 include/linux/blktrace_api.h             |    6 +
 include/linux/device.h                   |   14 +-
 include/linux/elevator.h                 |    9 +-
 include/linux/fd.h                       |    8 +-
 include/linux/fs.h                       |    9 +-
 include/linux/genhd.h                    |  363 ++++++------
 include/linux/klist.h                    |    3 +-
 include/linux/major.h                    |    2 +
 include/linux/mtd/blktrans.h             |    2 +
 include/scsi/scsi_cmnd.h                 |    3 -
 include/scsi/scsi_host.h                 |    9 +-
 include/scsi/scsi_transport.h            |    3 +-
 init/do_mounts.c                         |    4 +
 lib/Kconfig.debug                        |   35 +-
 lib/klist.c                              |   96 +++-
 mm/bounce.c                              |    2 +-
 121 files changed, 3663 insertions(+), 2517 deletions(-)
 create mode 100644 block/blk-softirq.c
 create mode 100644 block/blk-timeout.c

-- 
Jens Axboe

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ