Bug 148839 - vdso doesn't work on i686
Summary: vdso doesn't work on i686
Keywords:
Status: CLOSED DUPLICATE of bug 139318
Alias: None
Product: Fedora
Classification: Fedora
Component: kernel
Version: 3
Hardware: i686
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Dave Jones
QA Contact: Brian Brock
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2005-02-16 01:48 UTC by H.J. Lu
Modified: 2015-01-04 22:16 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2005-04-12 00:23:24 UTC
Type: ---
Embargoed:


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

Description H.J. Lu 2005-02-16 01:48:07 UTC
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-16 01:49:23 UTC
Created attachment 111121 [details]
Output from serial console

This is the kernel output from the serial console.

Comment 2 Dave Jones 2005-02-16 01:59:17 UTC
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 16:55:48 UTC
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 17:47:04 UTC
I meant to say that the crash is unrelated to my changes.

Comment 5 H.J. Lu 2005-02-16 19:30:07 UTC
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-12 00:23:24 UTC

*** 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.