Re: [2.6.25] compat VDSO option not disabling

Previous thread: [PATCH] alternative^2 to sys_indirect: socket, socketpair by Ulrich Drepper on Thursday, April 24, 2008 - 9:18 am. (5 messages)

Next thread: [GIT PATCHES] V4L/DVB updates for 2.6.26 by Mauro Carvalho Chehab on Thursday, April 24, 2008 - 11:17 am. (1 message)
From: Gerhard Mack
Date: Thursday, April 24, 2008 - 9:49 am

On my laptop I disabled the compat vdso option but it is till being 
mapped.. Any ideas?

From dmesg:
Compat vDSO mapped to ffffe000.

System is: Linux fd 2.6.25 #1 PREEMPT Thu Apr 24 12:20:26 EDT 2008 i686 
GNU/Linux

Config included below:

	Gerhard

#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.25
# Thu Apr 24 08:52:02 2008
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
# CONFIG_X86_64 is not set
CONFIG_X86=y
# CONFIG_GENERIC_LOCKBREAK is not set
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_SEMAPHORE_SLEEPERS=y
CONFIG_FAST_CMPXCHG_LOCAL=y
CONFIG_MMU=y
CONFIG_ZONE_DMA=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_HWEIGHT=y
# CONFIG_GENERIC_GPIO is not set
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_DMI=y
# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
# CONFIG_GENERIC_TIME_VSYSCALL is not set
CONFIG_ARCH_HAS_CPU_RELAX=y
# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
# CONFIG_ZONE_DMA32 is not set
CONFIG_ARCH_POPULATES_NODE_MAP=y
# CONFIG_AUDIT_ARCH is not set
CONFIG_ARCH_SUPPORTS_AOUT=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_X86_BIOS_REBOOT=y
CONFIG_KTIME_SCALAR=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"

#
# General setup
#
CONFIG_EXPERIMENTAL=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_TASKSTATS=y
# ...
From: Jiri Kosina
Date: Friday, April 25, 2008 - 7:33 am

The changelog of the commit below explains that.

commit 1dbf527c51c6c20c19869c8125cb5b87c3d09506
Author: Jeremy Fitzhardinge <jeremy@goop.org>
Date:   Wed May 2 19:27:12 2007 +0200

    [PATCH] i386: Make COMPAT_VDSO runtime selectable.

    Now that relocation of the VDSO for COMPAT_VDSO users is done at
    runtime rather than compile time, it is possible to enable/disable
    compat mode at runtime.

    This patch allows you to enable COMPAT_VDSO mode with "vdso=2" on the
    kernel command line, or via sysctl.  (Switching on a running system
    shouldn't be done lightly; any process which was relying on the compat
    VDSO will be upset if it goes away.)

    The COMPAT_VDSO config option still exists, but if enabled it just
    makes vdso_enabled default to VDSO_COMPAT.

-- 
Jiri Kosina
SUSE Labs

--

From: Gerhard Mack
Date: Saturday, April 26, 2008 - 9:15 am

I havn't enabled compat VDSO at the kernel command line or otherwise.  
Something broke with this option. 

	Gerhard



--
Gerhard Mack

gmack@innerfire.net

<>< As a computer I find your faith in technology amusing.
--

From: Jeremy Fitzhardinge
Date: Saturday, April 26, 2008 - 10:10 pm

Yes, you might be on to something.  I think I've been seeing that 
message when I wouldn't expect to.  I'll double-check.  Could you send 
your complete dmesg output?

Thanks,
    J
--

From: Gerhard Mack
Date: Monday, April 28, 2008 - 8:46 am

Of course

Linux version 2.6.25 (root@fd) (gcc version 4.2.3 (Debian 4.2.3-3)) #3 PREEMPT Thu Apr 24 13:07:50 EDT 2008
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
 BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
 BIOS-e820: 0000000000100000 - 000000001ffe2800 (usable)
 BIOS-e820: 000000001ffe2800 - 0000000020000000 (reserved)
 BIOS-e820: 00000000feda0000 - 00000000fee00000 (reserved)
 BIOS-e820: 00000000ffb80000 - 0000000100000000 (reserved)
