Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

dm vdo: move indexer files into sub-directory

The goal is to assist high-level understanding of which code is
conceptually specific to VDO's indexer.

Signed-off-by: Mike Snitzer <snitzer@kernel.org>
Signed-off-by: Matthew Sakai <msakai@redhat.com>

+77 -56
+18 -16
drivers/md/dm-vdo/Makefile
··· 1 1 # SPDX-License-Identifier: GPL-2.0-only 2 2 3 + ccflags-y := -I$(srctree)/$(src) -I$(srctree)/$(src)/indexer 4 + 3 5 obj-$(CONFIG_DM_VDO) += dm-vdo.o 4 6 5 7 dm-vdo-objs := \ 6 8 action-manager.o \ 7 9 admin-state.o \ 8 10 block-map.o \ 9 - chapter-index.o \ 10 11 completion.o \ 11 - config.o \ 12 12 data-vio.o \ 13 13 dedupe.o \ 14 - delta-index.o \ 15 14 dm-vdo-target.o \ 16 15 dump.o \ 17 16 encodings.o \ 18 17 errors.o \ 19 18 flush.o \ 20 19 funnel-queue.o \ 21 - funnel-requestqueue.o \ 22 20 funnel-workqueue.o \ 23 - geometry.o \ 24 - index-layout.o \ 25 - index.o \ 26 - index-page-map.o \ 27 - index-session.o \ 28 21 int-map.o \ 29 - io-factory.o \ 30 22 io-submitter.o \ 31 23 logger.o \ 32 24 logical-zone.o \ 33 25 memory-alloc.o \ 34 26 message-stats.o \ 35 27 murmurhash3.o \ 36 - open-chapter.o \ 37 28 packer.o \ 38 29 permassert.o \ 39 30 physical-zone.o \ 40 31 pool-sysfs.o \ 41 32 pool-sysfs-stats.o \ 42 33 priority-table.o \ 43 - radix-sort.o \ 44 34 recovery-journal.o \ 45 35 repair.o \ 46 36 slab-depot.o \ 47 - sparse-cache.o \ 48 37 status-codes.o \ 49 38 string-utils.o \ 50 39 sysfs.o \ ··· 43 54 uds-sysfs.o \ 44 55 vdo.o \ 45 56 vio.o \ 46 - volume-index.o \ 47 - volume.o \ 48 - wait-queue.o 57 + wait-queue.o \ 58 + indexer/chapter-index.o \ 59 + indexer/config.o \ 60 + indexer/delta-index.o \ 61 + indexer/funnel-requestqueue.o \ 62 + indexer/geometry.o \ 63 + indexer/index.o \ 64 + indexer/index-layout.o \ 65 + indexer/index-page-map.o \ 66 + indexer/index-session.o \ 67 + indexer/io-factory.o \ 68 + indexer/open-chapter.o \ 69 + indexer/radix-sort.o \ 70 + indexer/sparse-cache.o \ 71 + indexer/volume.o \ 72 + indexer/volume-index.o
+3 -2
drivers/md/dm-vdo/chapter-index.c drivers/md/dm-vdo/indexer/chapter-index.c
··· 6 6 #include "chapter-index.h" 7 7 8 8 #include "errors.h" 9 - #include "hash-utils.h" 10 - #include "indexer.h" 11 9 #include "logger.h" 12 10 #include "memory-alloc.h" 13 11 #include "permassert.h" 12 + 13 + #include "hash-utils.h" 14 + #include "indexer.h" 14 15 15 16 int uds_make_open_chapter_index(struct open_chapter_index **chapter_index, 16 17 const struct index_geometry *geometry, u64 volume_nonce)
drivers/md/dm-vdo/chapter-index.h drivers/md/dm-vdo/indexer/chapter-index.h
drivers/md/dm-vdo/config.c drivers/md/dm-vdo/indexer/config.c
drivers/md/dm-vdo/config.h drivers/md/dm-vdo/indexer/config.h
+2 -1
drivers/md/dm-vdo/data-vio.h
··· 10 10 #include <linux/bio.h> 11 11 #include <linux/list.h> 12 12 13 - #include "indexer.h" 14 13 #include "permassert.h" 14 + 15 + #include "indexer.h" 15 16 16 17 #include "block-map.h" 17 18 #include "completion.h"
+2 -1
drivers/md/dm-vdo/dedupe.c
··· 126 126 #include <linux/spinlock.h> 127 127 #include <linux/timer.h> 128 128 129 - #include "indexer.h" 130 129 #include "logger.h" 131 130 #include "memory-alloc.h" 132 131 #include "numeric.h" 133 132 #include "permassert.h" 134 133 #include "string-utils.h" 134 + 135 + #include "indexer.h" 135 136 136 137 #include "action-manager.h" 137 138 #include "admin-state.h"
+3 -2
drivers/md/dm-vdo/delta-index.c drivers/md/dm-vdo/indexer/delta-index.c
··· 10 10 #include <linux/limits.h> 11 11 #include <linux/log2.h> 12 12 13 - #include "config.h" 14 13 #include "cpu.h" 15 14 #include "errors.h" 16 - #include "indexer.h" 17 15 #include "logger.h" 18 16 #include "memory-alloc.h" 19 17 #include "numeric.h" 20 18 #include "permassert.h" 21 19 #include "string-utils.h" 22 20 #include "time-utils.h" 21 + 22 + #include "config.h" 23 + #include "indexer.h" 23 24 24 25 /* 25 26 * The entries in a delta index could be stored in a single delta list, but to reduce search times
+3 -2
drivers/md/dm-vdo/delta-index.h drivers/md/dm-vdo/indexer/delta-index.h
··· 8 8 9 9 #include <linux/cache.h> 10 10 11 - #include "config.h" 12 - #include "io-factory.h" 13 11 #include "numeric.h" 14 12 #include "time-utils.h" 13 + 14 + #include "config.h" 15 + #include "io-factory.h" 15 16 16 17 /* 17 18 * A delta index is a key-value store, where each entry maps an address (the key) to a payload (the
drivers/md/dm-vdo/funnel-requestqueue.c drivers/md/dm-vdo/indexer/funnel-requestqueue.c
drivers/md/dm-vdo/funnel-requestqueue.h drivers/md/dm-vdo/indexer/funnel-requestqueue.h
+3 -2
drivers/md/dm-vdo/geometry.c drivers/md/dm-vdo/indexer/geometry.c
··· 8 8 #include <linux/compiler.h> 9 9 #include <linux/log2.h> 10 10 11 - #include "delta-index.h" 12 11 #include "errors.h" 13 - #include "indexer.h" 14 12 #include "logger.h" 15 13 #include "memory-alloc.h" 16 14 #include "permassert.h" 15 + 16 + #include "delta-index.h" 17 + #include "indexer.h" 17 18 18 19 /* 19 20 * An index volume is divided into a fixed number of fixed-size chapters, each consisting of a
drivers/md/dm-vdo/geometry.h drivers/md/dm-vdo/indexer/geometry.h
+2 -1
drivers/md/dm-vdo/hash-utils.h drivers/md/dm-vdo/indexer/hash-utils.h
··· 6 6 #ifndef UDS_HASH_UTILS_H 7 7 #define UDS_HASH_UTILS_H 8 8 9 + #include "numeric.h" 10 + 9 11 #include "geometry.h" 10 12 #include "indexer.h" 11 - #include "numeric.h" 12 13 13 14 /* Utilities for extracting portions of a request name for various uses. */ 14 15
+3 -2
drivers/md/dm-vdo/index-layout.c drivers/md/dm-vdo/indexer/index-layout.c
··· 7 7 8 8 #include <linux/random.h> 9 9 10 - #include "config.h" 11 10 #include "logger.h" 12 11 #include "memory-alloc.h" 13 12 #include "murmurhash3.h" 14 13 #include "numeric.h" 15 - #include "open-chapter.h" 16 14 #include "time-utils.h" 15 + 16 + #include "config.h" 17 + #include "open-chapter.h" 17 18 #include "volume-index.h" 18 19 19 20 /*
drivers/md/dm-vdo/index-layout.h drivers/md/dm-vdo/indexer/index-layout.h
+3 -2
drivers/md/dm-vdo/index-page-map.c drivers/md/dm-vdo/indexer/index-page-map.c
··· 6 6 #include "index-page-map.h" 7 7 8 8 #include "errors.h" 9 - #include "hash-utils.h" 10 - #include "indexer.h" 11 9 #include "logger.h" 12 10 #include "memory-alloc.h" 13 11 #include "numeric.h" 14 12 #include "permassert.h" 15 13 #include "string-utils.h" 16 14 #include "thread-utils.h" 15 + 16 + #include "hash-utils.h" 17 + #include "indexer.h" 17 18 18 19 /* 19 20 * The index page map is conceptually a two-dimensional array indexed by chapter number and index
drivers/md/dm-vdo/index-page-map.h drivers/md/dm-vdo/indexer/index-page-map.h
+4 -3
drivers/md/dm-vdo/index-session.c drivers/md/dm-vdo/indexer/index-session.c
··· 7 7 8 8 #include <linux/atomic.h> 9 9 10 - #include "funnel-requestqueue.h" 11 - #include "index.h" 12 - #include "index-layout.h" 13 10 #include "logger.h" 14 11 #include "memory-alloc.h" 15 12 #include "time-utils.h" 13 + 14 + #include "funnel-requestqueue.h" 15 + #include "index.h" 16 + #include "index-layout.h" 16 17 17 18 /* 18 19 * The index session contains a lock (the request_mutex) which ensures that only one thread can
+2 -1
drivers/md/dm-vdo/index-session.h drivers/md/dm-vdo/indexer/index-session.h
··· 9 9 #include <linux/atomic.h> 10 10 #include <linux/cache.h> 11 11 12 + #include "thread-utils.h" 13 + 12 14 #include "config.h" 13 15 #include "indexer.h" 14 - #include "thread-utils.h" 15 16 16 17 /* 17 18 * The index session mediates all interactions with a UDS index. Once the index session is created,
+3 -2
drivers/md/dm-vdo/index.c drivers/md/dm-vdo/indexer/index.c
··· 6 6 7 7 #include "index.h" 8 8 9 - #include "funnel-requestqueue.h" 10 - #include "hash-utils.h" 11 9 #include "logger.h" 12 10 #include "memory-alloc.h" 11 + 12 + #include "funnel-requestqueue.h" 13 + #include "hash-utils.h" 13 14 #include "sparse-cache.h" 14 15 15 16 static const u64 NO_LAST_SAVE = U64_MAX;
drivers/md/dm-vdo/index.h drivers/md/dm-vdo/indexer/index.h
drivers/md/dm-vdo/indexer.h drivers/md/dm-vdo/indexer/indexer.h
drivers/md/dm-vdo/io-factory.c drivers/md/dm-vdo/indexer/io-factory.c
drivers/md/dm-vdo/io-factory.h drivers/md/dm-vdo/indexer/io-factory.h
+3 -2
drivers/md/dm-vdo/open-chapter.c drivers/md/dm-vdo/indexer/open-chapter.c
··· 7 7 8 8 #include <linux/log2.h> 9 9 10 - #include "config.h" 11 - #include "hash-utils.h" 12 10 #include "logger.h" 13 11 #include "memory-alloc.h" 14 12 #include "numeric.h" 15 13 #include "permassert.h" 14 + 15 + #include "config.h" 16 + #include "hash-utils.h" 16 17 17 18 /* 18 19 * Each index zone has a dedicated open chapter zone structure which gets an equal share of the
drivers/md/dm-vdo/open-chapter.h drivers/md/dm-vdo/indexer/open-chapter.h
drivers/md/dm-vdo/radix-sort.c drivers/md/dm-vdo/indexer/radix-sort.c
drivers/md/dm-vdo/radix-sort.h drivers/md/dm-vdo/indexer/radix-sort.h
+4 -3
drivers/md/dm-vdo/sparse-cache.c drivers/md/dm-vdo/indexer/sparse-cache.c
··· 9 9 #include <linux/delay.h> 10 10 #include <linux/dm-bufio.h> 11 11 12 - #include "chapter-index.h" 13 - #include "config.h" 14 - #include "index.h" 15 12 #include "logger.h" 16 13 #include "memory-alloc.h" 17 14 #include "permassert.h" 15 + 16 + #include "chapter-index.h" 17 + #include "config.h" 18 + #include "index.h" 18 19 19 20 /* 20 21 * Since the cache is small, it is implemented as a simple array of cache entries. Searching for a
drivers/md/dm-vdo/sparse-cache.h drivers/md/dm-vdo/indexer/sparse-cache.h
+2 -1
drivers/md/dm-vdo/uds-sysfs.c
··· 9 9 #include <linux/module.h> 10 10 #include <linux/slab.h> 11 11 12 - #include "indexer.h" 13 12 #include "logger.h" 14 13 #include "memory-alloc.h" 15 14 #include "string-utils.h" 15 + 16 + #include "indexer.h" 16 17 17 18 #define UDS_SYSFS_NAME "uds" 18 19
+5 -4
drivers/md/dm-vdo/volume-index.c drivers/md/dm-vdo/indexer/volume-index.c
··· 10 10 #include <linux/compiler.h> 11 11 #include <linux/log2.h> 12 12 13 - #include "config.h" 14 13 #include "errors.h" 15 - #include "geometry.h" 16 - #include "hash-utils.h" 17 - #include "indexer.h" 18 14 #include "logger.h" 19 15 #include "memory-alloc.h" 20 16 #include "numeric.h" 21 17 #include "permassert.h" 22 18 #include "thread-utils.h" 19 + 20 + #include "config.h" 21 + #include "geometry.h" 22 + #include "hash-utils.h" 23 + #include "indexer.h" 23 24 24 25 /* 25 26 * The volume index is a combination of two separate subindexes, one containing sparse hook entries
+2 -1
drivers/md/dm-vdo/volume-index.h drivers/md/dm-vdo/indexer/volume-index.h
··· 8 8 9 9 #include <linux/limits.h> 10 10 11 + #include "thread-utils.h" 12 + 11 13 #include "config.h" 12 14 #include "delta-index.h" 13 15 #include "indexer.h" 14 - #include "thread-utils.h" 15 16 16 17 /* 17 18 * The volume index is the primary top-level index for UDS. It contains records which map a record
+7 -6
drivers/md/dm-vdo/volume.c drivers/md/dm-vdo/indexer/volume.c
··· 9 9 #include <linux/dm-bufio.h> 10 10 #include <linux/err.h> 11 11 12 - #include "chapter-index.h" 13 - #include "config.h" 14 12 #include "errors.h" 15 - #include "geometry.h" 16 - #include "hash-utils.h" 17 - #include "index.h" 18 13 #include "logger.h" 19 14 #include "memory-alloc.h" 20 15 #include "permassert.h" 21 - #include "sparse-cache.h" 22 16 #include "string-utils.h" 23 17 #include "thread-utils.h" 18 + 19 + #include "chapter-index.h" 20 + #include "config.h" 21 + #include "geometry.h" 22 + #include "hash-utils.h" 23 + #include "index.h" 24 + #include "sparse-cache.h" 24 25 25 26 /* 26 27 * The first block of the volume layout is reserved for the volume header, which is no longer used.
+3 -2
drivers/md/dm-vdo/volume.h drivers/md/dm-vdo/indexer/volume.h
··· 11 11 #include <linux/dm-bufio.h> 12 12 #include <linux/limits.h> 13 13 14 + #include "permassert.h" 15 + #include "thread-utils.h" 16 + 14 17 #include "chapter-index.h" 15 18 #include "config.h" 16 19 #include "geometry.h" 17 20 #include "indexer.h" 18 21 #include "index-layout.h" 19 22 #include "index-page-map.h" 20 - #include "permassert.h" 21 23 #include "radix-sort.h" 22 24 #include "sparse-cache.h" 23 - #include "thread-utils.h" 24 25 25 26 /* 26 27 * The volume manages deduplication records on permanent storage. The term "volume" can also refer