Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1542765
| From | Michal Hocko <mhocko@kernel.org> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH 2/9] xfs: introduce and use KM_NOLOCKDEP to silence reclaim lockdep false positives |
| Date | 2016-12-15 15:20 +0100 |
| Message-ID | <sOF33-6KZ-13@gated-at.bofh.it> (permalink) |
| References | <sOETn-6HQ-5@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
From: Michal Hocko <mhocko@suse.com>
Now that the page allocator offers __GFP_NOLOCKDEP let's introduce
KM_NOLOCKDEP alias for the xfs allocation APIs. While we are at it
also change KM_NOFS users introduced by b17cb364dbbb ("xfs: fix missing
KM_NOFS tags to keep lockdep happy") and use the new flag for them
instead. There is really no reason to make these allocations contexts
weaker just because of the lockdep which even might not be enabled
in most cases.
Signed-off-by: Michal Hocko <mhocko@suse.com>
---
fs/xfs/kmem.h | 4 ++++
fs/xfs/libxfs/xfs_da_btree.c | 4 ++--
fs/xfs/xfs_buf.c | 2 +-
fs/xfs/xfs_dir2_readdir.c | 2 +-
4 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/fs/xfs/kmem.h b/fs/xfs/kmem.h
index 689f746224e7..ea3984091d58 100644
--- a/fs/xfs/kmem.h
+++ b/fs/xfs/kmem.h
@@ -33,6 +33,7 @@ typedef unsigned __bitwise xfs_km_flags_t;
#define KM_NOFS ((__force xfs_km_flags_t)0x0004u)
#define KM_MAYFAIL ((__force xfs_km_flags_t)0x0008u)
#define KM_ZERO ((__force xfs_km_flags_t)0x0010u)
+#define KM_NOLOCKDEP ((__force xfs_km_flags_t)0x0020u)
/*
* We use a special process flag to avoid recursive callbacks into
@@ -57,6 +58,9 @@ kmem_flags_convert(xfs_km_flags_t flags)
if (flags & KM_ZERO)
lflags |= __GFP_ZERO;
+ if (flags & KM_NOLOCKDEP)
+ lflags |= __GFP_NOLOCKDEP;
+
return lflags;
}
diff --git a/fs/xfs/libxfs/xfs_da_btree.c b/fs/xfs/libxfs/xfs_da_btree.c
index f2dc1a950c85..b8b5f6914863 100644
--- a/fs/xfs/libxfs/xfs_da_btree.c
+++ b/fs/xfs/libxfs/xfs_da_btree.c
@@ -2429,7 +2429,7 @@ xfs_buf_map_from_irec(
if (nirecs > 1) {
map = kmem_zalloc(nirecs * sizeof(struct xfs_buf_map),
- KM_SLEEP | KM_NOFS);
+ KM_SLEEP | KM_NOLOCKDEP);
if (!map)
return -ENOMEM;
*mapp = map;
@@ -2488,7 +2488,7 @@ xfs_dabuf_map(
*/
if (nfsb != 1)
irecs = kmem_zalloc(sizeof(irec) * nfsb,
- KM_SLEEP | KM_NOFS);
+ KM_SLEEP | KM_NOLOCKDEP);
nirecs = nfsb;
error = xfs_bmapi_read(dp, (xfs_fileoff_t)bno, nfsb, irecs,
diff --git a/fs/xfs/xfs_buf.c b/fs/xfs/xfs_buf.c
index 7f0a01f7b592..f31ae592dcae 100644
--- a/fs/xfs/xfs_buf.c
+++ b/fs/xfs/xfs_buf.c
@@ -1785,7 +1785,7 @@ xfs_alloc_buftarg(
{
xfs_buftarg_t *btp;
- btp = kmem_zalloc(sizeof(*btp), KM_SLEEP | KM_NOFS);
+ btp = kmem_zalloc(sizeof(*btp), KM_SLEEP | KM_NOLOCKDEP);
btp->bt_mount = mp;
btp->bt_dev = bdev->bd_dev;
diff --git a/fs/xfs/xfs_dir2_readdir.c b/fs/xfs/xfs_dir2_readdir.c
index 003a99b83bd8..033ed65d7ce6 100644
--- a/fs/xfs/xfs_dir2_readdir.c
+++ b/fs/xfs/xfs_dir2_readdir.c
@@ -503,7 +503,7 @@ xfs_dir2_leaf_getdents(
length = howmany(bufsize + geo->blksize, (1 << geo->fsblog));
map_info = kmem_zalloc(offsetof(struct xfs_dir2_leaf_map_info, map) +
(length * sizeof(struct xfs_bmbt_irec)),
- KM_SLEEP | KM_NOFS);
+ KM_SLEEP | KM_NOLOCKDEP);
map_info->map_size = length;
/*
--
2.10.2
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH 0/9 v2] scope GFP_NOFS api Michal Hocko <mhocko@kernel.org> - 2016-12-15 15:10 +0100
[PATCH 5/9] xfs: use memalloc_nofs_{save,restore} instead of memalloc_noio* Michal Hocko <mhocko@kernel.org> - 2016-12-15 15:10 +0100
Re: [PATCH 5/9] xfs: use memalloc_nofs_{save,restore} instead of memalloc_noio* Brian Foster <bfoster@redhat.com> - 2016-12-16 17:40 +0100
[PATCH 5/9 v2] xfs: use memalloc_nofs_{save,restore} instead of memalloc_noio* Michal Hocko <mhocko@kernel.org> - 2016-12-16 23:10 +0100
[PATCH 6/9] jbd2: mark the transaction context with the scope GFP_NOFS context Michal Hocko <mhocko@kernel.org> - 2016-12-15 15:10 +0100
Re: [PATCH 6/9] jbd2: mark the transaction context with the scope GFP_NOFS context Jan Kara <jack@suse.cz> - 2016-12-19 10:40 +0100
[PATCH 9/9] Revert "ext4: fix wrong gfp type under transaction" Michal Hocko <mhocko@kernel.org> - 2016-12-15 15:10 +0100
Re: [PATCH 9/9] Revert "ext4: fix wrong gfp type under transaction" Jan Kara <jack@suse.cz> - 2016-12-19 10:40 +0100
[PATCH 3/9] xfs: abstract PF_FSTRANS to PF_MEMALLOC_NOFS Michal Hocko <mhocko@kernel.org> - 2016-12-15 15:20 +0100
Re: [PATCH 3/9] xfs: abstract PF_FSTRANS to PF_MEMALLOC_NOFS Brian Foster <bfoster@redhat.com> - 2016-12-16 17:40 +0100
[PATCH 7/9] jbd2: make the whole kjournald2 kthread NOFS safe Michal Hocko <mhocko@kernel.org> - 2016-12-15 15:20 +0100
Re: [PATCH 7/9] jbd2: make the whole kjournald2 kthread NOFS safe Jan Kara <jack@suse.cz> - 2016-12-19 10:40 +0100
[PATCH 4/9] mm: introduce memalloc_nofs_{save,restore} API Michal Hocko <mhocko@kernel.org> - 2016-12-15 15:20 +0100
[PATCH 2/9] xfs: introduce and use KM_NOLOCKDEP to silence reclaim lockdep false positives Michal Hocko <mhocko@kernel.org> - 2016-12-15 15:20 +0100
[PATCH 2/9 v2] xfs: introduce and use KM_NOLOCKDEP to silence reclaim lockdep false positives Michal Hocko <mhocko@kernel.org> - 2016-12-16 16:50 +0100
Re: [PATCH 2/9 v2] xfs: introduce and use KM_NOLOCKDEP to silence reclaim lockdep false positives Brian Foster <bfoster@redhat.com> - 2016-12-16 17:40 +0100
Re: [PATCH 2/9 v2] xfs: introduce and use KM_NOLOCKDEP to silence reclaim lockdep false positives Michal Hocko <mhocko@kernel.org> - 2016-12-16 23:10 +0100
Re: [PATCH 2/9] xfs: introduce and use KM_NOLOCKDEP to silence reclaim lockdep false positives Dave Chinner <david@fromorbit.com> - 2016-12-19 22:30 +0100
Re: [PATCH 2/9] xfs: introduce and use KM_NOLOCKDEP to silence reclaim lockdep false positives "Darrick J. Wong" <darrick.wong@oracle.com> - 2016-12-19 23:10 +0100
Re: [PATCH 2/9] xfs: introduce and use KM_NOLOCKDEP to silence reclaim lockdep false positives Dave Chinner <david@fromorbit.com> - 2016-12-20 22:40 +0100
Re: [PATCH 2/9] xfs: introduce and use KM_NOLOCKDEP to silence reclaim lockdep false positives Michal Hocko <mhocko@kernel.org> - 2016-12-20 09:40 +0100
[PATCH 1/9] lockdep: allow to disable reclaim lockup detection Michal Hocko <mhocko@kernel.org> - 2016-12-15 15:20 +0100
[DEBUG PATCH 0/2] debug explicit GFP_NO{FS,IO} usage from the scope context Michal Hocko <mhocko@kernel.org> - 2016-12-16 13:50 +0100
[DEBUG PATCH 2/2] silent warnings which we cannot do anything about Michal Hocko <mhocko@kernel.org> - 2016-12-16 13:50 +0100
[DEBUG PATCH 1/2] mm, debug: report when GFP_NO{FS,IO} is used explicitly from memalloc_no{fs,io}_{save,restore} context Michal Hocko <mhocko@kernel.org> - 2016-12-16 13:50 +0100
Re: [PATCH 0/9 v2] scope GFP_NOFS api Mike Galbraith <umgwanakikbuti@gmail.com> - 2016-12-16 16:20 +0100
Re: [PATCH 0/9 v2] scope GFP_NOFS api Michal Hocko <mhocko@kernel.org> - 2016-12-16 16:40 +0100
Re: [PATCH 0/9 v2] scope GFP_NOFS api Mike Galbraith <umgwanakikbuti@gmail.com> - 2016-12-16 17:30 +0100
Re: [PATCH 0/9 v2] scope GFP_NOFS api Jan Kara <jack@suse.cz> - 2016-12-19 10:30 +0100
Re: [PATCH 0/9 v2] scope GFP_NOFS api Michal Hocko <mhocko@kernel.org> - 2016-12-22 10:40 +0100
csiph-web