/linux-6.14.4/drivers/md/dm-vdo/ |
D | logical-zone.c | 41 struct logical_zones *zones = context; in get_thread_id_for_zone() local 43 return zones->zones[zone_number].thread_id; in get_thread_id_for_zone() 48 * @zones: The logical_zones to which this zone belongs. 51 static int initialize_zone(struct logical_zones *zones, zone_count_t zone_number) in initialize_zone() argument 54 struct vdo *vdo = zones->vdo; in initialize_zone() 55 struct logical_zone *zone = &zones->zones[zone_number]; in initialize_zone() 63 zone->next = &zones->zones[zone_number + 1]; in initialize_zone() 67 zone->zones = zones; in initialize_zone() 70 zone->block_map_zone = &vdo->block_map->zones[zone_number]; in initialize_zone() 75 zone->allocation_zone = &vdo->physical_zones->zones[allocation_zone_number]; in initialize_zone() [all …]
|
D | dedupe.c | 296 /* The number of zones */ 298 /* The hash zones themselves */ 299 struct hash_zone zones[]; member 2038 static void close_index(struct hash_zones *zones) in close_index() argument 2039 __must_hold(&zones->lock) in close_index() 2047 zones->index_state = IS_CHANGING; in close_index() 2049 spin_unlock(&zones->lock); in close_index() 2050 result = uds_close_index(zones->index_session); in close_index() 2054 spin_lock(&zones->lock); in close_index() 2055 zones->index_state = IS_CLOSED; in close_index() [all …]
|
D | dedupe.h | 83 void vdo_free_hash_zones(struct hash_zones *zones); 85 void vdo_drain_hash_zones(struct hash_zones *zones, struct vdo_completion *parent); 87 void vdo_get_dedupe_statistics(struct hash_zones *zones, struct vdo_statistics *stats); 89 struct hash_zone * __must_check vdo_select_hash_zone(struct hash_zones *zones, 92 void vdo_dump_hash_zones(struct hash_zones *zones); 94 const char *vdo_get_dedupe_index_state_name(struct hash_zones *zones); 96 u64 vdo_get_dedupe_index_timeout_count(struct hash_zones *zones); 98 int vdo_message_dedupe_index(struct hash_zones *zones, const char *name); 100 void vdo_set_dedupe_state_normal(struct hash_zones *zones); 102 void vdo_start_dedupe_index(struct hash_zones *zones, bool create_flag); [all …]
|
D | logical-zone.h | 21 struct logical_zones *zones; member 56 /* The vdo whose zones these are */ 60 /* The number of zones */ 62 /* The logical zones themselves */ 63 struct logical_zone zones[]; member 69 void vdo_free_logical_zones(struct logical_zones *zones); 71 void vdo_drain_logical_zones(struct logical_zones *zones, 75 void vdo_resume_logical_zones(struct logical_zones *zones,
|
D | physical-zone.c | 321 * @zones: The physical_zones to which the zone being initialized belongs 325 static int initialize_zone(struct vdo *vdo, struct physical_zones *zones) in initialize_zone() argument 328 zone_count_t zone_number = zones->zone_count; in initialize_zone() 329 struct physical_zone *zone = &zones->zones[zone_number]; in initialize_zone() 344 zone->next = &zones->zones[(zone_number + 1) % vdo->thread_config.physical_zone_count]; in initialize_zone() 355 * vdo_make_physical_zones() - Make the physical zones for a vdo. 357 * @zones_ptr: A pointer to hold the zones 363 struct physical_zones *zones; in vdo_make_physical_zones() local 371 struct physical_zone, __func__, &zones); in vdo_make_physical_zones() 375 for (zones->zone_count = 0; zones->zone_count < zone_count; zones->zone_count++) { in vdo_make_physical_zones() [all …]
|
D | action-manager.c | 18 * struct action - An action to be performed in each of a set of zones. 45 * @zones: The number of zones in which an action is to be applied. 58 zone_count_t zones; member 92 * @zones: The number of zones to which actions will be applied. 103 int vdo_make_action_manager(zone_count_t zones, in vdo_make_action_manager() argument 116 .zones = zones, in vdo_make_action_manager() 181 "%s() called on acting zones's thread", __func__); in apply_to_zone() 184 if (manager->acting_zone == manager->zones) { in apply_to_zone() 276 * vdo_schedule_action() - Schedule an action to be applied to all zones. 282 * applied to all zones; may be NULL. [all …]
|
D | action-manager.h | 24 * an optional method to be run on the initiator thread before applying the action to all zones 26 * an optional method to be applied to each of the zones 29 * applied to all zones 37 * A function which is to be applied asynchronously to a set of zones. 79 int __must_check vdo_make_action_manager(zone_count_t zones,
|
/linux-6.14.4/Documentation/admin-guide/device-mapper/ |
D | dm-zoned.rst | 25 host-managed disk with 256 MB zones, dm-zoned memory usage per disk 26 instance is at most 4.5 MB and as little as 5 zones will be used 38 write accesses to the sequential zones of a zoned block device. 39 Conventional zones are used for caching as well as for storing internal 42 in zones with the same size as the zoned block device. These zones will be 43 placed in front of the zones from the zoned block device and will be handled 44 just like conventional zones. 46 The zones of the device(s) are separated into 2 types: 48 1) Metadata zones: these are conventional zones used to store metadata. 49 Metadata zones are not reported as usable capacity to the user. [all …]
|
/linux-6.14.4/Documentation/filesystems/ |
D | zonefs.rst | 14 write zones of the device must be written sequentially starting from the end 34 space that is divided into zones. A zone is a group of consecutive LBAs and all 35 zones are contiguous (there are no LBA gaps). Zones may have different types. 37 * Conventional zones: there are no access constraints to LBAs belonging to 38 conventional zones. Any read or write access can be executed, similarly to a 40 * Sequential zones: these zones accept random reads but must be written 44 cannot be overwritten. Sequential zones must first be erased using a special 60 Zonefs exposes the zones of a zoned block device as files. The files 61 representing zones are grouped by zone type, which are themselves represented 85 Files representing zones of the same type are grouped together under the same [all …]
|
/linux-6.14.4/drivers/net/ethernet/mellanox/mlx4/ |
D | alloc.c | 226 struct mlx4_zone_allocator *zones = kmalloc(sizeof(*zones), GFP_KERNEL); in mlx4_zone_allocator_create() local 228 if (NULL == zones) in mlx4_zone_allocator_create() 231 INIT_LIST_HEAD(&zones->entries); in mlx4_zone_allocator_create() 232 INIT_LIST_HEAD(&zones->prios); in mlx4_zone_allocator_create() 233 spin_lock_init(&zones->lock); in mlx4_zone_allocator_create() 234 zones->last_uid = 0; in mlx4_zone_allocator_create() 235 zones->mask = 0; in mlx4_zone_allocator_create() 236 zones->flags = flags; in mlx4_zone_allocator_create() 238 return zones; in mlx4_zone_allocator_create() 426 struct mlx4_zone_allocator *zones, u32 uid) in __mlx4_find_zone_by_uid() argument [all …]
|
/linux-6.14.4/drivers/block/null_blk/ |
D | zoned.c | 94 dev->zones = kvmalloc_array(dev->nr_zones, sizeof(struct nullb_zone), in null_init_zoned_dev() 96 if (!dev->zones) in null_init_zoned_dev() 103 pr_info("changed the number of conventional zones to %u", in null_init_zoned_dev() 112 /* Max active zones has to be < nbr of seq zones in order to be enforceable */ in null_init_zoned_dev() 118 /* Max open zones has to be <= max active zones */ in null_init_zoned_dev() 121 pr_info("changed the maximum number of open zones to %u\n", in null_init_zoned_dev() 131 zone = &dev->zones[i]; in null_init_zoned_dev() 145 zone = &dev->zones[i]; in null_init_zoned_dev() 189 kvfree(dev->zones); in null_free_zoned_dev() 190 dev->zones = NULL; in null_free_zoned_dev() [all …]
|
/linux-6.14.4/fs/btrfs/ |
D | zoned.c | 21 /* Maximum number of zones to report per blkdev_report_zones() call */ 42 /* Number of superblock log zones */ 46 * Minimum of active zones we need: 48 * - BTRFS_SUPER_MIRROR_MAX zones for superblock mirrors 49 * - 3 zones to ensure at least one zone per SYSTEM, META and DATA block group 77 struct blk_zone *zones = data; in copy_zone_info_cb() local 79 memcpy(&zones[idx], zone, sizeof(*zone)); in copy_zone_info_cb() 84 static int sb_write_pointer(struct block_device *bdev, struct blk_zone *zones, in sb_write_pointer() argument 92 ASSERT(zones[i].type != BLK_ZONE_TYPE_CONVENTIONAL); in sb_write_pointer() 93 empty[i] = (zones[i].cond == BLK_ZONE_COND_EMPTY); in sb_write_pointer() [all …]
|
/linux-6.14.4/include/uapi/linux/ |
D | blkzoned.h | 23 * enum blk_zone_type - Types of zones allowed in a zoned device. 44 * @BLK_ZONE_COND_EXP_OPEN: The zones was explicitly opened by an 125 * @zones: Space to hold @nr_zones @zones entries on reply. 133 struct blk_zone zones[]; member 141 * @nr_sectors: Total number of sectors of all zones to operate on. 154 * @BLKRESETZONE: Reset the write pointer of the zones in the specified 157 * @BLKGETNRZONES: Get the total number of zones of the device. 158 * @BLKOPENZONE: Open the zones in the specified sector range. 160 * @BLKCLOSEZONE: Close the zones in the specified sector range. 162 * @BLKFINISHZONE: Mark the zones as full in the specified sector range.
|
/linux-6.14.4/drivers/md/ |
D | dm-zone.c | 89 * Ignore zones beyond the target range. in dm_report_zones_cb() 147 * Revalidate the zones of a mapped device to initialize resource necessary 182 DMERR("Revalidate zones failed %d", ret); in dm_revalidate_zones() 222 * Count the total number of and the number of mapped sequential zones of a 276 * number of mapped sequential zones: if this number is smaller than the in device_get_zone_resource_limits() 277 * total number of sequential zones of the target device, then resource in device_get_zone_resource_limits() 282 DMERR("Count %s zones failed %d", disk->disk_name, ret); in device_get_zone_resource_limits() 287 * If the target does not map any sequential zones, then we do not need in device_get_zone_resource_limits() 294 * If the target does not map all sequential zones, the limits in device_get_zone_resource_limits() 303 * If the target maps less sequential zones than the limit values, then in device_get_zone_resource_limits() [all …]
|
D | dm-zoned-metadata.c | 32 * followed on disk by the mapping table of chunks to zones and the bitmap 38 * All metadata blocks are stored in conventional zones, starting from 57 /* The number of sequential zones reserved for reclaim */ 175 struct xarray zones; member 300 return xa_load(&zmd->zones, zone_id); in dmz_get() 311 if (xa_insert(&zmd->zones, zone_id, zone, GFP_KERNEL)) { in dmz_insert() 1066 dmz_dev_err(dev, "Invalid number of reserved sequential zones"); in dmz_check_sb() 1371 * Devices that have zones with a capacity smaller than the zone size in dmz_init_zone() 1409 * Tertiary superblock zones are always at the in dmz_init_zone() 1445 * Free zones descriptors. [all …]
|
/linux-6.14.4/Documentation/power/powercap/ |
D | powercap.rst | 19 Power zones represent different parts of the system, which can be controlled and 23 the system represented by different power zones are hierarchical (that is, one 25 controls), those power zones may also be organized in a hierarchy with one 150 control type called intel-rapl which contains two power zones, intel-rapl:0 and 151 intel-rapl:1, representing CPU packages. Each of these power zones contains 154 the zones and subzones contain energy monitoring attributes (energy_uj, 156 to be applied (the constraints in the 'package' power zones apply to the whole 170 Depending on different power zones, the Intel RAPL technology allows 173 All the zones contain attributes representing the constraint names, 245 enabled (rw): Enable/Disable controls at zone level or for all zones using
|
/linux-6.14.4/drivers/scsi/ |
D | sd_zbc.c | 81 * obtained from the REPORT ZONES command. in sd_zbc_parse_report() 98 * sd_zbc_do_report_zones - Issue a REPORT ZONES scsi command. 106 * Using partial=true can significantly speed up execution of a report zones 108 * zones and will only report the count of zones fitting in the command reply 137 "REPORT ZONES start lba %llu failed\n", lba); in sd_zbc_do_report_zones() 138 sd_print_result(sdkp, "REPORT ZONES", result); in sd_zbc_do_report_zones() 147 "REPORT ZONES report invalid length %u\n", in sd_zbc_do_report_zones() 156 * sd_zbc_alloc_report_buffer() - Allocate a buffer for report zones reply. 158 * @nr_zones: Maximum number of zones to report 161 * Try to allocate a reply buffer for the number of requested zones. [all …]
|
/linux-6.14.4/Documentation/mm/ |
D | balance.rst | 41 zone size (and possibly of the size of lower class zones), we can decide 44 of lower class zones, the bad part is, we might do too frequent balancing 45 due to ignoring possibly lower usage in the lower class zones. Also, 50 of a zone _and_ all its lower class zones falls below 1/64th of the 51 total memory in the zone and its lower class zones. This fixes the 2.2 54 which have different numbers and types of zones. If we wanted to get 56 zones in the future. 72 kswapd also needs to know about the zones it should balance. kswapd is
|
D | physical_memory.rst | 33 called zones which represent ranges within memory. These ranges are usually 48 both zones as they support peripherals with different DMA addressing 78 ``ZONE_NORMAL`` so it is the most performance critical zone. Zones are 79 discussed further in Section :ref:`Zones <zones>`. 86 entire memory will be on node 0 and there will be three zones: ``ZONE_DMA``, 212 The zones for this node. Not all of the zones may be populated, but it is 217 The list of all zones in all nodes. This list defines the order of zones 223 Number of populated zones in this node. 339 Zones chapter
|
/linux-6.14.4/drivers/powercap/ |
D | arm_scmi_powercap.c | 266 /* Un-register children zones first starting from the leaves */ in scmi_powercap_unregister_all_zones() 332 * scmi_zones_register- Register SCMI powercap zones starting from parent zones 335 * @pr: A reference to the root powercap zones descriptors 337 * When registering SCMI powercap zones with the powercap framework we should 338 * take care to always register zones starting from the root ones and to 342 * zones provided by the SCMI platform firmware is built to comply with such 345 * This function, given the set of SCMI powercap zones to register, takes care 346 * to walk the SCMI powercap zones trees up to the root registering any 347 * unregistered parent zone before registering the child zones; at the same 351 * the @registered_zones array backward and unregister all the zones starting [all …]
|
/linux-6.14.4/fs/zonefs/ |
D | super.c | 3 * Simple file system for zoned block devices exposing zones as files. 59 * For zones that transitioned to the offline or readonly condition, in zonefs_account_active() 108 * open operation on other zones if the drive active zone resources in zonefs_zone_mgmt() 202 * The write pointer of read-only zones is invalid, so we cannot in zonefs_check_zone_condition() 216 /* The write pointer of full zones is invalid. */ in zonefs_check_zone_condition() 227 * offline and readonly zones. 234 /* Offline zones cannot be read nor written */ in zonefs_inode_update_mode() 238 /* Readonly zones cannot be written */ in zonefs_inode_update_mode() 304 * First handle bad zones signaled by hardware. The mount options in zonefs_handle_io_error() 396 * may prevent IO forward progress. Executing the report zones under in __zonefs_io_error() [all …]
|
/linux-6.14.4/include/linux/ |
D | sysv_fs.h | 31 __fs32 s_fsize __packed2__; /* total number of zones of this fs */ 44 __fs32 s_tfree __packed2__; /* total number of free zones */ 70 __fs32 s_fsize; /* total number of zones of this fs */ 86 __fs32 s_tfree; /* total number of free zones */ 101 __fs32 s_fsize __packed2__; /* total number of zones of this fs */ 115 __fs32 s_tfree __packed2__; /* total number of free zones */ 131 __fs32 s_fsize __packed2__; /* total number of zones of this fs */ 145 __fs32 s_tfree __packed2__; /* total number of free zones */ 169 __fs32 s_fsize __packed2__; /* total number of zones of this fs */ 182 __fs32 s_tfree __packed2__; /* total number of free zones */
|
/linux-6.14.4/block/ |
D | blk-zoned.c | 135 * blkdev_report_zones - Get zones information 137 * @sector: Sector from which to report zones 138 * @nr_zones: Maximum number of zones to report 145 * To report all zones in a device starting from @sector, the BLK_ALL_ZONES 147 * Returns the number of zones reported by the device, or a negative errno 184 * blkdev_zone_mgmt - Execute a zone management operation on a range of zones 186 * @op: Operation to be performed on the zones 192 * Perform the specified operation on the range of zones specified by 194 * is valid, but the specified range should not contain conventional zones. 228 * In the case of a zone reset operation over all zones, use in blkdev_zone_mgmt() [all …]
|
/linux-6.14.4/drivers/md/dm-vdo/indexer/ |
D | index.h | 21 * The index is divided into a number of independent zones and assigns each request to a zone based 22 * on its name. Most sub-components are similarly divided into zones as well so that requests in 23 * each zone usually operate without interference or coordination between zones. 45 struct index_zone **zones; member
|
/linux-6.14.4/drivers/thermal/tegra/ |
D | tegra-bpmp-thermal.c | 30 struct tegra_bpmp_thermal_zone **zones; member 128 if (tegra->zones[i]->idx != req.host_trip_reached.zone) in bpmp_mrq_thermal() 131 schedule_work(&tegra->zones[i]->tz_device_update_work); in bpmp_mrq_thermal() 242 dev_err(&pdev->dev, "failed to get the number of zones: %d\n", in tegra_bpmp_thermal_probe() 247 tegra->zones = devm_kcalloc(&pdev->dev, max_num_zones, in tegra_bpmp_thermal_probe() 248 sizeof(*tegra->zones), GFP_KERNEL); in tegra_bpmp_thermal_probe() 249 if (!tegra->zones) in tegra_bpmp_thermal_probe() 287 tegra->zones[tegra->num_zones++] = zone; in tegra_bpmp_thermal_probe()
|