Bug 1225370
Summary: | thin-pool after few days of uptime fails on allocation order 5 | ||||||
---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Zdenek Kabelac <zkabelac> | ||||
Component: | kernel | Assignee: | Joe Thornber <thornber> | ||||
Status: | CLOSED UPSTREAM | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||
Severity: | unspecified | Docs Contact: | |||||
Priority: | unspecified | ||||||
Version: | rawhide | CC: | agk, bmarzins, bmr, dwysocha, gansalmon, heinzm, itamar, jonathan, kernel-maint, lvm-team, madhu.chinakonda, mchehab, mpatocka, msnitzer, prajnoha, prockai, zkabelac | ||||
Target Milestone: | --- | ||||||
Target Release: | --- | ||||||
Hardware: | Unspecified | ||||||
OS: | Unspecified | ||||||
Whiteboard: | |||||||
Fixed In Version: | Doc Type: | Bug Fix | |||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | |||||||
: | 1226347 1244318 (view as bug list) | Environment: | |||||
Last Closed: | 2017-05-23 13:32:36 UTC | Type: | Bug | ||||
Regression: | --- | Mount Type: | --- | ||||
Documentation: | --- | CRM: | |||||
Verified Versions: | Category: | --- | |||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
Cloudforms Team: | --- | Target Upstream Version: | |||||
Embargoed: | |||||||
Attachments: |
|
Description
Zdenek Kabelac
2015-05-27 08:39:09 UTC
Created attachment 1030538 [details]
Full test trace with visible memory fault kernel report
Order 5 is only 128k of memory. Probably allocated by one of the slabs. At what point do you suggest I stop using kmalloc and switch to vmalloc()? 32k? 4k? Or are you suggesting the fragmentation is due to thinp? Mikulas - do you have some advice here ? We could try kmalloc and if it fails, use vmalloc. The code that tries kmalloc and falls back to vmalloc is already present in dm-ioctl.c in function copy_params. So, we should extract that piece of code into a separate function and call that function also from dm-thin.c. I will write a patch that does that. I posted a patch set for this bug here. The patch set extracts the common pattern (try kmalloc and fallback to vmalloc) into a single function dm_kvmalloc and calls it from several places in device mapper. https://www.redhat.com/archives/dm-devel/2015-July/msg00004.html https://www.redhat.com/archives/dm-devel/2015-July/msg00005.html https://www.redhat.com/archives/dm-devel/2015-July/msg00006.html https://www.redhat.com/archives/dm-devel/2015-July/msg00007.html https://www.redhat.com/archives/dm-devel/2015-July/msg00008.html https://www.redhat.com/archives/dm-devel/2015-July/msg00009.html https://www.redhat.com/archives/dm-devel/2015-July/msg00010.html https://www.redhat.com/archives/dm-devel/2015-July/msg00011.html Do you want the Fedora kernel to carry any of these patches before landing in upstream, or should we just wait for them to be merged? The kernel tested in the original comment is "old" now, so we'd be looking at adding whatever in rawhide first if something were to be added. (In reply to Josh Boyer from comment #7) > Do you want the Fedora kernel to carry any of these patches before landing > in upstream, or should we just wait for them to be merged? > > The kernel tested in the original comment is "old" now, so we'd be looking > at adding whatever in rawhide first if something were to be added. I'll be sending a set of 4.2-rc fixes to Linus next week. AFAIK this issue isn't so common as to warrant a rush _now_. But this is the fix that is staged and destined for upstream (and stable@): https://git.kernel.org/cgit/linux/kernel/git/device-mapper/linux-dm.git/commit/?h=for-next&id=a822c83e47d97cdef38c4352e1ef62d9f46cfe98 You're welcome to pick it up and carry in Fedora rawhide now if you like. The patches that Mikulas listed in comment#6 have been reworked some and will hopefully land in Linux 4.3 (dm-thinp will be adapted accordingly at that time). Fix has been upstream (and in Fedora) since July 2015. |