-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tag ABD pages for exclusion in kernel crash dumps #8899
Conversation
module/zfs/abd.c
Outdated
@@ -251,6 +251,27 @@ abd_chunkcnt_for_bytes(size_t size) | |||
#define __GFP_RECLAIM __GFP_WAIT | |||
#endif | |||
|
|||
#define ABD_FILE_CACHE_PAGE 0x2F5ABDF11ECAC4E |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You're going to need to define a smaller value for 32-bit platforms to resolve the build failures on arm/ppc/i386.
/var/lib/buildbot/slaves/buildslave1/Debian_8_arm__BUILD_/build/zfs/module/zfs/abd.c: In function ‘abd_mark_zfs_page’:
include/linux/mm.h:319:54: error: large integer implicitly truncated to unsigned type [-Werror=overflow]
#define set_page_private(page, v) ((page)->private = (v))
^
/var/lib/buildbot/slaves/buildslave1/Debian_8_arm__BUILD_/build/zfs/module/zfs/abd.c:264:2: note: in expansion of macro ‘set_page_private’
set_page_private(page, ABD_FILE_CACHE_PAGE);
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I limited the page tagging to 64-bit platforms.
Signed-off-by: Don Brady <don.brady@delphix.com>
Codecov Report
@@ Coverage Diff @@
## master #8899 +/- ##
==========================================
+ Coverage 72.47% 72.69% +0.21%
==========================================
Files 371 371
Lines 119441 119449 +8
==========================================
+ Hits 86569 86830 +261
+ Misses 32872 32619 -253
Continue to review full report at Codecov.
|
Motivation and Context
Tag the
ABD
data pages so that they can be identified for exclusion from kernel crash dumps. Eliminating the zfs file data allows for significantly smaller crash dump files. Note that ZFS in illumos has always excluded the zfs data pages from a kernel crash dump.Description
This change tags ARC scatter data pages so they can be identified from the
makedumpfile(8)
command. That command is used to create smaller dump files by ignoring some memory regions and using compression. It already filters file data from the VFS page cache and will now be able to exclude ZFS file data pages from the dump file.A corresponding change to
makeumpfile(8)
is required to identify ZFS data pages.How Has This Been Tested?
ztest
generated kernel crash dumps using a modified makeumpfile and confirmed that zfs data pages were being excluded.
Sample summary:
Types of changes
Checklist:
Signed-off-by
.