Select the types of activity you want to include in your feed.
dm vdo: remove internal ticket references
Signed-off-by: Susan LeGendre-McGhee <slegendr@redhat.com> Signed-off-by: Matthew Sakai <msakai@redhat.com> Signed-off-by: Mike Snitzer <snitzer@kernel.org>
···542542543543 /*544544 * Increment the busy count once for each pending completion so that this page does not545545- * stop being busy until all completions have been processed (VDO-83).545545+ * stop being busy until all completions have been processed.546546 */547547 info->busy += num_pages;548548···10971097 struct vdo_page_cache *cache = ((struct page_info *) flush_completion->parent)->cache;1098109810991099 /*11001100- * We need to cache these two values on the stack since in the error case below, it is11011101- * possible for the last page info to cause the page cache to get freed. Hence once we11021102- * launch the last page, it may be unsafe to dereference the cache [VDO-4724].11001100+ * We need to cache these two values on the stack since it is possible for the last11011101+ * page info to cause the page cache to get freed. Hence once we launch the last page,11021102+ * it may be unsafe to dereference the cache.11031103 */11041104 bool has_unflushed_pages = (cache->pages_to_flush > 0);11051105 page_count_t pages_in_flush = cache->pages_in_flush;
+5-4
drivers/md/dm-vdo/data-vio.c
···453453454454 /*455455 * If the new request is a pure read request (not read-modify-write) and the lock_holder is456456- * writing and has received an allocation (VDO-2683), service the read request immediately457457- * by copying data from the lock_holder to avoid having to flush the write out of the458458- * packer just to prevent the read from waiting indefinitely. If the lock_holder does not459459- * yet have an allocation, prevent it from blocking in the packer and wait on it.456456+ * writing and has received an allocation, service the read request immediately by copying457457+ * data from the lock_holder to avoid having to flush the write out of the packer just to458458+ * prevent the read from waiting indefinitely. If the lock_holder does not yet have an459459+ * allocation, prevent it from blocking in the packer and wait on it. This is necessary in460460+ * order to prevent returning data that may not have actually been written.460461 */461462 if (!data_vio->write && READ_ONCE(lock_holder->allocation_succeeded)) {462463 copy_to_bio(data_vio->user_bio, lock_holder->vio.data + data_vio->offset);
+5-7
drivers/md/dm-vdo/dm-vdo-target.c
···945945 * Sets the maximum discard size that will be passed into VDO. This value comes from a946946 * table line value passed in during dmsetup create.947947 *948948- * The value 1024 is the largest usable value on HD systems. A 2048 sector discard on a949949- * busy HD system takes 31 seconds. We should use a value no higher than 1024, which takes950950- * 15 to 16 seconds on a busy HD system.951951- *952952- * But using large values results in 120 second blocked task warnings in /var/log/kern.log.953953- * In order to avoid these warnings, we choose to use the smallest reasonable value. See954954- * VDO-3062 and VDO-3087.948948+ * The value 1024 is the largest usable value on HD systems. A 2048 sector discard on a949949+ * busy HD system takes 31 seconds. We should use a value no higher than 1024, which takes950950+ * 15 to 16 seconds on a busy HD system. However, using large values results in 120 second951951+ * blocked task warnings in kernel logs. In order to avoid these warnings, we choose to952952+ * use the smallest reasonable value.955953 *956954 * The value is displayed in sysfs, and also used by dm-thin to determine whether to pass957955 * down discards. The block layer splits large discards on this boundary when this is set.
+4-4
drivers/md/dm-vdo/memory-alloc.c
···235235 if (p == NULL) {236236 /*237237 * It is possible for kmalloc to fail to allocate memory because there is238238- * no page available (see VDO-3688). A short sleep may allow the page239239- * reclaimer to free a page.238238+ * no page available. A short sleep may allow the page reclaimer to239239+ * free a page.240240 */241241 fsleep(1000);242242 p = kmalloc(size, gfp_flags);···251251 UDS_SUCCESS) {252252 /*253253 * It is possible for __vmalloc to fail to allocate memory because there254254- * are no pages available (see VDO-3661). A short sleep may allow the page255255- * reclaimer to free enough pages for a small allocation.254254+ * are no pages available. A short sleep may allow the page reclaimer255255+ * to free enough pages for a small allocation.256256 *257257 * For larger allocations, the page_alloc code is racing against the page258258 * reclaimer. If the page reclaimer can stay ahead of page_alloc, the
+7-9
drivers/md/dm-vdo/packer.c
···595595 }596596597597 /*598598- * The check of may_vio_block_in_packer() here will set the data_vio's compression state to599599- * VIO_PACKING if the data_vio is allowed to be compressed (if it has already been600600- * canceled, we'll fall out here). Once the data_vio is in the VIO_PACKING state, it must601601- * be guaranteed to be put in a bin before any more requests can be processed by the packer602602- * thread. Otherwise, a canceling data_vio could attempt to remove the canceled data_vio603603- * from the packer and fail to rendezvous with it (VDO-2809). We must also make sure that604604- * we will actually bin the data_vio and not give up on it as being larger than the space605605- * used in the fullest bin. Hence we must call select_bin() before calling606606- * may_vio_block_in_packer() (VDO-2826).598598+ * The advance_data_vio_compression_stage() check here verifies that the data_vio is599599+ * allowed to be compressed (if it has already been canceled, we'll fall out here). Once600600+ * the data_vio is in the DATA_VIO_PACKING state, it must be guaranteed to be put in a bin601601+ * before any more requests can be processed by the packer thread. Otherwise, a canceling602602+ * data_vio could attempt to remove the canceled data_vio from the packer and fail to603603+ * rendezvous with it. Thus, we must call select_bin() first to ensure that we will604604+ * actually add the data_vio to a bin before advancing to the DATA_VIO_PACKING stage.607605 */608606 bin = select_bin(packer, data_vio);609607 if ((bin == NULL) ||
+1-1
drivers/md/dm-vdo/packer.h
···5858 *5959 * There is one special bin which is used to hold data_vios which have been canceled and removed6060 * from their bin by the packer. These data_vios need to wait for the canceller to rendezvous with6161- * them (VDO-2809) and so they sit in this special bin.6161+ * them and so they sit in this special bin.6262 */6363struct packer_bin {6464 /* List links for packer.packer_bins */
+2-2
drivers/md/dm-vdo/repair.c
···15041504static noinline int compute_usages(struct repair_completion *repair)15051505{15061506 /*15071507- * VDO-5182: function is declared noinline to avoid what is likely a spurious valgrind15081508- * error about this structure being uninitialized.15071507+ * This function is declared noinline to avoid a spurious valgrind error regarding the15081508+ * following structure being uninitialized.15091509 */15101510 struct recovery_point recovery_point = {15111511 .sequence_number = repair->tail,
+11-5
drivers/md/dm-vdo/slab-depot.c
···334334335335 /*336336 * Flush before writing to ensure that the slab journal tail blocks and reference updates337337- * covered by this summary update are stable (VDO-2332).337337+ * covered by this summary update are stable. Otherwise, a subsequent recovery could338338+ * encounter a slab summary update that refers to a slab journal tail block that has not339339+ * actually been written. In such cases, the slab journal referenced will be treated as340340+ * empty, causing any data within the slab which predates the existing recovery journal341341+ * entries to be lost.338342 */339343 pbn = (depot->summary_origin +340344 (VDO_SLAB_SUMMARY_BLOCKS_PER_ZONE * allocator->zone_number) +···503499 * journal block writes can be issued while previous slab summary updates have not yet been504500 * made. Even though those slab journal block writes will be ignored if the slab summary505501 * update is not persisted, they may still overwrite the to-be-reaped slab journal block506506- * resulting in a loss of reference count updates (VDO-2912).502502+ * resulting in a loss of reference count updates.507503 */508504 journal->flush_waiter.callback = flush_for_reaping;509505 acquire_vio_from_pool(journal->slab->allocator->vio_pool,···774770775771 /*776772 * This block won't be read in recovery until the slab summary is updated to refer to it.777777- * The slab summary update does a flush which is sufficient to protect us from VDO-2331.773773+ * The slab summary update does a flush which is sufficient to protect us from corruption774774+ * due to out of order slab journal, reference block, or block map writes.778775 */779776 vdo_submit_metadata_vio(uds_forget(vio), block_number, write_slab_journal_endio,780777 complete_write, REQ_OP_WRITE);···1206120112071202 /*12081203 * Flush before writing to ensure that the recovery journal and slab journal entries which12091209- * cover this reference update are stable (VDO-2331).12041204+ * cover this reference update are stable. This prevents data corruption that can be caused12051205+ * by out of order writes.12101206 */12111207 WRITE_ONCE(block->slab->allocator->ref_counts_statistics.blocks_written,12121208 block->slab->allocator->ref_counts_statistics.blocks_written + 1);···17811775 (journal->slab->status == VDO_SLAB_REBUILDING)) {17821776 /*17831777 * Don't add entries while rebuilding or while a partial write is17841784- * outstanding (VDO-2399).17781778+ * outstanding, as it could result in reference count corruption.17851779 */17861780 break;17871781 }
+1-1
drivers/md/dm-vdo/sparse-cache.c
···191191 * happens, sleep briefly to avoid keeping the CPU locked up in192192 * this loop. We could just call cond_resched, but then we'd193193 * still keep consuming CPU time slices and swamp other threads194194- * trying to do computational work. [VDO-4980]194194+ * trying to do computational work.195195 */196196 fsleep(1000);197197 }
+1-1
drivers/md/dm-vdo/vdo.c
···544544 int result;545545 struct vdo *vdo;546546547547- /* VDO-3769 - Set a generic reason so we don't ever return garbage. */547547+ /* Initialize with a generic failure reason to prevent returning garbage. */548548 *reason = "Unspecified error";549549550550 result = uds_allocate(1, struct vdo, __func__, &vdo);
-1
drivers/md/dm-vdo/vio.c
···123123 struct vio *vio;124124 int result;125125126126- /* If struct vio grows past 256 bytes, we'll lose benefits of VDOSTORY-176. */127126 BUILD_BUG_ON(sizeof(struct vio) > 256);128127129128 /*