On 27/04/21 11:59 am, Christoph Hellwig wrote:
On Sat, Apr 24, 2021 at 02:21:36AM +0530, Shreeya Patel wrote:
utf8data.h_shipped has a large database table which is an auto-generated
decodification trie for the unicode normalization functions.
We can avoid carrying this large table in the kernel unless it is required
by the filesystem during boot process.
Hence, make UTF-8 encoding loadable by converting it into a module and
also add built-in UTF-8 support option for compiling it into the
kernel whenever required by the filesystem.
The way this is implemement looks rather awkward.
Given that the large memory usage is for a data table and not for code,
why not treat is as a firmware blob and load it using request_firmware?
utf8 module not just has the data table but also has some kernel code.
The big part that we are trying to keep out of the kernel is a tree
structure that gets traversed based on a key that is the file name.
This is done when issuing a lookup in the filesystem, which has to be
very fast. So maybe it would not be so good to use request_firmware for
such a core feature.