Bug 248515 - vmalloc_sync_all() is broken for PAE Xen kernels
vmalloc_sync_all() is broken for PAE Xen kernels
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: kernel-xen (Show other bugs)
i686 Linux
low Severity low
: ---
: ---
Assigned To: Xen Maintainance List
Martin Jenner
Depends On:
  Show dependency treegraph
Reported: 2007-07-17 04:24 EDT by Ian Campbell
Modified: 2009-01-14 06:13 EST (History)
2 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2009-01-13 17:34:33 EST
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 04:29 EST, Ian Campbell
no flags Details | Diff

  None (edit)
Description Ian Campbell 2007-07-17 04:24:06 EDT
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-24 20:54:44 EDT
change QA contact
Comment 2 Ian Campbell 2007-12-14 04:29:28 EST
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 14:47:17 EST
Can you provide a test case that shows a failure, so
the fix can be verified? TIA.

Comment 4 Ian Campbell 2007-12-19 11:24:29 EST
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 17:34:33 EST
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 06:13:33 EST
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.