From: Gao Xiang <gaoxiang25@xxxxxxxxxx> As Christoph said [1], "vm_map_ram is supposed to generally behave better. So if it doesn't please report that that to the arch maintainer and linux-mm so that they can look into the issue. Having user make choices of deep down kernel internals is just a horrible interface. Please talk to maintainers of other bits of the kernel if you see issues and / or need enhancements. " Let's redo the previous conclusion and kill the vmap approach. [1] https://lore.kernel.org/r/20190830165533.GA10909@xxxxxxxxxxxxx/ Reported-by: Christoph Hellwig <hch@xxxxxxxxxxxxx> Signed-off-by: Gao Xiang <gaoxiang25@xxxxxxxxxx> --- Documentation/filesystems/erofs.txt | 4 ---- fs/erofs/decompressor.c | 12 +----------- 2 files changed, 1 insertion(+), 15 deletions(-) diff --git a/Documentation/filesystems/erofs.txt b/Documentation/filesystems/erofs.txt index c3b5f603b2b6..b0c085326e2e 100644 --- a/Documentation/filesystems/erofs.txt +++ b/Documentation/filesystems/erofs.txt @@ -67,10 +67,6 @@ cache_strategy=%s Select a strategy for cached decompression from now on: It still does in-place I/O decompression for the rest compressed physical clusters. -Module parameters -================= -use_vmap=[0|1] Use vmap() instead of vm_map_ram() (default 0). - On-disk details =============== diff --git a/fs/erofs/decompressor.c b/fs/erofs/decompressor.c index bb2944c96c89..af273d89e62c 100644 --- a/fs/erofs/decompressor.c +++ b/fs/erofs/decompressor.c @@ -28,10 +28,6 @@ struct z_erofs_decompressor { char *name; }; -static bool use_vmap; -module_param(use_vmap, bool, 0444); -MODULE_PARM_DESC(use_vmap, "Use vmap() instead of vm_map_ram() (default 0)"); - static int z_erofs_lz4_prepare_destpages(struct z_erofs_decompress_req *rq, struct list_head *pagepool) { @@ -224,9 +220,6 @@ static void *erofs_vmap(struct page **pages, unsigned int count) { int i = 0; - if (use_vmap) - return vmap(pages, count, VM_MAP, PAGE_KERNEL); - while (1) { void *addr = vm_map_ram(pages, count, -1, PAGE_KERNEL); @@ -240,10 +233,7 @@ static void *erofs_vmap(struct page **pages, unsigned int count) static void erofs_vunmap(const void *mem, unsigned int count) { - if (!use_vmap) - vm_unmap_ram(mem, count); - else - vunmap(mem); + vm_unmap_ram(mem, count); } static int z_erofs_decompress_generic(struct z_erofs_decompress_req *rq, -- 2.17.1 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel