mirror of
https://github.com/torvalds/linux.git
synced 2026-07-29 18:51:21 +02:00
block-6.11-20240809
-----BEGIN PGP SIGNATURE----- iQJEBAABCAAuFiEEwPw5LcreJtl1+l5K99NY+ylx4KYFAma2ENAQHGF4Ym9lQGtl cm5lbC5kawAKCRD301j7KXHgpqRcD/0R23DotD3qZICoFP9RBDNsYPamb5lEf/zR n8Dx/sYKqwiVchAYtOVUUHCm/pIw0eh8LDemWS/xPxkilc65zhYehHDjWhwZktq0 tPdQK2DTg+oAiKxLFyZhzS6BniNlyAStvRhVIIiGCaYjmBXd/HBclBZU/bcmaCZF UttbHqDKtUAqiQAX7UVN1yFhGmhGbldQJUYKc6qMjdz0JEhA8IJjgHsPh7ybObdK mwHV4Xr8YoNCMfR9A8MhIzUl67jaVFVd4bqJT9AU/ahvxwxaRMFD9ScCyH/IWvmY 0W0VD/JeJAeHkr/mRwK8xPgBEr7RSUGH03FxNE4qPZJ9BuZJn0srYv4984BVIC+G 0Zrg1j56tp1/OLJ9BTtNnXZ2BTwsZuo0ew4qO/+Hd7Q5wydTr3dAxfwSenIbtO4j mMK1lG2vk0TXym9cXS7dZoBjSiD1QdE9r8SJnJut3DiISN1HqRP2jhgD7E5d387O zKMVGohojAutxA9FktGDlTJFSC/1dSXgN4osA7OcsDuwp5pdr/Z/tpaNQv9RzwlG l1eb4R0pNviA83WJSoyWxiGsEIAvyhv1hVYSdsgtxztTxz4O2JocoNabu8pphkL1 jh7BNUfi9/V1u7nD64psz62EcKtWKze/KWzgBJouAOFrUkxKsC1TVLhVRu8S3DEw BIqlhzlZvw== =bo4K -----END PGP SIGNATURE----- Merge tag 'block-6.11-20240809' of git://git.kernel.dk/linux Pull block fixes from Jens Axboe: "Just a set of cleanups for blk-throttle and nvme structures" * tag 'block-6.11-20240809' of git://git.kernel.dk/linux: nvme: reorganize nvme_ns_head fields nvme: change data type of lba_shift nvme: remove a field from nvme_ns_head nvme: remove unused parameter blk-throttle: remove more latency dead-code
This commit is contained in:
commit
b7768c4881
|
|
@ -31,14 +31,6 @@ static struct workqueue_struct *kthrotld_workqueue;
|
|||
|
||||
#define rb_entry_tg(node) rb_entry((node), struct throtl_grp, rb_node)
|
||||
|
||||
/* We measure latency for request size from <= 4k to >= 1M */
|
||||
#define LATENCY_BUCKET_SIZE 9
|
||||
|
||||
struct latency_bucket {
|
||||
unsigned long total_latency; /* ns / 1024 */
|
||||
int samples;
|
||||
};
|
||||
|
||||
struct throtl_data
|
||||
{
|
||||
/* service tree for active throtl groups */
|
||||
|
|
@ -116,9 +108,6 @@ static unsigned int tg_iops_limit(struct throtl_grp *tg, int rw)
|
|||
return tg->iops[rw];
|
||||
}
|
||||
|
||||
#define request_bucket_index(sectors) \
|
||||
clamp_t(int, order_base_2(sectors) - 3, 0, LATENCY_BUCKET_SIZE - 1)
|
||||
|
||||
/**
|
||||
* throtl_log - log debug message via blktrace
|
||||
* @sq: the service_queue being reported
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@ struct nvme_ns_info {
|
|||
struct nvme_ns_ids ids;
|
||||
u32 nsid;
|
||||
__le32 anagrpid;
|
||||
u8 pi_offset;
|
||||
bool is_shared;
|
||||
bool is_readonly;
|
||||
bool is_ready;
|
||||
|
|
@ -1757,8 +1758,8 @@ int nvme_getgeo(struct block_device *bdev, struct hd_geometry *geo)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static bool nvme_init_integrity(struct gendisk *disk, struct nvme_ns_head *head,
|
||||
struct queue_limits *lim)
|
||||
static bool nvme_init_integrity(struct nvme_ns_head *head,
|
||||
struct queue_limits *lim, struct nvme_ns_info *info)
|
||||
{
|
||||
struct blk_integrity *bi = &lim->integrity;
|
||||
|
||||
|
|
@ -1816,7 +1817,7 @@ static bool nvme_init_integrity(struct gendisk *disk, struct nvme_ns_head *head,
|
|||
}
|
||||
|
||||
bi->tuple_size = head->ms;
|
||||
bi->pi_offset = head->pi_offset;
|
||||
bi->pi_offset = info->pi_offset;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -1902,12 +1903,11 @@ static void nvme_configure_pi_elbas(struct nvme_ns_head *head,
|
|||
|
||||
static void nvme_configure_metadata(struct nvme_ctrl *ctrl,
|
||||
struct nvme_ns_head *head, struct nvme_id_ns *id,
|
||||
struct nvme_id_ns_nvm *nvm)
|
||||
struct nvme_id_ns_nvm *nvm, struct nvme_ns_info *info)
|
||||
{
|
||||
head->features &= ~(NVME_NS_METADATA_SUPPORTED | NVME_NS_EXT_LBAS);
|
||||
head->pi_type = 0;
|
||||
head->pi_size = 0;
|
||||
head->pi_offset = 0;
|
||||
head->ms = le16_to_cpu(id->lbaf[nvme_lbaf_index(id->flbas)].ms);
|
||||
if (!head->ms || !(ctrl->ops->flags & NVME_F_METADATA_SUPPORTED))
|
||||
return;
|
||||
|
|
@ -1922,7 +1922,7 @@ static void nvme_configure_metadata(struct nvme_ctrl *ctrl,
|
|||
if (head->pi_size && head->ms >= head->pi_size)
|
||||
head->pi_type = id->dps & NVME_NS_DPS_PI_MASK;
|
||||
if (!(id->dps & NVME_NS_DPS_PI_FIRST))
|
||||
head->pi_offset = head->ms - head->pi_size;
|
||||
info->pi_offset = head->ms - head->pi_size;
|
||||
|
||||
if (ctrl->ops->flags & NVME_F_FABRICS) {
|
||||
/*
|
||||
|
|
@ -2156,7 +2156,7 @@ static int nvme_update_ns_info_block(struct nvme_ns *ns,
|
|||
|
||||
lim = queue_limits_start_update(ns->disk->queue);
|
||||
nvme_set_ctrl_limits(ns->ctrl, &lim);
|
||||
nvme_configure_metadata(ns->ctrl, ns->head, id, nvm);
|
||||
nvme_configure_metadata(ns->ctrl, ns->head, id, nvm, info);
|
||||
nvme_set_chunk_sectors(ns, id, &lim);
|
||||
if (!nvme_update_disk_info(ns, id, &lim))
|
||||
capacity = 0;
|
||||
|
|
@ -2176,7 +2176,7 @@ static int nvme_update_ns_info_block(struct nvme_ns *ns,
|
|||
* I/O to namespaces with metadata except when the namespace supports
|
||||
* PI, as it can strip/insert in that case.
|
||||
*/
|
||||
if (!nvme_init_integrity(ns->disk, ns->head, &lim))
|
||||
if (!nvme_init_integrity(ns->head, &lim, info))
|
||||
capacity = 0;
|
||||
|
||||
ret = queue_limits_commit_update(ns->disk->queue, &lim);
|
||||
|
|
@ -2280,7 +2280,7 @@ static int nvme_update_ns_info(struct nvme_ns *ns, struct nvme_ns_info *info)
|
|||
if (unsupported)
|
||||
ns->head->disk->flags |= GENHD_FL_HIDDEN;
|
||||
else
|
||||
nvme_init_integrity(ns->head->disk, ns->head, &lim);
|
||||
nvme_init_integrity(ns->head, &lim, info);
|
||||
ret = queue_limits_commit_update(ns->head->disk->queue, &lim);
|
||||
|
||||
set_capacity_and_notify(ns->head->disk, get_capacity(ns->disk));
|
||||
|
|
|
|||
|
|
@ -462,20 +462,19 @@ struct nvme_ns_head {
|
|||
struct srcu_struct srcu;
|
||||
struct nvme_subsystem *subsys;
|
||||
struct nvme_ns_ids ids;
|
||||
u8 lba_shift;
|
||||
u16 ms;
|
||||
u16 pi_size;
|
||||
u8 pi_type;
|
||||
u8 guard_type;
|
||||
struct list_head entry;
|
||||
struct kref ref;
|
||||
bool shared;
|
||||
bool passthru_err_log_enabled;
|
||||
int instance;
|
||||
struct nvme_effects_log *effects;
|
||||
u64 nuse;
|
||||
unsigned ns_id;
|
||||
int lba_shift;
|
||||
u16 ms;
|
||||
u16 pi_size;
|
||||
u8 pi_type;
|
||||
u8 pi_offset;
|
||||
u8 guard_type;
|
||||
int instance;
|
||||
#ifdef CONFIG_BLK_DEV_ZONED
|
||||
u64 zsze;
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user