Merge branch 'for-4.12/block' of git://git.kernel.dk/linux-block
Pull block layer updates from Jens Axboe: - Add BFQ IO scheduler under the new blk-mq scheduling framework. BFQ was initially a fork of CFQ, but subsequently changed to implement fairness based on B-WF2Q+, a modified variant of WF2Q. BFQ is meant to be used on desktop type single drives, providing good fairness. From Paolo. - Add Kyber IO scheduler. This is a full multiqueue aware scheduler, using a scalable token based algorithm that throttles IO based on live completion IO stats, similary to blk-wbt. From Omar. - A series from Jan, moving users to separately allocated backing devices. This continues the work of separating backing device life times, solving various problems with hot removal. - A series of updates for lightnvm, mostly from Javier. Includes a 'pblk' target that exposes an open channel SSD as a physical block device. - A series of fixes and improvements for nbd from Josef. - A series from Omar, removing queue sharing between devices on mostly legacy drivers. This helps us clean up other bits, if we know that a queue only has a single device backing. This has been overdue for more than a decade. - Fixes for the blk-stats, and improvements to unify the stats and user windows. This both improves blk-wbt, and enables other users to register a need to receive IO stats for a device. From Omar. - blk-throttle improvements from Shaohua. This provides a scalable framework for implementing scalable priotization - particularly for blk-mq, but applicable to any type of block device. The interface is marked experimental for now. - Bucketized IO stats for IO polling from Stephen Bates. This improves efficiency of polled workloads in the presence of mixed block size IO. - A few fixes for opal, from Scott. - A few pulls for NVMe, including a lot of fixes for NVMe-over-fabrics. From a variety of folks, mostly Sagi and James Smart. - A series from Bart, improving our exposed info and capabilities from the blk-mq debugfs support. - A series from Christoph, cleaning up how handle WRITE_ZEROES. - A series from Christoph, cleaning up the block layer handling of how we track errors in a request. On top of being a nice cleanup, it also shrinks the size of struct request a bit. - Removal of mg_disk and hd (sorry Linus) by Christoph. The former was never used by platforms, and the latter has outlived it's usefulness. - Various little bug fixes and cleanups from a wide variety of folks. * 'for-4.12/block' of git://git.kernel.dk/linux-block: (329 commits) block: hide badblocks attribute by default blk-mq: unify hctx delay_work and run_work block: add kblock_mod_delayed_work_on() blk-mq: unify hctx delayed_run_work and run_work nbd: fix use after free on module unload MAINTAINERS: bfq: Add Paolo as maintainer for the BFQ I/O scheduler blk-mq-sched: alloate reserved tags out of normal pool mtip32xx: use runtime tag to initialize command header scsi: Implement blk_mq_ops.show_rq() blk-mq: Add blk_mq_ops.show_rq() blk-mq: Show operation, cmd_flags and rq_flags names blk-mq: Make blk_flags_show() callers append a newline character blk-mq: Move the "state" debugfs attribute one level down blk-mq: Unregister debugfs attributes earlier blk-mq: Only unregister hctxs for which registration succeeded blk-mq-debugfs: Rename functions for registering and unregistering the mq directory blk-mq: Let blk_mq_debugfs_register() look up the queue name blk-mq: Register <dev>/queue/mq after having registered <dev>/queue ide-pm: always pass 0 error to ide_complete_rq in ide_do_devset ide-pm: always pass 0 error to __blk_end_request_all ..
This commit is contained in:
@@ -85,6 +85,10 @@ struct nvm_ioctl_create_conf {
|
||||
};
|
||||
};
|
||||
|
||||
enum {
|
||||
NVM_TARGET_FACTORY = 1 << 0, /* Init target in factory mode */
|
||||
};
|
||||
|
||||
struct nvm_ioctl_create {
|
||||
char dev[DISK_NAME_LEN]; /* open-channel SSD device */
|
||||
char tgttype[NVM_TTYPE_NAME_MAX]; /* target type name */
|
||||
|
98
include/uapi/linux/nbd-netlink.h
Normal file
98
include/uapi/linux/nbd-netlink.h
Normal file
@@ -0,0 +1,98 @@
|
||||
/*
|
||||
* Copyright (C) 2017 Facebook. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public
|
||||
* License v2 as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* License along with this program; if not, write to the
|
||||
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
* Boston, MA 021110-1307, USA.
|
||||
*/
|
||||
#ifndef _UAPILINUX_NBD_NETLINK_H
|
||||
#define _UAPILINUX_NBD_NETLINK_H
|
||||
|
||||
#define NBD_GENL_FAMILY_NAME "nbd"
|
||||
#define NBD_GENL_VERSION 0x1
|
||||
#define NBD_GENL_MCAST_GROUP_NAME "nbd_mc_group"
|
||||
|
||||
/* Configuration policy attributes, used for CONNECT */
|
||||
enum {
|
||||
NBD_ATTR_UNSPEC,
|
||||
NBD_ATTR_INDEX,
|
||||
NBD_ATTR_SIZE_BYTES,
|
||||
NBD_ATTR_BLOCK_SIZE_BYTES,
|
||||
NBD_ATTR_TIMEOUT,
|
||||
NBD_ATTR_SERVER_FLAGS,
|
||||
NBD_ATTR_CLIENT_FLAGS,
|
||||
NBD_ATTR_SOCKETS,
|
||||
NBD_ATTR_DEAD_CONN_TIMEOUT,
|
||||
NBD_ATTR_DEVICE_LIST,
|
||||
__NBD_ATTR_MAX,
|
||||
};
|
||||
#define NBD_ATTR_MAX (__NBD_ATTR_MAX - 1)
|
||||
|
||||
/*
|
||||
* This is the format for multiple devices with NBD_ATTR_DEVICE_LIST
|
||||
*
|
||||
* [NBD_ATTR_DEVICE_LIST]
|
||||
* [NBD_DEVICE_ITEM]
|
||||
* [NBD_DEVICE_INDEX]
|
||||
* [NBD_DEVICE_CONNECTED]
|
||||
*/
|
||||
enum {
|
||||
NBD_DEVICE_ITEM_UNSPEC,
|
||||
NBD_DEVICE_ITEM,
|
||||
__NBD_DEVICE_ITEM_MAX,
|
||||
};
|
||||
#define NBD_DEVICE_ITEM_MAX (__NBD_DEVICE_ITEM_MAX - 1)
|
||||
|
||||
enum {
|
||||
NBD_DEVICE_UNSPEC,
|
||||
NBD_DEVICE_INDEX,
|
||||
NBD_DEVICE_CONNECTED,
|
||||
__NBD_DEVICE_MAX,
|
||||
};
|
||||
#define NBD_DEVICE_ATTR_MAX (__NBD_DEVICE_MAX - 1)
|
||||
|
||||
/*
|
||||
* This is the format for multiple sockets with NBD_ATTR_SOCKETS
|
||||
*
|
||||
* [NBD_ATTR_SOCKETS]
|
||||
* [NBD_SOCK_ITEM]
|
||||
* [NBD_SOCK_FD]
|
||||
* [NBD_SOCK_ITEM]
|
||||
* [NBD_SOCK_FD]
|
||||
*/
|
||||
enum {
|
||||
NBD_SOCK_ITEM_UNSPEC,
|
||||
NBD_SOCK_ITEM,
|
||||
__NBD_SOCK_ITEM_MAX,
|
||||
};
|
||||
#define NBD_SOCK_ITEM_MAX (__NBD_SOCK_ITEM_MAX - 1)
|
||||
|
||||
enum {
|
||||
NBD_SOCK_UNSPEC,
|
||||
NBD_SOCK_FD,
|
||||
__NBD_SOCK_MAX,
|
||||
};
|
||||
#define NBD_SOCK_MAX (__NBD_SOCK_MAX - 1)
|
||||
|
||||
enum {
|
||||
NBD_CMD_UNSPEC,
|
||||
NBD_CMD_CONNECT,
|
||||
NBD_CMD_DISCONNECT,
|
||||
NBD_CMD_RECONFIGURE,
|
||||
NBD_CMD_LINK_DEAD,
|
||||
NBD_CMD_STATUS,
|
||||
__NBD_CMD_MAX,
|
||||
};
|
||||
#define NBD_CMD_MAX (__NBD_CMD_MAX - 1)
|
||||
|
||||
#endif /* _UAPILINUX_NBD_NETLINK_H */
|
@@ -37,7 +37,7 @@ enum {
|
||||
NBD_CMD_TRIM = 4
|
||||
};
|
||||
|
||||
/* values for flags field */
|
||||
/* values for flags field, these are server interaction specific. */
|
||||
#define NBD_FLAG_HAS_FLAGS (1 << 0) /* nbd-server supports flags */
|
||||
#define NBD_FLAG_READ_ONLY (1 << 1) /* device is read-only */
|
||||
#define NBD_FLAG_SEND_FLUSH (1 << 2) /* can flush writeback cache */
|
||||
@@ -45,6 +45,10 @@ enum {
|
||||
#define NBD_FLAG_SEND_TRIM (1 << 5) /* send trim/discard */
|
||||
#define NBD_FLAG_CAN_MULTI_CONN (1 << 8) /* Server supports multiple connections per export. */
|
||||
|
||||
/* These are client behavior specific flags. */
|
||||
#define NBD_CFLAG_DESTROY_ON_DISCONNECT (1 << 0) /* delete the nbd device on
|
||||
disconnect. */
|
||||
|
||||
/* userspace doesn't need the nbd_device structure */
|
||||
|
||||
/* These are sent over the network in the request/reply magic fields */
|
||||
|
Reference in New Issue
Block a user