]>
Commit | Line | Data |
---|---|---|
bf89f76e | 1 | Features: |
5e690c5c | 2 | ========= |
bf89f76e | 3 | |
80e54cb6 | 4 | * testsuite: |
80e54cb6 | 5 | - when fake delete_module() succeeds, remove its entry from /sys/module |
c8c956b1 LDM |
6 | |
7 | * review API, maybe unify all of these getters: | |
674f8590 GSB |
8 | - kmod_module_version_get_symbol() |
9 | - kmod_module_version_get_crc() | |
10 | - kmod_module_symbol_get_symbol() | |
11 | - kmod_module_symbol_get_crc() | |
12 | - kmod_module_dependency_symbol_get_symbol() | |
13 | - kmod_module_dependency_symbol_get_crc() | |
14 | - kmod_module_versions_free_list() | |
15 | - kmod_module_symbols_free_list() | |
c8c956b1 LDM |
16 | - kmod_module_dependency_symbols_free_list( |
17 | ||
18 | Main reason for this is that they need to open and read the module to get | |
19 | this information. If module is compressed, that means uncompressing + | |
20 | allocating necessary space + deallocating for each of them. depmod uses most | |
21 | of these functions and in the end it uncompresses the module ~6x times more | |
22 | than needed, which makes depmod very slow if compared to module-init-tools. | |
23 | ||
24 | We might want to either cache the elf file within kmod_module or create | |
25 | another struct that the user ref()/unref(). | |
674f8590 | 26 | |
a41b39fb LDM |
27 | * Stop using system() inside the library and use fork + exec instead |
28 | ||
80e54cb6 LDM |
29 | * config: configs that do not need to be matched by fnmatch() could be using a |
30 | vector instead of a list. This way we could search in it by calling | |
31 | bsearch(). | |
5e690c5c | 32 | |
80e54cb6 LDM |
33 | * index: drop the "open(), seek(), read()" implementation and use another one |
34 | with mmap(). When lookup() is called and the file is not mmaped, mmap it. | |
5e690c5c | 35 | |
9461893c LDM |
36 | * Implement actions in kmod tool like 'insert', 'remove', 'info', etc |
37 | ||
3af535c9 | 38 | Things to be added/removed in kernel (check what is really needed): |
5e690c5c LDM |
39 | =================================================================== |
40 | ||
41 | * list of currently loaded modules | |
80e54cb6 LDM |
42 | - readdir() in /sys/modules: dir without a 'initstate' file means the |
43 | module is builtin. | |
5e690c5c LDM |
44 | |
45 | * module's size should be available under /sys | |
758428a7 | 46 | - DONE in 3.3: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=cca3e707301862ca9b9327e6a732463982f8cd1b |
d68ea2ae | 47 | |
5e690c5c | 48 | * kill /proc/modules ? |
758428a7 | 49 | - Unlikely, given other tools might depend on it |
5a96c5f1 LDM |
50 | |
51 | Things that are different from module-init-tools on purpose (!TODO) | |
52 | =================================================================== | |
53 | ||
54 | modprobe | |
55 | -------- | |
56 | ||
57 | * 'modprobe -l' was marked as deprecated and does not exist anymore | |
58 | ||
59 | * 'modprobe -t' is gone, together with 'modprobe -l' | |
60 | ||
80e54cb6 | 61 | * there's and additional '--remove-dependencies' flags to modprobe so we |
5a96c5f1 LDM |
62 | can remove modules depending on that one |
63 | ||
80e54cb6 LDM |
64 | * modprobe doesn't parse configuration files with names not ending in |
65 | '.alias' or '.conf'. modprobe used to warn about these files. | |
5a96c5f1 | 66 | |
80e54cb6 | 67 | * modprobe doesn't parse 'config' and 'include' commands in configuration |
0ad5dd08 LDM |
68 | files. |
69 | ||
f564394f LDM |
70 | * modprobe from m-i-t does not honour softdeps for install commands. E.g.: |
71 | config: | |
72 | ||
73 | install bli "echo bli" | |
74 | install bla "echo bla" | |
75 | softdep bla pre: bli | |
76 | ||
77 | With m-i-t, the output of 'modprobe --show-depends bla' will be: | |
78 | install "echo bla" | |
79 | ||
80 | While with kmod: | |
81 | install "echo bli" | |
82 | install "echo bla" | |
83 | ||
bc43496a LDM |
84 | * kmod doesn't dump the configuration as is in the config files. Instead it |
85 | dumps the configuration as it was parsed. Therefore, comments and file names | |
86 | are not dumped, but on the good side we know what the exact configuration | |
87 | kmod is using. We did this because if we only want to know the entire content | |
88 | of configuration files, it's enough to use find(1) in modprobe.d directories | |
89 | ||
5a96c5f1 LDM |
90 | depmod |
91 | ------ | |
92 | ||
93 | * there's no 'depmod -m' option: legacy modules.*map files are gone | |
e85b6731 LDM |
94 | |
95 | lsmod | |
96 | ----- | |
97 | ||
98 | * information is parsed from /sys instead of /proc/modules |