linux/drivers/md
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
bitmap.h
dm-bio-prison-v1.c
dm-bio-prison-v1.h
dm-bio-prison-v2.c
dm-bio-prison-v2.h
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-builtin.c
dm-cache-background-tracker.c
dm-cache-background-tracker.h
dm-cache-block-types.h
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-policy-internal.h
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-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-integrity.c dm integrity: use previously calculated log2 of sectors_per_block 2017-04-27 12:16:32 -04:00
dm-io.c
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-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
dm-log.c
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-raid1.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-region-hash.c
dm-round-robin.c
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-service-time.c
dm-snap-persistent.c
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-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
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
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.h
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
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.c
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