Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932451AbcJGSkk (ORCPT ); Fri, 7 Oct 2016 14:40:40 -0400 Received: from mx0b-00082601.pphosted.com ([67.231.153.30]:57227 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932239AbcJGSka (ORCPT ); Fri, 7 Oct 2016 14:40:30 -0400 To: Linus Torvalds CC: "linux-block@vger.kernel.org" , "linux-kernel@vger.kernel.org" From: Jens Axboe Subject: [GIT PULL] Block changes for 4.9-rc1 Message-ID: <26e64a8c-b8a5-4b45-eb8d-8ca81f14dd93@fb.com> Date: Fri, 7 Oct 2016 12:40:20 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [216.160.245.98] X-ClientProxiedBy: DM3PR10CA0032.namprd10.prod.outlook.com (10.164.12.42) To MWHPR15MB1198.namprd15.prod.outlook.com (10.175.2.140) X-MS-Office365-Filtering-Correlation-Id: 4e35679f-c623-4024-744d-08d3eee166e0 X-Microsoft-Exchange-Diagnostics: 1;MWHPR15MB1198;2:5b1bmqgbbJ5piM5oJ9ozvGN5ari8pRiwMMXv9RDuam9Rg7xsWLmCioNqQxKPC1uFzie/EPbrGQsbti63moDPcnVKquf2ksOLfx9Qj7z4QxQF8vE8wYAE/nKHsqQUG5yfTMaW99MiCi4dC3I7VJjqf4pP+ZfUJK8hGzoE3W7auaEY5uEA7h1mlhP2Xaw+mpcB;3:BCle86xJHWOTQIwiqv30o2SeSosVnf9NEbj4de3gF4uBzBAIp281JLhF5EahE04sljnnil+3gHShtatU4SSmVQZTQfvJ9O5tV8gxobU6gachVMbXBG00r5Bi2ve9s1hG;25:pXM8DPGJtXMi0jMHYUJN5EmMXpGKhzFNX9cll+TamkPYiQwRYiUhznUEq2SvIhFaqPwUiXTc9FFALhkEopHPhb90lQe/Pdb8plzYvOuxabeNqQkRgW6GBjjpLU8W6B4dFENP8LPbhcyTLDd3PhfgEVPyFHrU43MZQ/jIEGZGp1OmM5vK79Jc4+3df+YkQ7arcd9Kbem0gMNe+ngZT50fc76MSywNO6/Va4ceRw1lEUlRalPHNPMXBOCmfPQjvYy3AkesDaz6xRXTWHoJ7zi161lZGjgGh0wSfc9THaMeb5DKhh1Z51cnZyH6Gz3cOR0LkXK5iqxd+9TIV6GYN/DoJ6csUUW7uzLKchwXcog3WD69zGVvFX4cSGYcDnxBUOJ3ypK5ITW+Wcu92aon0sbjJJEpJs+RA3S6Yn7NJwwPHno= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:MWHPR15MB1198; X-Microsoft-Exchange-Diagnostics: 1;MWHPR15MB1198;31:dENsEhtz/FYaTVwE/en2DbWXL1N5Hm5Q2SA1bsBRMgGilPXhYfOl/JmxAjyLxXLPdLE8GhNRUIUWKhGRqrhFLsaJB2CB1tVZ3yYjxU3cWM9yCaKPcB1om9pjF+2+LPRpPILgcQWXm6puUlaAamDfScSaRwW/uFFg8eJYYHekczjyQmGBECEhaw26XFjPq5Jx2LqT8y7jstzvEuYILBsondYDyFw7aIhUMr/cab5e66c=;20:P+RM0Z5CvfF7qwUDpyVwLMX4KkhkatZx3Ixpv3ZzrKMC+QSstmQzFpmPjFXFAFc2t1WaB9AOm6+18JGfKc3PcqNs4JLAdCZA3eAwEki9oC+SJJoBZkdqYodsqEWCyX12D5RBOCzprO5a3diFMXBJxOwrvQB1gLCkN54NsuTE6eU=;4:pcoJ07yXgMrjFAiasFrbpLeKUC+C46bmF+jL5tE/iVokiudCIsVJNWFTSjp1ikzEiY/YK0sCIsmjVTxXJZkg7gqNM0IKdil2I+glvbPbl4bCTVt7SsshX7oRswDjXOP+OHI1tqBTbKUsq/zD2x2HYiEdQubo5NrQHsLB39qTvqqxvgwoAPFp5k98X4ttAOphUXNBjOuAjIgOLbB0MP8Ose57SnVPSmc8oOkECyCFks+l49AN8sT5ctXRMipokKrMwwGORQKxcpMgLqaSU4nxvKSMGRsJ8jaig0tY/pvrchzgTsBPNbEkiXz+9OFJDCWy8MvO0DpwcwPeGPo/TOPW3WJH2Xy3235H0FrLtWZ/XD2hbueRwJ7DZy1iKYP08zF3z0oIqNPIHg0trOc6WnxMKQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001);SRVR:MWHPR15MB1198;BCL:0;PCL:0;RULEID:;SRVR:MWHPR15MB1198; X-Forefront-PRVS: 0088C92887 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6049001)(6009001)(7916002)(51234002)(189002)(199003)(47776003)(65826007)(65956001)(110136003)(105586002)(6666003)(50986999)(2870700001)(77096005)(586003)(31696002)(106356001)(65806001)(5660300001)(229853001)(33646002)(54356999)(64126003)(42186005)(3846002)(31686004)(4001350100001)(7736002)(7846002)(6116002)(50466002)(86362001)(305945005)(81156014)(4326007)(66066001)(83506001)(189998001)(36756003)(117156001)(6916009)(97736004)(2906002)(23676002)(8676002)(19580395003)(92566002)(101416001)(68736007)(81166006);DIR:OUT;SFP:1102;SCL:1;SRVR:MWHPR15MB1198;H:[192.168.1.153];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtNV0hQUjE1TUIxMTk4OzIzOkkzTXhub0xwcEc2RUR3MG9NSWY1L0QvVGpR?= =?utf-8?B?U1Y1ekYzd203T09YeWwrSDZndTMzTG1tZDZrc2VDWDJwVkZQZDZaQ2JOQnlr?= =?utf-8?B?OG1naW1pbElzMkplbFlMUmF6WE42UHJVNEQ4b0R4Y2IxczFiNzdqZzg1VGlQ?= =?utf-8?B?VUFQNm1IeGxNRkFBbysrZ1U4dXFtQ2RoN1RZcVpGQU9QUUxLTFFIQWQrT1BY?= =?utf-8?B?a1VadkpUVG9kelh0WGFyNzJ6SGtmWG5YNDZlaGIyUWRnY2U0ODZkbHI5T3F1?= =?utf-8?B?TW5uL2c0TXFvWEVyeDZQdFBVeGlNbXlTbmtWemV4dlEzbFZoV0pBRXBzZ2di?= =?utf-8?B?R1JEcUZQZWJlangyNXJoMm94elc0aW4ydTNQLzZBNmc2bWdTZFdzSEY3RFlv?= =?utf-8?B?MW5PU0pjTzdVcVNIcnF6bjlmUWRQN3dxSXpEdVFKMDVWUGlianFqOHRaT3Uy?= =?utf-8?B?STRnRUlsV3BoNlVyR3lQUWVKalVwZHdQZFJmMU1MSktjOXQwOW1pb3U0Y1dy?= =?utf-8?B?MWpFTEdtSUdsM0JXcFBRUEQvQjY2alROL1FQNlByTzJjdHhRamZER0tuaFRT?= =?utf-8?B?MlloZ0hCUUJrMVowZUF1QnVmd0hSdnVXelhnODd2YjVzOExVUFIxQUhMTitI?= =?utf-8?B?VnZBVmhUWG8wZmNOcHJCSlF4bWRza29OWExNSUVUdGg1UlVyVkg5RWhTSHV4?= =?utf-8?B?TnlHUGpZTExuOHdzUERoR09BeXJmdGoyeXRONXA2YTBsMkVWYnVrYjhEYkRv?= =?utf-8?B?SEVjT3BDMG1hOXJla3ZPQ2NGbVVNY2Z6U1M2eEpvLzMxTXRicnZnTFQxUU1i?= =?utf-8?B?T3VzSUFxYUl1c0o3dEFTandRUlNDRmgxRjY0YmxKeWQxdGsyUW1jYUpFS1Z5?= =?utf-8?B?T2xqbk9ZTWpBSFZaUzhUemNlT0JHczQxcGE3eEpCYTY1T1ljYW9IbjJ4bnZJ?= =?utf-8?B?RDFTdEhCNTQzU3hPeDFiek9yYkhMMjM5YjFlaktod3JqYTBDbVNQbi9aektC?= =?utf-8?B?ZklTSmxwaktxcFJWWG9BNWdQdHJNMlI4MDhoQnNGc2luVU9jSlVFdGJqQ09S?= =?utf-8?B?ZmV3cU03anZiSmhuU0FHWm9adWpBTFBpWURQb0FwYTNhWEtTYk81T0kxU1Jj?= =?utf-8?B?QklLK3lQa1VIM21Wd2FQTGpPaGsrNmUrRmQ1YTk4bTV3dlZMaXg0NHFDMURS?= =?utf-8?B?RUh5WEJ4MW9EanN2bFF0WnErdDNFekpzUUs1OGxhT3U5Z3drcWJ6WEtEaEtu?= =?utf-8?B?dU9SdXI3YkFJdGJnci9nbFdxM25XZTlIS1NrV0FPWXRXdFdnR1VRQ1dKcUFJ?= =?utf-8?B?NHpnV1Z1eHBiSXpra3RUbGg2dFV5NHNGazkzQ21Qb2ZTTW5PSnIxaDg0Vm9o?= =?utf-8?B?Ty9VbEN4M1czN1ZwdG5LNnhSWVB3aWlaNXJSWGtxZ0RKU1JwdkdMS2NZcEM1?= =?utf-8?B?QURsL2VkZ0xzUzExU2p6VzJES2FvY2h0a2x3SHdZNmNoQXR5aW9aYVd5ZTl3?= =?utf-8?B?MHFBRUk4REdHb2FXbkJCQnhXZTNyVVJHZ2tpeHZzVTllTnRuNmFKS1kxeGVO?= =?utf-8?B?WmFYaG1ZUTNDWHRIN3Q1TVNpYkVabGhHR1lSM3pFU1hhUWN2UWIxZDFXRzhC?= =?utf-8?B?WXZoU1R5V3ZlT1MzL0tlQUhQaUg5R0RZdW1jcFZib283NUwzYUtFNzg4VWRP?= =?utf-8?B?bXpkQ0lVbitseWMyVHpDNEJvenVjMDZabWNzcHgyM0VrYUVGa1poVVhzYWZn?= =?utf-8?B?VTBUREZja05tOElrZ2JlQT09?= X-Microsoft-Exchange-Diagnostics: 1;MWHPR15MB1198;6:4biD9me26CIFC2Lj5KWwF+AOVA6c/Jq1dWVx7pvraVIwJDSPXXLUjWsn5aypLU3oFx1C4kS2sldBxiFYU+vmNzq78KoVhWX2XmourKU28119MKycF+Jg49QCPGsbq0pUVfzaI5inRzs+DYDvUO8YEX7TMS8buSmS6+Bvjwbgp3mEwX1sQ440I0K5JiYBBx7S/dcwnVGNl3YF85d/cd6o0/3s+PDkeFOeh32Rb31EYwbRjwhOy9lDIPOOritwj+GpIxL3JAM6q5NnxKFjoh4P7gfmY45H7koDvuCisg99+5g=;5:30KSc2ZTRYB1ZtcWsz9HAR/Ub9Nuuesc5LmzD//N5ygCePOE/4JOIRRFoebhAKVolfrh9EQybFXChD43axU4RzG7t3ZV9/KFnREuMNiHtDOP7Df8jFt+D1gsuGHn8kxrO0lL+wGH3DEPqbvwzer4sA==;24:aBplG/xVBWxLRWLK2gpvDlW6J7Dke5mUv6t8HmTJlnw6tpdZG1MC2/v7hdO6IcP7xoK/iNttbNJpwvOzGjq5An0ehKsuu/Fkdb9YE0pTlsM=;7:CfL6BdhrcSy9IS2gIrChC0D+diddMORtPm9CBdkI8wm7DwQAsTLAEfDvDndYKhdKq5vz8AXfiHYhPyFZ2ARxxouCWOATnbjGEqN6lYW1e0IS4KsCtsUV4TZIpHR0IlpGzvKOTTtAdLKBtiVJ7p6R7sgv0Mkx4CNIi4lo1diLVS65x6p0zniCYay9K5qo2/vuvi/MFdm7BzW71/r28adrYFc+asRE6AM2VUlYhiJHof3OCUqN11kq6DEYInLDa+Lrcc6foDwHjlwbIinUHvqvPC2Ec1tsCtjjxnPTG9RIpHqgoVHKF1B226oeHp2XdLQY SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;MWHPR15MB1198;20:gqHV3Y4yP6y9UdgPe831+X/Q9vKr2Y/hOHWR/rytMbXMlr8au3GM+ZP1dmeoz03PtzcXr51zmpwOdtOi7hXyu+U41eCRQaFAJFu++FR7TezqfJKpFSlBc7c85Rix+T8Btm2YflXoBsYkb3bq5UeNM486vDraU5jrkyCISEcgLfE= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Oct 2016 18:40:24.6516 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR15MB1198 X-OriginatorOrg: fb.com X-Proofpoint-Spam-Reason: safe X-FB-Internal: Safe X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2016-10-07_09:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 7544 Lines: 204 Hi Linus, Finally back from a bunch of travel and out-of-office. This is the main pull request for block layer changes in 4.9. As mentioned at the last merge window, I've changed things up and now do just one branch for core block layer changes, and driver changes. This avoids dependencies between the two branches. Outside of this main pull request, there are two topical branches coming as well. This pull request contains: - A set of fixes, and a conversion to blk-mq, of nbd. From Josef. - Set of fixes and updates for lightnvm from Matias, Simon, and Arnd. Followup dependency fix from Geert. - General fixes from Bart, Baoyou, Guoqing, and Linus W. - CFQ async write starvation fix from Glauber. - Add supprot for delayed kick of the requeue list, from Mike. - Pull out the scalable bitmap code from blk-mq-tag.c and make it generally available under the name of sbitmap. Only blk-mq-tag uses it for now, but the blk-mq scheduling bits will use it as well. From Omar. - bdev thaw error progagation from Pierre. - Improve the blk polling statistics, and allow the user to clear them. From Stephen. - Set of minor cleanups from Christoph in block/blk-mq. - Set of cleanups and optimizations from me for block/blk-mq. - Various nvme/nvmet/nvmeof fixes from the various folks. Please pull! git://git.kernel.dk/linux-block.git for-4.9/block ---------------------------------------------------------------- Alexander Solganik (1): nvmet: Make dsm number of ranges zero based Andy Lutomirski (2): nvme/scsi: Remove power management support nvme: Pass pointers, not dma addresses, to nvme_get/set_features() Arnd Bergmann (1): lightnvm: propagate device_add() error code Baoyou Xie (1): mtip32xx: mark symbols static where possible Bart Van Assche (4): block: Document that bio_op() uses the data type of bio.bi_opf block, dm-crypt, btrfs: Introduce bio_flags() block: Improve bio_set_op_attrs() robustness blkcg: Annotate blkg_hint correctly Chaitanya Kulkarni (1): admin-cmd: Added smart-log command support. Christoph Hellwig (5): block_dev: remove DAX leftovers block: remove bio_destructor_t bio.h: remove a very outdated comment block: remove IOPRIO_BITS blk-mq: remove non-blocking pass in blk_mq_map_request Colin Ian King (1): sbitmap: initialize weight to zero Geert Uytterhoeven (1): lightnvm: NVM should depend on HAS_DMA Glauber Costa (1): cfq: fix starvation of asynchronous writes Guoqing Jiang (1): block: export bio_free_pages to other modules James Smart (3): nvme-fabrics: rework nvmf_get_address() for variable options nvme-fabrics: revise host transport option descriptions nvme-fabrics: Add host_traddr options field to host infrastructure Jens Axboe (8): workqueue: add cancel_work() block: add kblockd_schedule_work_on() blk-mq: turn hctx->run_work into a regular work struct blk-mq: improve layout of blk_mq_hw_ctx blk-mq: prefetch request in blk_mq_tag_to_rq() blk-mq: account higher order dispatch blk-mq: get rid of manual run of queue with __blk_mq_run_hw_queue() blk-mq: add flag for drivers wanting blocking ->queue_rq() Josef Bacik (5): nbd: convert to blkmq nbd: don't shutdown sock with irq's disabled nbd: use flags instead of bool nbd: allow block mq to deal with timeouts nbd: use BLK_MQ_F_BLOCKING Linus Walleij (2): block: remove blk_mq_alloc_single_hw_queue() prototype block: remove remnant refs to hardsect Matias Bjørling (4): nvme: refactor namespaces to support non-gendisk devices null_blk: refactor to support non-gendisk devices blk-mq: register device instead of disk lightnvm: control life of nvm_dev in driver Mike Snitzer (1): blk-mq: introduce blk_mq_delay_kick_requeue_list() Omar Sandoval (7): blk-mq: abstract tag allocation out into sbitmap library sbitmap: allocate wait queues on a specific node sbitmap: push per-cpu last_tag into sbitmap_queue sbitmap: push alloc policy into sbitmap_queue sbitmap: randomize initial alloc_hint values sbitmap: re-initialize allocation hints after resize sbitmap: don't update the allocation hint on clear after resize Pierre Morel (1): fs/block_dev.c: return the right error in thaw_bdev() Sagi Grimberg (1): nvmet: Use direct IO for writes Simon A. F. Lund (1): lightnvm: expose device geometry through sysfs Stephen Bates (2): block: add poll_considered statistic block: enable zeroing of io_poll statistics Documentation/block/biodoc.txt | 4 +- MAINTAINERS | 1 + block/Kconfig | 1 + block/bio.c | 5 +- block/blk-core.c | 16 +- block/blk-mq-sysfs.c | 40 +-- block/blk-mq-tag.c | 503 +++++++++----------------------------- block/blk-mq-tag.h | 42 +--- block/blk-mq.c | 183 +++++--------- block/blk-mq.h | 11 - block/blk-sysfs.c | 4 +- block/cfq-iosched.c | 13 +- drivers/block/mtip32xx/mtip32xx.c | 2 +- drivers/block/nbd.c | 411 ++++++++++++------------------- drivers/block/null_blk.c | 128 ++++++---- drivers/lightnvm/Kconfig | 2 +- drivers/lightnvm/Makefile | 2 +- drivers/lightnvm/core.c | 55 ++--- drivers/lightnvm/lightnvm.h | 35 +++ drivers/lightnvm/sysfs.c | 198 +++++++++++++++ drivers/md/bcache/btree.c | 6 +- drivers/md/bcache/debug.c | 6 +- drivers/md/bcache/movinggc.c | 5 +- drivers/md/bcache/request.c | 9 +- drivers/md/bcache/writeback.c | 5 +- drivers/md/dm-crypt.c | 2 +- drivers/md/dm-log-writes.c | 6 +- drivers/md/dm-rq.c | 2 +- drivers/md/raid1.c | 8 +- drivers/nvme/host/core.c | 155 +++++++----- drivers/nvme/host/fabrics.c | 25 +- drivers/nvme/host/fabrics.h | 11 +- drivers/nvme/host/lightnvm.c | 33 ++- drivers/nvme/host/nvme.h | 30 ++- drivers/nvme/host/scsi.c | 80 +----- drivers/nvme/target/admin-cmd.c | 88 +++++++ drivers/nvme/target/io-cmd.c | 3 +- fs/befs/linuxvfs.c | 2 +- fs/block_dev.c | 18 +- fs/btrfs/inode.c | 5 +- include/linux/bio.h | 3 +- include/linux/blk-cgroup.h | 2 +- include/linux/blk-mq.h | 28 +-- include/linux/blk_types.h | 21 +- include/linux/blkdev.h | 4 +- include/linux/ioprio.h | 1 - include/linux/lightnvm.h | 18 +- include/linux/sbitmap.h | 373 ++++++++++++++++++++++++++++ include/linux/workqueue.h | 1 + kernel/workqueue.c | 40 +-- lib/Kconfig | 3 + lib/Makefile | 2 + lib/sbitmap.c | 347 ++++++++++++++++++++++++++ 53 files changed, 1828 insertions(+), 1170 deletions(-) create mode 100644 drivers/lightnvm/lightnvm.h create mode 100644 drivers/lightnvm/sysfs.c create mode 100644 include/linux/sbitmap.h create mode 100644 lib/sbitmap.c -- Jens Axboe