Home
last modified time | relevance | path

Searched full:stripe (Results 1 – 25 of 270) sorted by relevance

1234567891011

/kernel/linux/linux-6.6/fs/btrfs/
Dscrub.c96 * Set for data stripes if it's triggered from P/Q stripe.
125 * How many data/meta extents are in this stripe. Only for scrub status
136 * Indicate the states of the stripe. Bits are defined in
145 * The errors hit during the initial read of the stripe.
180 * Checksum for the whole stripe if this stripe is inside a data block
235 static void release_scrub_stripe(struct scrub_stripe *stripe) in release_scrub_stripe() argument
237 if (!stripe) in release_scrub_stripe()
241 if (stripe->pages[i]) in release_scrub_stripe()
242 __free_page(stripe->pages[i]); in release_scrub_stripe()
243 stripe->pages[i] = NULL; in release_scrub_stripe()
[all …]
Draid56.h23 * While we're doing RMW on a stripe we put it into a hash table so we
24 * can lock the stripe and merge more rbios into it.
28 /* LRU list for the stripe cache */
35 * bio_list and bio_list_lock are used to add more bios into the stripe
43 * plugging code to collect partial bios while plugged. The stripe
44 * locking code also uses it to hand off the stripe lock to the next
58 /* How many pages there are for the full stripe including P/Q */
61 /* How many sectors there are for the full stripe including P/Q */
70 /* How many pages there are for each stripe */
73 /* How many sectors there are for each stripe */
[all …]
Draid56.c116 * the stripe hash table is used for locking, and to collect
117 * bios in hopes of making a full stripe
161 * use the page uptodate bit in the stripe cache array
201 * we hash on the first logical address of the stripe
290 * Stealing an rbio means taking all the uptodate pages from the stripe array
315 * all data stripe pages present and uptodate. in steal_rbio()
455 * insert an rbio into the stripe cache. It
525 * Returns true if the bio list inside this rbio covers an entire stripe (no
545 * the same stripe and if they are both going in the same
577 * We've need read the full stripe from the drive. in rbio_can_merge()
[all …]
/kernel/linux/linux-5.10/drivers/md/
Ddm-stripe.c21 struct stripe { struct
44 struct stripe stripe[]; member
49 * drops out of a stripe volume.
62 unsigned int stripe, char **argv) in get_stripe() argument
72 &sc->stripe[stripe].dev); in get_stripe()
76 sc->stripe[stripe].physical_start = start; in get_stripe()
100 ti->error = "Invalid stripe count"; in stripe_ctr()
132 sc = kmalloc(struct_size(sc, stripe, stripes), GFP_KERNEL); in stripe_ctr()
170 * Get the stripe destinations. in stripe_ctr()
177 ti->error = "Couldn't parse stripe destination"; in stripe_ctr()
[all …]
Draid5.h10 * Each stripe contains one buffer per device. Each buffer can be in
45 * will at worst delay some action, and the stripe will be scheduled
53 * To distinguish these states we have a stripe bit STRIPE_INSYNC that
60 * to the appropriate stripe in one of two lists linked on b_reqnext.
86 * Stripes in the stripe cache can be on one of two lists (or on
89 * for another stripe. The "handle_list" contains stripes that need
91 * stripe is also (potentially) linked to a hash bucket in the hash
99 * - If a stripe might need handling, STRIPE_HANDLE is set.
104 * cleared while a stripe has a non-zero count means that if the
107 * the stripe is on inactive_list.
[all …]
Ddm-unstripe.c36 * <number of stripes> <chunk size> <stripe #> <dev_path> <offset>
57 ti->error = "Invalid stripe count"; in unstripe_ctr()
67 ti->error = "Invalid stripe number"; in unstripe_ctr()
72 ti->error = "Please provide stripe between [0, # of stripes]"; in unstripe_ctr()
122 /* Shift us up to the right "row" on the stripe */ in map_to_core()
130 /* Account for what stripe we're operating on */ in map_to_core()
Draid5-cache.c54 * With the RAID cache, each stripe works in two phases:
59 * if STRIPE_R5C_CACHING == 0, the stripe is in writing-out phase
60 * if STRIPE_R5C_CACHING == 1, the stripe is in caching phase
63 * the stripe is always in writing-out phase.
65 * For write-back journal, the stripe is sent to caching phase on write
70 * writes are committed from the log device. Therefore, a stripe in
160 * Each chunk may contain more than one stripe (for example, a 256kB
173 * It is necessary to remember whether a stripe is counted in
176 * two flags are set, the stripe is counted in big_stripe_tree. This
326 /* Check whether we should flush some stripes to free up stripe cache */
[all …]
/kernel/linux/linux-6.6/drivers/md/
Ddm-stripe.c24 struct stripe { struct
47 struct stripe stripe[]; argument
52 * drops out of a stripe volume.
65 unsigned int stripe, char **argv) in get_stripe() argument
75 &sc->stripe[stripe].dev); in get_stripe()
79 sc->stripe[stripe].physical_start = start; in get_stripe()
103 ti->error = "Invalid stripe count"; in stripe_ctr()
132 sc = kmalloc(struct_size(sc, stripe, stripes), GFP_KERNEL); in stripe_ctr()
168 * Get the stripe destinations. in stripe_ctr()
175 ti->error = "Couldn't parse stripe destination"; in stripe_ctr()
[all …]
Draid5.h11 * Each stripe contains one buffer per device. Each buffer can be in
46 * will at worst delay some action, and the stripe will be scheduled
54 * To distinguish these states we have a stripe bit STRIPE_INSYNC that
61 * to the appropriate stripe in one of two lists linked on b_reqnext.
87 * Stripes in the stripe cache can be on one of two lists (or on
90 * for another stripe. The "handle_list" contains stripes that need
92 * stripe is also (potentially) linked to a hash bucket in the hash
100 * - If a stripe might need handling, STRIPE_HANDLE is set.
105 * cleared while a stripe has a non-zero count means that if the
108 * the stripe is on inactive_list.
[all …]
Ddm-unstripe.c37 * <number of stripes> <chunk size> <stripe #> <dev_path> <offset>
58 ti->error = "Invalid stripe count"; in unstripe_ctr()
68 ti->error = "Invalid stripe number"; in unstripe_ctr()
73 ti->error = "Please provide stripe between [0, # of stripes]"; in unstripe_ctr()
123 /* Shift us up to the right "row" on the stripe */ in map_to_core()
131 /* Account for what stripe we're operating on */ in map_to_core()
Draid5-cache.c54 * With the RAID cache, each stripe works in two phases:
59 * if STRIPE_R5C_CACHING == 0, the stripe is in writing-out phase
60 * if STRIPE_R5C_CACHING == 1, the stripe is in caching phase
63 * the stripe is always in writing-out phase.
65 * For write-back journal, the stripe is sent to caching phase on write
70 * writes are committed from the log device. Therefore, a stripe in
160 * Each chunk may contain more than one stripe (for example, a 256kB
173 * It is necessary to remember whether a stripe is counted in
176 * two flags are set, the stripe is counted in big_stripe_tree. This
322 /* Check whether we should flush some stripes to free up stripe cache */
[all …]
/kernel/linux/linux-5.10/fs/btrfs/
Draid56.c65 /* while we're doing rmw on a stripe
67 * lock the stripe and merge more rbios
73 * LRU list for the stripe cache
84 * to add more bios into the stripe
93 * stripe locking code also uses it to hand off
94 * the stripe lock to the next pending IO
104 /* size of each individual stripe on disk */
121 /* first bad stripe */
124 /* second bad stripe (for raid6 use) */
130 * stripe
[all …]
/kernel/linux/linux-5.10/drivers/staging/media/ipu3/
Dipu3-css-params.c229 * Function calculates input frame stripe offset, based
230 * on output frame stripe offset and filter parameters.
244 * stripe offset and filter parameters
260 * This function calculates input frame stripe width,
261 * based on output frame stripe offset and filter parameters
277 * This function calculates output frame stripe width, basedi
278 * on output frame stripe offset and filter parameters
530 /* Stripe parameters */ in imgu_css_osys_calc_frame_and_stripe_params()
573 /* Calculate stripe offsets */ in imgu_css_osys_calc_frame_and_stripe_params()
596 /* Calculate stripe phase init */ in imgu_css_osys_calc_frame_and_stripe_params()
[all …]
/kernel/linux/linux-6.6/drivers/staging/media/ipu3/
Dipu3-css-params.c229 * Function calculates input frame stripe offset, based
230 * on output frame stripe offset and filter parameters.
244 * stripe offset and filter parameters
260 * This function calculates input frame stripe width,
261 * based on output frame stripe offset and filter parameters
277 * This function calculates output frame stripe width, basedi
278 * on output frame stripe offset and filter parameters
530 /* Stripe parameters */ in imgu_css_osys_calc_frame_and_stripe_params()
573 /* Calculate stripe offsets */ in imgu_css_osys_calc_frame_and_stripe_params()
596 /* Calculate stripe phase init */ in imgu_css_osys_calc_frame_and_stripe_params()
[all …]
/kernel/linux/linux-5.10/Documentation/driver-api/md/
Draid5-ppl.rst6 addressed by PPL is that after a dirty shutdown, parity of a particular stripe
15 Partial parity for a write operation is the XOR of stripe data chunks not
18 the stripe, consistent with its state before the write operation, regardless of
20 this stripe is missing, this updated parity can be used to recover its
29 stripe. It does not require a dedicated journaling drive. Write performance is
36 silent data corruption. If a dirty disk of a stripe is lost, no PPL recovery is
37 performed for this stripe (parity is not updated). So it is possible to have
38 arbitrary data in the written part of a stripe if that disk is lost. In such
Draid5-cache.rst27 and parity don't match. The reason is that a stripe write involves several RAID
52 write. If a write crosses all RAID disks of a stripe, we call it full-stripe
53 write. For non-full-stripe writes, MD must read old data before the new parity
57 RAID disks only after the data becomes a full stripe write. This will
101 release the memory cache. The flush conditions could be stripe becomes a full
102 stripe write, free cache disk space is low or free in-kernel memory cache space
107 data and data. If MD finds a stripe with data and valid parities (1 parity for
/kernel/linux/linux-6.6/Documentation/driver-api/md/
Draid5-ppl.rst6 addressed by PPL is that after a dirty shutdown, parity of a particular stripe
15 Partial parity for a write operation is the XOR of stripe data chunks not
18 the stripe, consistent with its state before the write operation, regardless of
20 this stripe is missing, this updated parity can be used to recover its
29 stripe. It does not require a dedicated journaling drive. Write performance is
36 silent data corruption. If a dirty disk of a stripe is lost, no PPL recovery is
37 performed for this stripe (parity is not updated). So it is possible to have
38 arbitrary data in the written part of a stripe if that disk is lost. In such
Draid5-cache.rst27 and parity don't match. The reason is that a stripe write involves several RAID
52 write. If a write crosses all RAID disks of a stripe, we call it full-stripe
53 write. For non-full-stripe writes, MD must read old data before the new parity
57 RAID disks only after the data becomes a full stripe write. This will
101 release the memory cache. The flush conditions could be stripe becomes a full
102 stripe write, free cache disk space is low or free in-kernel memory cache space
107 data and data. If MD finds a stripe with data and valid parities (1 parity for
/kernel/linux/linux-6.6/drivers/md/bcache/
Dwriteback.c601 int stripe; in bcache_dev_sectors_dirty_add() local
606 stripe = offset_to_stripe(d, offset); in bcache_dev_sectors_dirty_add()
607 if (stripe < 0) in bcache_dev_sectors_dirty_add()
622 if (stripe >= d->nr_stripes) in bcache_dev_sectors_dirty_add()
626 d->stripe_sectors_dirty + stripe); in bcache_dev_sectors_dirty_add()
628 if (!test_bit(stripe, d->full_dirty_stripes)) in bcache_dev_sectors_dirty_add()
629 set_bit(stripe, d->full_dirty_stripes); in bcache_dev_sectors_dirty_add()
631 if (test_bit(stripe, d->full_dirty_stripes)) in bcache_dev_sectors_dirty_add()
632 clear_bit(stripe, d->full_dirty_stripes); in bcache_dev_sectors_dirty_add()
637 stripe++; in bcache_dev_sectors_dirty_add()
[all …]
Dwriteback.h66 pr_err("Invalid stripe %llu (>= nr_stripes %d).\n", in offset_to_stripe()
82 int stripe = offset_to_stripe(&dc->disk, offset); in bcache_dev_stripe_dirty() local
84 if (stripe < 0) in bcache_dev_stripe_dirty()
88 if (atomic_read(dc->disk.stripe_sectors_dirty + stripe)) in bcache_dev_stripe_dirty()
95 stripe++; in bcache_dev_stripe_dirty()
/kernel/linux/linux-5.10/drivers/md/bcache/
Dwriteback.c556 int stripe; in bcache_dev_sectors_dirty_add() local
561 stripe = offset_to_stripe(d, offset); in bcache_dev_sectors_dirty_add()
562 if (stripe < 0) in bcache_dev_sectors_dirty_add()
577 if (stripe >= d->nr_stripes) in bcache_dev_sectors_dirty_add()
581 d->stripe_sectors_dirty + stripe); in bcache_dev_sectors_dirty_add()
583 set_bit(stripe, d->full_dirty_stripes); in bcache_dev_sectors_dirty_add()
585 clear_bit(stripe, d->full_dirty_stripes); in bcache_dev_sectors_dirty_add()
589 stripe++; in bcache_dev_sectors_dirty_add()
608 int stripe; in refill_full_stripes() local
611 stripe = offset_to_stripe(&dc->disk, KEY_OFFSET(&buf->last_scanned)); in refill_full_stripes()
[all …]
Dwriteback.h62 pr_err("Invalid stripe %llu (>= nr_stripes %d).\n", in offset_to_stripe()
78 int stripe = offset_to_stripe(&dc->disk, offset); in bcache_dev_stripe_dirty() local
80 if (stripe < 0) in bcache_dev_stripe_dirty()
84 if (atomic_read(dc->disk.stripe_sectors_dirty + stripe)) in bcache_dev_stripe_dirty()
91 stripe++; in bcache_dev_stripe_dirty()
/kernel/linux/linux-5.10/fs/nfs/blocklayout/
Ddev.c127 p = xdr_decode_hyper(p, &b->stripe.chunk_size); in nfs4_block_decode_volume()
128 b->stripe.volumes_count = be32_to_cpup(p++); in nfs4_block_decode_volume()
129 if (b->stripe.volumes_count > PNFS_BLOCK_MAX_DEVICES) { in nfs4_block_decode_volume()
130 dprintk("Too many volumes: %d\n", b->stripe.volumes_count); in nfs4_block_decode_volume()
134 p = xdr_inline_decode(xdr, b->stripe.volumes_count * 4); in nfs4_block_decode_volume()
137 for (i = 0; i < b->stripe.volumes_count; i++) in nfs4_block_decode_volume()
138 b->stripe.volumes[i] = be32_to_cpup(p++); in nfs4_block_decode_volume()
214 /* truncate offset to the beginning of the stripe */ in bl_map_stripe()
217 /* disk offset of the stripe */ in bl_map_stripe()
453 d->children = kcalloc(v->stripe.volumes_count, in bl_parse_stripe()
[all …]
/kernel/linux/linux-6.6/fs/nfs/blocklayout/
Ddev.c127 p = xdr_decode_hyper(p, &b->stripe.chunk_size); in nfs4_block_decode_volume()
128 b->stripe.volumes_count = be32_to_cpup(p++); in nfs4_block_decode_volume()
129 if (b->stripe.volumes_count > PNFS_BLOCK_MAX_DEVICES) { in nfs4_block_decode_volume()
130 dprintk("Too many volumes: %d\n", b->stripe.volumes_count); in nfs4_block_decode_volume()
134 p = xdr_inline_decode(xdr, b->stripe.volumes_count * 4); in nfs4_block_decode_volume()
137 for (i = 0; i < b->stripe.volumes_count; i++) in nfs4_block_decode_volume()
138 b->stripe.volumes[i] = be32_to_cpup(p++); in nfs4_block_decode_volume()
214 /* truncate offset to the beginning of the stripe */ in bl_map_stripe()
217 /* disk offset of the stripe */ in bl_map_stripe()
435 d->children = kcalloc(v->stripe.volumes_count, in bl_parse_stripe()
[all …]
/kernel/linux/linux-6.6/tools/testing/selftests/ublk/
Dtest_stripe_04.sh9 _prep_test "stripe" "mkfs & mount & umount on zero copy"
13 dev_id=$(_add_ublk_dev -t stripe -z -q 2 "$backfile_0" "$backfile_1")
19 _cleanup_test "stripe"

1234567891011