511MB LOWMEM available.
Scan SMP from c0000000 for 1024 bytes.
Scan SMP from c009fc00 for 1024 bytes.
Scan SMP from c00f0000 for 65536 bytes.
Scan SMP from c009fc00 for 1024 bytes.
Entering add_active_range(0, 0, 131042) 0 entries of 256 used
Zone PFN ranges:
  DMA             0 ->     4096
  Normal       4096 ->   131042
Movable zone start PFN for each node
early_node_map[1] active PFN ranges
    0:        0 ->   131042
On node 0 totalpages: 131042
  DMA zone: 32 pages used for memmap
  DMA zone: 0 pages reserved
  DMA zone: 4064 pages, LIFO batch:0
  Normal zone: 991 pages used for memmap
  Normal zone: 125955 pages, LIFO batch:31
  Movable zone: 0 pages used for memmap
DMI 2.3 present.
ACPI: RSDP 000FDE50, 0014 (r0 DELL  )
ACPI: RSDT 000FDE64, 0028 (r1 DELL    CPi R   27D40107 ASL        61)
ACPI: FACP 000FDE90, 0074 (r1 DELL    CPi R   27D40107 ASL        61)
ACPI: DSDT FFFE4000, 314E (r1 INT430 SYSFexxx     1001 MSFT  100000E)
ACPI: FACS 1FFFF800, 0040
ACPI: PM-Timer IO Port: 0x808
Allocating PCI resources starting at 30000000 (gap: 20000000:deda0000)
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130019
Kernel command line: root=/dev/sda3 ro 
Local APIC disabled by BIOS -- you can enable it with "lapic"
mapped APIC to ffffb000 (01402000)
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Initializing CPU#0
Preemptible RCU implementation.
PID hash table entries: 2048 (order: 11, 8192 ...
From: Jeremy Fitzhardinge
Date: Monday, April 28, 2008 - 10:00 am

I think this is just a false alarm.  sysenter_setup always prints this, 
but if compat mode isn't enabled this is just the address the compat 
vdso would be at if it were mapped.  You can confirm this by doing "cat 
/proc/self/maps" and making sure that there's nothing mapped at 
ffffe000.  And then cross confirm with "sysctl -w vm.vdso_enabled=2; cat 
/proc/self/maps" to make sure it appears.

    J
--

From: Gerhard Mack
Date: Monday, April 28, 2008 - 10:24 am

fd:~# cat /proc/self/maps | grep ffffe000
fd:~# sysctl -w vm.vdso_enabled=2
vm.vdso_enabled = 2
fd:~# cat /proc/self/maps | grep ffffe000
ffffe000-fffff000 r-xp 00000000 00:00 0          [vdso]

Your right.. can the boot message be made a bit more descriptive ?  I'm 
going to guess that I'm not the only one who makes this mistake.

	Gerhard


--
Gerhard Mack

gmack@innerfire.net

<>< As a computer I find your faith in technology amusing.
--

From: Jeremy Fitzhardinge
Date: Monday, April 28, 2008 - 11:05 am

The kernel prints the compat vdso address regardless of whether compat
vdso mode is enabled or not, which is confusing.  Given that this
isn't very interesting information anyway, just remove the printk.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Cc: Gerhard Mack <gmack@innerfire.net>
---
 arch/x86/vdso/vdso32-setup.c |    2 --
 1 file changed, 2 deletions(-)

===================================================================
--- a/arch/x86/vdso/vdso32-setup.c
+++ b/arch/x86/vdso/vdso32-setup.c
@@ -303,8 +303,6 @@
 
 #ifdef CONFIG_X86_32
 	gate_vma_init();
-
-	printk("Compat vDSO mapped to %08lx.\n", __fix_to_virt(FIX_VDSO));
 #endif
 
 	if (!vdso32_sysenter()) {



--

From: Ingo Molnar
Date: Tuesday, April 29, 2008 - 3:01 am

thanks Jeremy, applied.

	Ingo
--

Previous thread: [PATCH] alternative^2 to sys_indirect: socket, socketpair by Ulrich Drepper on Thursday, April 24, 2008 - 9:18 am. (5 messages)

Next thread: [GIT PATCHES] V4L/DVB updates for 2.6.26 by Mauro Carvalho Chehab on Thursday, April 24, 2008 - 11:17 am. (1 message)