[00/11] Use generic memory API instead of a custom one
mbox series

Message ID 20191113142335.1045631-1-cmaiolino@redhat.com
Headers show
Series
  • Use generic memory API instead of a custom one
Related show

Message

Carlos Maiolino Nov. 13, 2019, 2:23 p.m. UTC
Hi.

This patchset aims to remove most of XFS custom memory allocation mechanism and
replace it with generic memory interfaces. This includes:

- removing KM_* flags
- removing most of the kmem_* API, with the exception of 2 helpers (see the last
  two patches).

All mem alloc requests using KM_* flags, were replaced following these rules:

- KM_ZONE_* flags were directly replaced by their SLAB_* relative

- KM_NOFS: Replaced by GFP_NOFS
- KM_MAYFAIL: Replaced by __GFP_RETRY_MAYFAIL

- All memalloc requests made with no KM_* flags, like:
	kmem_alloc(item, 0);

  Have been replaced by GFP_KERNEL.

- Every memalloc request without KM_MAYFAIL have been replaced by __GFP_NOFAIL
  and the other flags OR'ed together.

These patches passed a few xfstests runs without issues.
Cheers


Carlos Maiolino (11):
  xfs: Remove slab init wrappers
  xfs: Remove kmem_zone_destroy() wrapper
  xfs: Remove kmem_zone_free() wrapper
  xfs: remove kmem_zone_zalloc()
  xfs: Remove kmem_zone_alloc() wrapper
  xfs: remove kmem_zalloc() wrapper
  xfs: Remove kmem_realloc
  xfs: Convert kmem_alloc() users
  xfs: rework kmem_alloc_{io,large} to use GFP_* flags
  xfs: Remove KM_* flags
  xfs: Remove kmem_alloc_{io, large} and kmem_zalloc_large

 fs/xfs/kmem.c                      | 134 +++-------------------
 fs/xfs/kmem.h                      |  93 +---------------
 fs/xfs/libxfs/xfs_alloc.c          |   3 +-
 fs/xfs/libxfs/xfs_alloc_btree.c    |   2 +-
 fs/xfs/libxfs/xfs_attr_leaf.c      |  11 +-
 fs/xfs/libxfs/xfs_bmap.c           |   8 +-
 fs/xfs/libxfs/xfs_bmap_btree.c     |   2 +-
 fs/xfs/libxfs/xfs_btree.c          |   2 +-
 fs/xfs/libxfs/xfs_da_btree.c       |  18 +--
 fs/xfs/libxfs/xfs_defer.c          |   4 +-
 fs/xfs/libxfs/xfs_dir2.c           |  20 ++--
 fs/xfs/libxfs/xfs_dir2_block.c     |   2 +-
 fs/xfs/libxfs/xfs_dir2_sf.c        |   8 +-
 fs/xfs/libxfs/xfs_ialloc_btree.c   |   2 +-
 fs/xfs/libxfs/xfs_iext_tree.c      |  14 ++-
 fs/xfs/libxfs/xfs_inode_fork.c     |  32 +++---
 fs/xfs/libxfs/xfs_refcount.c       |   9 +-
 fs/xfs/libxfs/xfs_refcount_btree.c |   2 +-
 fs/xfs/libxfs/xfs_rmap.c           |   2 +-
 fs/xfs/libxfs/xfs_rmap_btree.c     |   2 +-
 fs/xfs/scrub/agheader.c            |   4 +-
 fs/xfs/scrub/attr.c                |  10 +-
 fs/xfs/scrub/attr.h                |   3 +-
 fs/xfs/scrub/bitmap.c              |   7 +-
 fs/xfs/scrub/btree.c               |   4 +-
 fs/xfs/scrub/fscounters.c          |   3 +-
 fs/xfs/scrub/refcount.c            |   4 +-
 fs/xfs/scrub/symlink.c             |   3 +-
 fs/xfs/xfs_acl.c                   |   3 +-
 fs/xfs/xfs_attr_inactive.c         |   2 +-
 fs/xfs/xfs_attr_list.c             |   2 +-
 fs/xfs/xfs_bmap_item.c             |   8 +-
 fs/xfs/xfs_buf.c                   |  35 +++---
 fs/xfs/xfs_buf_item.c              |  10 +-
 fs/xfs/xfs_dquot.c                 |  20 ++--
 fs/xfs/xfs_dquot_item.c            |   3 +-
 fs/xfs/xfs_error.c                 |   4 +-
 fs/xfs/xfs_extent_busy.c           |   3 +-
 fs/xfs/xfs_extfree_item.c          |  16 +--
 fs/xfs/xfs_filestream.c            |   2 +-
 fs/xfs/xfs_icache.c                |   6 +-
 fs/xfs/xfs_icreate_item.c          |   4 +-
 fs/xfs/xfs_inode.c                 |   4 +-
 fs/xfs/xfs_inode_item.c            |   5 +-
 fs/xfs/xfs_ioctl.c                 |   8 +-
 fs/xfs/xfs_ioctl32.c               |   3 +-
 fs/xfs/xfs_itable.c                |   8 +-
 fs/xfs/xfs_iwalk.c                 |   5 +-
 fs/xfs/xfs_log.c                   |  19 ++--
 fs/xfs/xfs_log_cil.c               |  10 +-
 fs/xfs/xfs_log_priv.h              |   2 +-
 fs/xfs/xfs_log_recover.c           |  24 ++--
 fs/xfs/xfs_mount.c                 |   7 +-
 fs/xfs/xfs_mru_cache.c             |   5 +-
 fs/xfs/xfs_qm.c                    |   6 +-
 fs/xfs/xfs_refcount_item.c         |  12 +-
 fs/xfs/xfs_rmap_item.c             |  12 +-
 fs/xfs/xfs_rtalloc.c               |   5 +-
 fs/xfs/xfs_super.c                 | 171 ++++++++++++++++-------------
 fs/xfs/xfs_trace.h                 |   1 -
 fs/xfs/xfs_trans.c                 |   6 +-
 fs/xfs/xfs_trans_ail.c             |   3 +-
 fs/xfs/xfs_trans_dquot.c           |   5 +-
 63 files changed, 353 insertions(+), 494 deletions(-)