/Linux-v5.15/drivers/block/null_blk/ |
D | zoned.c | 32 struct nullb_zone *zone) in null_init_zone_lock() argument 35 spin_lock_init(&zone->spinlock); in null_init_zone_lock() 37 mutex_init(&zone->mutex); in null_init_zone_lock() 41 struct nullb_zone *zone) in null_lock_zone() argument 44 spin_lock_irq(&zone->spinlock); in null_lock_zone() 46 mutex_lock(&zone->mutex); in null_lock_zone() 50 struct nullb_zone *zone) in null_unlock_zone() argument 53 spin_unlock_irq(&zone->spinlock); in null_unlock_zone() 55 mutex_unlock(&zone->mutex); in null_unlock_zone() 61 struct nullb_zone *zone; in null_init_zoned_dev() local [all …]
|
/Linux-v5.15/fs/pstore/ |
D | zone.c | 26 * struct psz_buffer - header of zone to flush to storage 31 * @data: zone data. 66 * @off: zone offset of storage 67 * @type: front-end type for this zone 68 * @name: front-end name for this zone 69 * @buffer: pointer to data buffer managed by this zone 72 * @should_recover: whether this zone should recover from storage 75 * zone structure in memory. 90 * struct psz_context - all about running state of pstore/zone 93 * @ppsz: pmsg storage zone [all …]
|
/Linux-v5.15/drivers/gpu/drm/vmwgfx/ |
D | ttm_memory.c | 84 struct ttm_mem_zone *zone = in ttm_mem_zone_kobj_release() local 87 pr_info("Zone %7s: Used memory at exit: %llu KiB\n", in ttm_mem_zone_kobj_release() 88 zone->name, (unsigned long long)zone->used_mem >> 10); in ttm_mem_zone_kobj_release() 89 kfree(zone); in ttm_mem_zone_kobj_release() 96 struct ttm_mem_zone *zone = in ttm_mem_zone_show() local 100 spin_lock(&zone->glob->lock); in ttm_mem_zone_show() 102 val = zone->zone_mem; in ttm_mem_zone_show() 104 val = zone->emer_mem; in ttm_mem_zone_show() 106 val = zone->max_mem; in ttm_mem_zone_show() 108 val = zone->swap_limit; in ttm_mem_zone_show() [all …]
|
/Linux-v5.15/include/uapi/linux/ |
D | blkzoned.h | 25 * @BLK_ZONE_TYPE_CONVENTIONAL: The zone has no write pointer and can be writen 26 * randomly. Zone reset has no effect on the zone. 27 * @BLK_ZONE_TYPE_SEQWRITE_REQ: The zone must be written sequentially 28 * @BLK_ZONE_TYPE_SEQWRITE_PREF: The zone can be written non-sequentially 39 * enum blk_zone_cond - Condition [state] of a zone in a zoned device. 41 * @BLK_ZONE_COND_NOT_WP: The zone has no write pointer, it is conventional. 42 * @BLK_ZONE_COND_EMPTY: The zone is empty. 43 * @BLK_ZONE_COND_IMP_OPEN: The zone is open, but not explicitly opened. 45 * OPEN ZONE command. 46 * @BLK_ZONE_COND_CLOSED: The zone was [explicitly] closed after writing. [all …]
|
/Linux-v5.15/Documentation/filesystems/ |
D | zonefs.rst | 4 ZoneFS - Zone filesystem for Zoned block devices 10 zonefs is a very simple file system exposing each zone of a zoned block device 24 by allowing SSTables to be stored in a zone file similarly to a regular file 26 of the higher level construct "one file is one zone" can help reducing the 34 space that is divided into zones. A zone is a group of consecutive LBAs and all 41 sequentially. Each sequential zone has a write pointer maintained by the 43 to the device. As a result of this write constraint, LBAs in a sequential zone 45 command (zone reset) before rewriting. 61 representing zones are grouped by zone type, which are themselves represented 62 by sub-directories. This file structure is built entirely using zone information [all …]
|
/Linux-v5.15/drivers/md/ |
D | dm-zoned-metadata.c | 33 * blocks indicating zone block validity. 39 * the first conventional zone found on disk. 87 * and give the zone ID (dzone_id) mapping the chunk on disk. 88 * This zone may be sequential or random. If it is a sequential 89 * zone, a second zone (bzone_id) used as a write buffer may 90 * also be specified. This second zone will always be a randomly 91 * writeable zone. 137 struct dm_zone *zone; member 174 /* Zone information array */ 192 /* Zone allocation management */ [all …]
|
D | dm-zone.c | 13 #define DM_MSG_PREFIX "zone" 18 * For internal zone reports bypassing the top BIO submission path. 51 * User facing dm device block device report zone operation. This calls the 76 static int dm_report_zones_cb(struct blk_zone *zone, unsigned int idx, in dm_report_zones_cb() argument 85 if (zone->start >= args->start + args->tgt->len) in dm_report_zones_cb() 89 * Remap the start sector and write pointer position of the zone in dm_report_zones_cb() 92 zone->start += sector_diff; in dm_report_zones_cb() 93 if (zone->type != BLK_ZONE_TYPE_CONVENTIONAL) { in dm_report_zones_cb() 94 if (zone->cond == BLK_ZONE_COND_FULL) in dm_report_zones_cb() 95 zone->wp = zone->start + zone->len; in dm_report_zones_cb() [all …]
|
D | dm-zoned.h | 94 * Zone descriptor. 97 /* For listing the zone depending on its state */ 100 /* Device containing this zone */ 103 /* Zone type and state */ 106 /* Zone activation reference count */ 109 /* Zone id */ 112 /* Zone write pointer block (relative to the zone start block) */ 115 /* Zone weight (number of valid blocks in the zone) */ 118 /* The chunk that the zone maps */ 122 * For a sequential data zone, pointer to the random zone [all …]
|
D | dm-zoned-target.c | 17 * Zone BIO context. 21 struct dm_zone *zone; member 86 struct dm_zone *zone = bioctx->zone; in dmz_bio_endio() local 88 if (zone) { in dmz_bio_endio() 91 dmz_is_seq(zone)) in dmz_bio_endio() 92 set_bit(DMZ_SEQ_WRITE_ERR, &zone->flags); in dmz_bio_endio() 93 dmz_deactivate_zone(zone); in dmz_bio_endio() 116 static int dmz_submit_bio(struct dmz_target *dmz, struct dm_zone *zone, in dmz_submit_bio() argument 122 struct dmz_dev *dev = zone->dev; in dmz_submit_bio() 135 dmz_start_sect(dmz->metadata, zone) + dmz_blk2sect(chunk_block); in dmz_submit_bio() [all …]
|
/Linux-v5.15/include/linux/ |
D | mmzone.h | 118 * cachelines. There are very few zone structures in the machine, so space 135 NUMA_INTERLEAVE_HIT, /* interleaver preferred this zone */ 439 * faulted, they come from the right zone right away. However, it is 443 * to a different zone. When migration fails - pinning fails. 464 * on different platforms may end up in a movable zone. ZERO_PAGE(0) 467 * memory to the MOVABLE zone, the vmemmap pages are also placed in 468 * such zone. Such pages cannot be really moved around as they are 490 struct zone { struct 493 /* zone watermarks, access with *_wmark_pages(zone) macros */ 502 * wasting several GB of ram we must reserve some of the lower zone argument [all …]
|
D | memory_hotplug.h | 11 struct zone; 22 /* Types for control the zone type of onlined and offlined memory */ 26 /* Online the memory. Zone depends, see default_zone_for_pfn(). */ 75 * Zone resizing functions 77 * Note: any attempt to resize a zone should has pgdat_resize_lock() 78 * zone_span_writelock() both held. This ensure the size of a zone 81 static inline unsigned zone_span_seqbegin(struct zone *zone) in zone_span_seqbegin() argument 83 return read_seqbegin(&zone->span_seqlock); in zone_span_seqbegin() 85 static inline int zone_span_seqretry(struct zone *zone, unsigned iv) in zone_span_seqretry() argument 87 return read_seqretry(&zone->span_seqlock, iv); in zone_span_seqretry() [all …]
|
D | vmstat.h | 138 * Zone and node-based page accounting with per cpu differentials. 145 static inline void zone_numa_event_add(long x, struct zone *zone, in zone_numa_event_add() argument 148 atomic_long_add(x, &zone->vm_numa_event[item]); in zone_numa_event_add() 152 static inline unsigned long zone_numa_event_state(struct zone *zone, in zone_numa_event_state() argument 155 return atomic_long_read(&zone->vm_numa_event[item]); in zone_numa_event_state() 165 static inline void zone_page_state_add(long x, struct zone *zone, in zone_page_state_add() argument 168 atomic_long_add(x, &zone->vm_stat[item]); in zone_page_state_add() 207 static inline unsigned long zone_page_state(struct zone *zone, in zone_page_state() argument 210 long x = atomic_long_read(&zone->vm_stat[item]); in zone_page_state() 224 static inline unsigned long zone_page_state_snapshot(struct zone *zone, in zone_page_state_snapshot() argument [all …]
|
D | powercap.h | 16 * controlled. Each power zone can have one or more constraints. 28 * limits. If disabled power zone can only be monitored 75 * struct powercap_zone_ops - Define power zone callbacks 83 * @set_enable: Enable/Disable power zone controls. 92 * This structure defines zone callbacks to be implemented by client drivers. 112 * struct powercap_zone- Defines instance of a power cap zone 114 * @name: Power zone name. 115 * @control_type_inst: Control type instance for this zone. 116 * @ops: Pointer to the zone operation structure. 121 * @private_data: Private data pointer if any for this zone. [all …]
|
/Linux-v5.15/mm/ |
D | page_alloc.c | 13 * Zone balancing, Kanoj Sarcar, SGI, Jan 2000 101 * shuffle the whole zone). 121 /* prevent >1 _updater_ of zone percpu pageset ->high and ->batch fields */ 152 struct zone *zone; member 357 /* movable_zone is the "real" zone pages in ZONE_MOVABLE are taken from */ 420 * prev_end_pfn static that contains the end of previous zone in defer_init() 572 static int page_outside_zone_boundaries(struct zone *zone, struct page *page) in page_outside_zone_boundaries() argument 580 seq = zone_span_seqbegin(zone); in page_outside_zone_boundaries() 581 start_pfn = zone->zone_start_pfn; in page_outside_zone_boundaries() 582 sp = zone->spanned_pages; in page_outside_zone_boundaries() [all …]
|
D | vmstat.c | 37 /* zero numa counters within a zone */ 38 static void zero_zone_numa_counters(struct zone *zone) in zero_zone_numa_counters() argument 43 atomic_long_set(&zone->vm_numa_event[item], 0); in zero_zone_numa_counters() 45 per_cpu_ptr(zone->per_cpu_zonestats, cpu)->vm_numa_event[item] in zero_zone_numa_counters() 54 struct zone *zone; in zero_zones_numa_counters() local 56 for_each_populated_zone(zone) in zero_zones_numa_counters() 57 zero_zone_numa_counters(zone); in zero_zones_numa_counters() 158 * Manage combined zone based / global counters 170 int calculate_pressure_threshold(struct zone *zone) in calculate_pressure_threshold() argument 183 watermark_distance = low_wmark_pages(zone) - min_wmark_pages(zone); in calculate_pressure_threshold() [all …]
|
D | compaction.c | 61 * the "fragmentation score" of a node/zone. 159 static void defer_compaction(struct zone *zone, int order) in defer_compaction() argument 161 zone->compact_considered = 0; in defer_compaction() 162 zone->compact_defer_shift++; in defer_compaction() 164 if (order < zone->compact_order_failed) in defer_compaction() 165 zone->compact_order_failed = order; in defer_compaction() 167 if (zone->compact_defer_shift > COMPACT_MAX_DEFER_SHIFT) in defer_compaction() 168 zone->compact_defer_shift = COMPACT_MAX_DEFER_SHIFT; in defer_compaction() 170 trace_mm_compaction_defer_compaction(zone, order); in defer_compaction() 174 static bool compaction_deferred(struct zone *zone, int order) in compaction_deferred() argument [all …]
|
D | memory_hotplug.c | 82 * specifying a zone (MMOP_ONLINE) 84 * "contig-zones": keep zone contiguous 302 * call this function after deciding the zone to which to 348 static unsigned long find_smallest_section_pfn(int nid, struct zone *zone, in find_smallest_section_pfn() argument 359 if (zone != page_zone(pfn_to_page(start_pfn))) in find_smallest_section_pfn() 369 static unsigned long find_biggest_section_pfn(int nid, struct zone *zone, in find_biggest_section_pfn() argument 384 if (zone != page_zone(pfn_to_page(pfn))) in find_biggest_section_pfn() 393 static void shrink_zone_span(struct zone *zone, unsigned long start_pfn, in shrink_zone_span() argument 397 int nid = zone_to_nid(zone); in shrink_zone_span() 399 if (zone->zone_start_pfn == start_pfn) { in shrink_zone_span() [all …]
|
/Linux-v5.15/Documentation/driver-api/thermal/ |
D | sysfs-api.rst | 15 The generic thermal sysfs provides a set of interfaces for thermal zone 19 This how-to focuses on enabling new thermal zone and cooling devices to 21 This solution is platform independent and any type of thermal zone devices 24 The main task of the thermal sysfs driver is to expose thermal zone attributes 27 inputs from thermal zone attributes (the current temperature and trip point 36 1.1 thermal zone device interface 48 This interface function adds a new thermal zone device (sensor) to 53 the thermal zone type. 55 the total number of trip points this thermal zone supports. 61 thermal zone device call-backs. [all …]
|
/Linux-v5.15/fs/adfs/ |
D | map.c | 14 * zone which contains a bitstream made up of variable sized fragments. 30 * large or fragmented files. The first map zone a fragment starts in 32 * from any zone on the disk. 63 * return the map bit offset of the fragment frag_id in the zone dm. 109 * Scan the free space map, for this zone, calculating the total 133 * exist in this zone. in scan_free_map() 159 static int scan_map(struct adfs_sb_info *asb, unsigned int zone, in scan_map() argument 166 dm = asb->s_map + zone; in scan_map() 167 zone = asb->s_map_size; in scan_map() 168 dm_end = asb->s_map + zone; in scan_map() [all …]
|
/Linux-v5.15/Documentation/admin-guide/device-mapper/ |
D | dm-zoned.rst | 54 Data in these zones may be directly mapped to the conventional zone, but 55 later moved to a sequential zone so that the conventional zone can be 65 1) The first block of the first conventional zone found contains the 73 indicates the zone number of the device storing the chunk of data. Each 74 mapping entry may also indicate if the zone number of a conventional 75 zone used to buffer random modification to the data zone. 80 data chunk, a block is always valid only in the data zone mapping the 81 chunk or in the buffer zone of the chunk. 83 For a logical chunk mapped to a conventional zone, all write operations 84 are processed by directly writing to the zone. If the mapping zone is a [all …]
|
/Linux-v5.15/fs/btrfs/ |
D | reada.c | 234 struct reada_zone *zone; in reada_find_zone() local 240 zone = NULL; in reada_find_zone() 242 ret = radix_tree_gang_lookup(&dev->reada_zones, (void **)&zone, in reada_find_zone() 244 if (ret == 1 && logical >= zone->start && logical <= zone->end) { in reada_find_zone() 245 kref_get(&zone->refcnt); in reada_find_zone() 247 return zone; in reada_find_zone() 260 zone = kzalloc(sizeof(*zone), GFP_KERNEL); in reada_find_zone() 261 if (!zone) in reada_find_zone() 266 kfree(zone); in reada_find_zone() 270 zone->start = start; in reada_find_zone() [all …]
|
/Linux-v5.15/include/net/netfilter/ |
D | nf_conntrack_zones.h | 12 return &ct->zone; in nf_ct_zone() 19 nf_ct_zone_init(struct nf_conntrack_zone *zone, u16 id, u8 dir, u8 flags) in nf_ct_zone_init() argument 21 zone->id = id; in nf_ct_zone_init() 22 zone->flags = flags; in nf_ct_zone_init() 23 zone->dir = dir; in nf_ct_zone_init() 25 return zone; in nf_ct_zone_init() 36 if (tmpl->zone.flags & NF_CT_FLAG_MARK) in nf_ct_zone_tmpl() 37 return nf_ct_zone_init(tmp, skb->mark, tmpl->zone.dir, 0); in nf_ct_zone_tmpl() 43 const struct nf_conntrack_zone *zone) in nf_ct_zone_add() argument 46 ct->zone = *zone; in nf_ct_zone_add() [all …]
|
/Linux-v5.15/drivers/thermal/tegra/ |
D | tegra-bpmp-thermal.c | 35 struct tegra_bpmp_thermal_zone *zone = data; in tegra_bpmp_thermal_get_temp() local 43 req.get_temp.zone = zone->idx; in tegra_bpmp_thermal_get_temp() 52 err = tegra_bpmp_transfer(zone->tegra->bpmp, &msg); in tegra_bpmp_thermal_get_temp() 63 struct tegra_bpmp_thermal_zone *zone = data; in tegra_bpmp_thermal_set_trips() local 69 req.set_trip.zone = zone->idx; in tegra_bpmp_thermal_set_trips() 79 return tegra_bpmp_transfer(zone->tegra->bpmp, &msg); in tegra_bpmp_thermal_set_trips() 84 struct tegra_bpmp_thermal_zone *zone; in tz_device_update_work_fn() local 86 zone = container_of(work, struct tegra_bpmp_thermal_zone, in tz_device_update_work_fn() 89 thermal_zone_device_update(zone->tzd, THERMAL_TRIP_VIOLATED); in tz_device_update_work_fn() 109 if (tegra->zones[i]->idx != req->host_trip_reached.zone) in bpmp_mrq_thermal() [all …]
|
/Linux-v5.15/fs/zonefs/ |
D | super.c | 43 "Zone management operation %s at %llu failed %d\n", in zonefs_zone_mgmt() 57 * A full zone is no longer open/active and does not need in zonefs_i_size_write() 87 * zones, all blocks after always mapped below the inode size (zone in zonefs_iomap_begin() 127 * Map blocks for page writeback. This is used only on conventional zone files, 176 "swap file: not a conventional zone file\n"); in zonefs_swap_activate() 231 * Check a zone condition and adjust its file inode access permissions for 233 * amount of readable data in the zone. 236 struct blk_zone *zone, bool warn, in zonefs_check_zone_condition() argument 241 switch (zone->cond) { in zonefs_check_zone_condition() 244 * Dead zone: make the inode immutable, disable all accesses in zonefs_check_zone_condition() [all …]
|
/Linux-v5.15/Documentation/ABI/testing/ |
D | sysfs-class-powercap | 25 This status affects every power zone using this "control_type. 27 What: /sys/class/powercap/<control type>/<power zone> 32 A power zone is a single or a collection of devices, which can 33 be independently monitored and controlled. A power zone sysfs 37 What: /sys/class/powercap/<control type>/<power zone>/<child power zone> 45 power zone for a whole CPU package, each CPU core in it can 46 be a child power zone. 48 What: /sys/class/powercap/.../<power zone>/name 53 Specifies the name of this power zone. 55 What: /sys/class/powercap/.../<power zone>/energy_uj [all …]
|