Bug 148839 - vdso doesn't work on i686
vdso doesn't work on i686
Status: CLOSED DUPLICATE of bug 139318
Product: Fedora
Classification: Fedora
Component: kernel (Show other bugs)
3
i686 Linux
medium Severity medium
: ---
: ---
Assigned To: Dave Jones
Brian Brock
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2005-02-15 20:48 EST by H.J. Lu
Modified: 2015-01-04 17:16 EST (History)
3 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2005-04-11 20:23:24 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
Output from serial console (75.71 KB, text/plain)
2005-02-15 20:49 EST, H.J. Lu
no flags Details

  None (edit)
Description H.J. Lu 2005-02-15 20:48:07 EST
I tried vdso=1 with kernel-2.6.10-1.766_FC3 on Pentium 4. Kernel
crashed immediately. 2.6.11-rc4 works fine.
Comment 1 H.J. Lu 2005-02-15 20:49:23 EST
Created attachment 111121 [details]
Output from serial console

This is the kernel output from the serial console.
Comment 2 Dave Jones 2005-02-15 20:59:17 EST
2.6.9-5.EL.hjl.0.3smp

a) sounds like this should be a rhel bug
b) what modifications are in this kernel ?
Comment 3 H.J. Lu 2005-02-16 11:55:48 EST
It happened with both FC3 and RHEL 4 kernels. I just happened to
have a serial cable on my RHEL 4 machine. I don't think it is
unrelated to my modification. I verified it with the unmodified
2.6.10-1.766_FC3 UP and SMP kernel binary rpms.
Comment 4 H.J. Lu 2005-02-16 12:47:04 EST
I meant to say that the crash is unrelated to my changes.
Comment 5 H.J. Lu 2005-02-16 14:30:07 EST
I don't see how this code in sysenter.c:

        addr = do_mmap(NULL, 0, 4096, PROT_READ | PROT_EXEC,
MAP_PRIVATE, 0);         current->mm->context.vdso = (void *)addr;
        ti->sysenter_return = (void *)addr +
(long)&SYSENTER_RETURN_OFFSET;
        if (addr != -1) {                 vma = find_vma(current->mm,
addr);
                if (vma) {
                        pgprot_val(vma->vm_page_prot) &= ~_PAGE_RW;
                        get_page(sysenter_page);
                        install_page(current->mm, vma, addr,
                                        sysenter_page, vma->vm_page_prot);

                }         }

will work since install_page expects a file backed page while
sysenter_page isn't backed by a file at all. Another thing,
map_vsyscall may be called before sysenter_setup such that
sysenter_page may be NULL.
Comment 6 Dave Jones 2005-04-11 20:23:24 EDT

*** This bug has been marked as a duplicate of 139318 ***

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