Michal Hocko
19809c2da2
mm, vmalloc: use __GFP_HIGHMEM implicitly
...
__vmalloc* allows users to provide gfp flags for the underlying
allocation. This API is quite popular
$ git grep "=[[:space:]]__vmalloc\|return[[:space:]]*__vmalloc" | wc -l
77
The only problem is that many people are not aware that they really want
to give __GFP_HIGHMEM along with other flags because there is really no
reason to consume precious lowmemory on CONFIG_HIGHMEM systems for pages
which are mapped to the kernel vmalloc space. About half of users don't
use this flag, though. This signals that we make the API unnecessarily
too complex.
This patch simply uses __GFP_HIGHMEM implicitly when allocating pages to
be mapped to the vmalloc space. Current users which add __GFP_HIGHMEM
are simplified and drop the flag.
Link: http://lkml.kernel.org/r/20170307141020.29107-1-mhocko@kernel.org
Signed-off-by: Michal Hocko <mhocko@suse.com>
Reviewed-by: Matthew Wilcox <mawilcox@microsoft.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: David Rientjes <rientjes@google.com>
Cc: Cristopher Lameter <cl@linux.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2017-05-08 17:15:13 -07:00
..
bcache
drivers/md/bcache/super.c: use kvmalloc
2017-05-08 17:15:13 -07:00
persistent-data
dm block manager: remove an unused argument from dm_block_manager_create()
2017-04-27 17:08:41 -04:00
bitmap.c
md: fix several trivial typos in comments
2017-03-23 22:54:57 -07:00
bitmap.h
md: move bitmap_destroy to the beginning of __md_stop
2017-03-16 16:55:58 -07:00
dm-bio-prison-v1.c
dm bio prison v2: new interface for the bio prison
2017-03-07 11:30:16 -05:00
dm-bio-prison-v1.h
dm bio prison v2: new interface for the bio prison
2017-03-07 11:30:16 -05:00
dm-bio-prison-v2.c
dm bio prison v2: new interface for the bio prison
2017-03-07 11:30:16 -05:00
dm-bio-prison-v2.h
dm bio prison v2: new interface for the bio prison
2017-03-07 11:30:16 -05:00
dm-bio-record.h
dm-bufio.c
mm, vmalloc: use __GFP_HIGHMEM implicitly
2017-05-08 17:15:13 -07:00
dm-bufio.h
dm bufio: add sector start offset to dm-bufio interface
2017-03-07 13:28:33 -05:00
dm-builtin.c
dm-cache-background-tracker.c
dm cache: significant rework to leverage dm-bio-prison-v2
2017-03-07 13:28:31 -05:00
dm-cache-background-tracker.h
dm cache: significant rework to leverage dm-bio-prison-v2
2017-03-07 13:28:31 -05:00
dm-cache-block-types.h
linux: drop __bitwise__ everywhere
2016-12-16 00:13:41 +02:00
dm-cache-metadata.c
dm cache metadata: fail operations if fail_io mode has been established
2017-05-05 14:40:13 -04:00
dm-cache-metadata.h
dm cache: significant rework to leverage dm-bio-prison-v2
2017-03-07 13:28:31 -05:00
dm-cache-policy-internal.h
dm cache: significant rework to leverage dm-bio-prison-v2
2017-03-07 13:28:31 -05:00
dm-cache-policy-smq.c
dm cache policy smq: cleanup free_target_met() and clean_target_met()
2017-05-04 10:27:47 -04:00
dm-cache-policy.c
dm-cache-policy.h
dm cache: significant rework to leverage dm-bio-prison-v2
2017-03-07 13:28:31 -05:00
dm-cache-target.c
- A major update for DM cache that reduces the latency for deciding
2017-05-03 10:31:20 -07:00
dm-core.h
libnvdimm for 4.12
2017-05-05 18:49:20 -07:00
dm-crypt.c
- A major update for DM cache that reduces the latency for deciding
2017-05-03 10:31:20 -07:00
dm-delay.c
dm: mark targets that pass integrity data
2017-04-24 12:04:32 -04:00
dm-era-target.c
dm block manager: remove an unused argument from dm_block_manager_create()
2017-04-27 17:08:41 -04:00
dm-exception-store.c
dm-exception-store.h
dm-flakey.c
dm flakey: introduce "error_writes" feature
2016-12-13 15:01:31 -05:00
dm-integrity.c
dm integrity: use previously calculated log2 of sectors_per_block
2017-04-27 12:16:32 -04:00
dm-io.c
dm: support REQ_OP_WRITE_ZEROES
2017-04-08 11:25:38 -06:00
dm-ioctl.c
drivers/md/dm-ioctl.c: use kvmalloc rather than opencoded variant
2017-05-08 17:15:13 -07:00
dm-kcopyd.c
dm kcopyd: switch to use REQ_OP_WRITE_ZEROES
2017-04-08 11:25:38 -06:00
dm-linear.c
libnvdimm for 4.12
2017-05-05 18:49:20 -07:00
dm-log-userspace-base.c
dm-log-userspace-transfer.c
dm-log-userspace-transfer.h
dm-log-writes.c
Merge branch 'for-4.9/block' of git://git.kernel.dk/linux-block
2016-10-07 14:42:05 -07:00
dm-log.c
block,fs: use REQ_* flags directly
2016-11-01 09:43:26 -06:00
dm-mpath.c
- A major update for DM cache that reduces the latency for deciding
2017-05-03 10:31:20 -07:00
dm-mpath.h
dm-path-selector.c
dm-path-selector.h
dm-queue-length.c
dm-raid.c
- A major update for DM cache that reduces the latency for deciding
2017-05-03 10:31:20 -07:00
dm-raid1.c
block: remove the discard_zeroes_data flag
2017-04-08 11:25:38 -06:00
dm-region-hash.c
dm-round-robin.c
dm round robin: revert "use percpu 'repeat_count' and 'current_path'"
2017-02-17 00:54:09 -05:00
dm-rq.c
Merge branch 'for-linus' of git://git.kernel.dk/linux-block
2017-05-06 11:25:08 -07:00
dm-rq.h
dm: always defer request allocation to the owner of the request_queue
2017-01-27 15:08:35 -07:00
dm-service-time.c
dm-snap-persistent.c
block,fs: use REQ_* flags directly
2016-11-01 09:43:26 -06:00
dm-snap-transient.c
dm-snap.c
dm: teach dm-targets to use a dax_device + dax_operations
2017-04-25 13:20:36 -07:00
dm-stats.c
mm: introduce kv[mz]alloc helpers
2017-05-08 17:15:12 -07:00
dm-stats.h
dm-stripe.c
libnvdimm for 4.12
2017-05-05 18:49:20 -07:00
dm-switch.c
dm-sysfs.c
dm-table.c
- A major update for DM cache that reduces the latency for deciding
2017-05-03 10:31:20 -07:00
dm-target.c
libnvdimm for 4.12
2017-05-05 18:49:20 -07:00
dm-thin-metadata.c
dm block manager: remove an unused argument from dm_block_manager_create()
2017-04-27 17:08:41 -04:00
dm-thin-metadata.h
dm-thin.c
- A major update for DM cache that reduces the latency for deciding
2017-05-03 10:31:20 -07:00
dm-uevent.c
dm-uevent.h
dm-verity-fec.c
- A major update for DM cache that reduces the latency for deciding
2017-05-03 10:31:20 -07:00
dm-verity-fec.h
dm verity fec: limit error correction recursion
2017-03-16 09:37:31 -04:00
dm-verity-target.c
dm verity: switch to using asynchronous hash crypto API
2017-04-24 15:37:04 -04:00
dm-verity.h
dm verity: switch to using asynchronous hash crypto API
2017-04-24 15:37:04 -04:00
dm-zero.c
dm.c
libnvdimm for 4.12
2017-05-05 18:49:20 -07:00
dm.h
dm: introduce enum dm_queue_mode to cleanup related code
2017-04-27 17:08:44 -04:00
faulty.c
md: fast clone bio in bio_clone_mddev()
2017-02-15 11:24:54 -08:00
Kconfig
- DM cache metadata fixes to short-circuit operations that require the
2017-05-05 19:31:06 -07:00
linear.c
Merge branch 'md-next' into md-linus
2017-05-01 14:09:21 -07:00
linear.h
md linear: fix a race between linear_add() and linear_congested()
2017-02-13 09:17:50 -08:00
Makefile
- A major update for DM cache that reduces the latency for deciding
2017-05-03 10:31:20 -07:00
md-cluster.c
md-cluster: Fix a memleak in an error handling path
2017-04-14 08:08:29 -07:00
md-cluster.h
md-cluster: add the support for resize
2017-03-16 16:55:50 -07:00
md.c
md: handle read-only member devices better.
2017-04-20 13:25:51 -07:00
md.h
Merge branch 'md-next' into md-linus
2017-05-01 14:09:21 -07:00
multipath.c
md: support REQ_OP_WRITE_ZEROES
2017-04-08 11:25:38 -06:00
multipath.h
raid0.c
Merge branch 'md-next' into md-linus
2017-05-01 14:09:21 -07:00
raid0.h
raid1.c
Merge branch 'md-next' into md-linus
2017-05-01 14:09:21 -07:00
raid1.h
md/raid1: Use a new variable to count flighting sync requests
2017-04-27 14:01:16 -07:00
raid5-cache.c
- A major update for DM cache that reduces the latency for deciding
2017-05-03 10:31:20 -07:00
raid5-log.h
raid5-ppl: use resize_stripes() when enabling or disabling ppl
2017-04-10 12:00:49 -07:00
raid5-ppl.c
raid5-ppl: use a single mempool for ppl_io_unit and header_page
2017-04-11 14:56:46 -07:00
raid5.c
Merge branch 'md-next' into md-linus
2017-05-01 14:09:21 -07:00
raid5.h
- A major update for DM cache that reduces the latency for deciding
2017-05-03 10:31:20 -07:00
raid10.c
Merge branch 'md-next' into md-linus
2017-05-01 14:09:21 -07:00
raid10.h
md/raid10: simplify the splitting of requests.
2017-04-11 10:13:02 -07:00