Bug 248515 - vmalloc_sync_all() is broken for PAE Xen kernels
Summary: vmalloc_sync_all() is broken for PAE Xen kernels
Alias: None
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: kernel-xen   
(Show other bugs)
Version: 5.0
Hardware: i686 Linux
Target Milestone: ---
: ---
Assignee: Xen Maintainance List
QA Contact: Martin Jenner
Depends On:
TreeView+ depends on / blocked
Reported: 2007-07-17 08:24 UTC by Ian Campbell
Modified: 2009-01-14 11:13 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2009-01-13 22:34:33 UTC
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
linux-2.6.18-xen 136:34ebf92ad28d ported to 2.6.18-53.el5 (2.30 KB, patch)
2007-12-14 09:29 UTC, Ian Campbell
no flags Details | Diff

Description Ian Campbell 2007-07-17 08:24:06 UTC
vmalloc_sync_all() needs to iterate over PMDs not PGDs in the Xen+PAE case.

Upstream fix is http://hg.uk.xensource.com/linux-2.6.18-xen.hg?cs=34ebf92ad28d

This only impacts RHEL5 not RHEL4u5, as far as I can tell.

Comment 1 Red Hat Bugzilla 2007-07-25 00:54:44 UTC
change QA contact

Comment 2 Ian Campbell 2007-12-14 09:29:28 UTC
Created attachment 288921 [details]
linux-2.6.18-xen 136:34ebf92ad28d ported to 2.6.18-53.el5

Comment 3 Don Dutile 2007-12-14 19:47:17 UTC
Can you provide a test case that shows a failure, so
the fix can be verified? TIA.

Comment 4 Ian Campbell 2007-12-19 16:24:29 UTC
Sorry but I don't really know much about the specifics of this one. The ML
thread which caused the fix to be made starts at 

I suspect that to repro you just have to be unlucky at boot time.

Comment 5 Rik van Riel 2009-01-13 22:34:33 UTC
The function vmalloc_sync_all in arch/i386/mm/fault-xen.c is under an "#ifndef CONFIG_X86_PAE", meaning that that function is never used in the RHEL5 code base, which only has Xen kernels with PAE.

One reason for this is that the kernel PMD is shared between all PGDs in an i386 PAE configuration, so there is nothing to sync.

include/asm-i386/mach-xen/asm/pgtable-3level.h has this define:

#define vmalloc_sync_all() ((void)0)

This means that the changeset is not needed for RHEL5 (which explains why we never ran into vmalloc_sync_all related bugs).

Comment 6 Ian Campbell 2009-01-14 11:13:33 UTC
You are right, sorry for not noticing this sooner.

http://xenbits.xensource.com/xen-unstable.hg?rev/c5ff7671b9f2 made vmalloc_sync_all mean something for PAE but that was only required because of http://xenbits.xensource.com/xen-unstable.hg?rev/c4ed5b740a8d and you have neither patch in RHEL 5.

Since c4ed5b740a8d was just a cleanup (I think) all this can be ignored.

Note You need to log in before you can comment on or make changes to this bug.