06 Apr, 2009

2 commits

  • * 'tracing-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (413 commits)
    tracing, net: fix net tree and tracing tree merge interaction
    tracing, powerpc: fix powerpc tree and tracing tree interaction
    ring-buffer: do not remove reader page from list on ring buffer free
    function-graph: allow unregistering twice
    trace: make argument 'mem' of trace_seq_putmem() const
    tracing: add missing 'extern' keywords to trace_output.h
    tracing: provide trace_seq_reserve()
    blktrace: print out BLK_TN_MESSAGE properly
    blktrace: extract duplidate code
    blktrace: fix memory leak when freeing struct blk_io_trace
    blktrace: fix blk_probes_ref chaos
    blktrace: make classic output more classic
    blktrace: fix off-by-one bug
    blktrace: fix the original blktrace
    blktrace: fix a race when creating blk_tree_root in debugfs
    blktrace: fix timestamp in binary output
    tracing, Text Edit Lock: cleanup
    tracing: filter fix for TRACE_EVENT_FORMAT events
    ftrace: Using FTRACE_WARN_ON() to check "freed record" in ftrace_release()
    x86: kretprobe-booster interrupt emulation code fix
    ...

    Fix up trivial conflicts in
    arch/parisc/include/asm/ftrace.h
    include/linux/memory.h
    kernel/extable.c
    kernel/module.c

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-module-and-param:
    module: use strstarts()
    strstarts: helper function for !strncmp(str, prefix, strlen(prefix))
    arm: allow usage of string functions in linux/string.h
    module: don't use stop_machine on module load
    module: create a request_module_nowait()
    module: include other structures in module version check
    module: remove the SHF_ALLOC flag on the __versions section.
    module: clarify the force-loading taint message.
    module: Export symbols needed for Ksplice
    Ksplice: Add functions for walking kallsyms symbols
    module: remove module_text_address()
    module: __module_address
    module: Make find_symbol return a struct kernel_symbol
    kernel/module.c: fix an unused goto label
    param: fix charp parameters set via sysfs

    Fix trivial conflicts in kernel/extable.c manually.

    Linus Torvalds
     

02 Apr, 2009

2 commits


31 Mar, 2009

1 commit

  • With CONFIG_MODVERSIONS, we version 'struct module' using a dummy
    export, but other things matter too:

    1) 'struct modversion_info' determines the layout of the __versions section,
    2) 'struct kernel_param' determines the layout of the __params section,
    3) 'struct kernel_symbol' determines __ksymtab*.
    4) 'struct marker' determines __markers.
    5) 'struct tracepoint' determines __tracepoints.

    So we rename 'struct_module' to 'module_layout' and include these in
    the signature. Now it's general we can add others later on without
    confusion.

    Signed-off-by: Rusty Russell

    Rusty Russell
     

28 Mar, 2009

1 commit


27 Mar, 2009

2 commits

  • …el/git/tip/linux-2.6-tip

    * 'header-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (50 commits)
    x86: headers cleanup - setup.h
    emu101k1.h: fix duplicate include of <linux/types.h>
    compiler-gcc4: conditionalize #error on __KERNEL__
    remove __KERNEL_STRICT_NAMES
    make netfilter use strict integer types
    make drm headers use strict integer types
    make MTD headers use strict integer types
    make most exported headers use strict integer types
    make exported headers use strict posix types
    unconditionally include asm/types.h from linux/types.h
    make linux/types.h as assembly safe
    Neither asm/types.h nor linux/types.h is required for arch/ia64/include/asm/fpu.h
    headers_check fix cleanup: linux/reiserfs_fs.h
    headers_check fix cleanup: linux/nubus.h
    headers_check fix cleanup: linux/coda_psdev.h
    headers_check fix: x86, setup.h
    headers_check fix: x86, prctl.h
    headers_check fix: linux/reinserfs_fs.h
    headers_check fix: linux/socket.h
    headers_check fix: linux/nubus.h
    ...

    Manually fix trivial conflicts in:
    include/linux/netfilter/xt_limit.h
    include/linux/netfilter/xt_statistic.h

    Linus Torvalds
     
  • Ingo Molnar
     

25 Mar, 2009

2 commits

  • This patch combines Greg Bank's dprintk() work with the existing dynamic
    printk patchset, we are now calling it 'dynamic debug'.

    The new feature of this patchset is a richer /debugfs control file interface,
    (an example output from my system is at the bottom), which allows fined grained
    control over the the debug output. The output can be controlled by function,
    file, module, format string, and line number.

    for example, enabled all debug messages in module 'nf_conntrack':

    echo -n 'module nf_conntrack +p' > /mnt/debugfs/dynamic_debug/control

    to disable them:

    echo -n 'module nf_conntrack -p' > /mnt/debugfs/dynamic_debug/control

    A further explanation can be found in the documentation patch.

    Signed-off-by: Greg Banks
    Signed-off-by: Jason Baron
    Signed-off-by: Greg Kroah-Hartman

    Jason Baron
     
  • Now platform_device is being widely used on SoC processors where the
    peripherals are attached to the system bus, which is simple enough.

    However, silicon IPs for these SoCs are usually shared heavily across
    a family of processors, even products from different companies. This
    makes the original simple driver name based matching insufficient, or
    simply not straight-forward.

    Introduce a module id table for platform devices, and makes it clear
    that a platform driver is able to support some shared IP and handle
    slight differences across different platforms (by 'driver_data').
    Module alias is handled automatically when a MODULE_DEVICE_TABLE()
    is defined.

    To not disturb the current platform drivers too much, the matched id
    entry is recorded and can be retrieved by platform_get_device_id().

    Signed-off-by: Eric Miao
    Cc: Kay Sievers
    Cc: Ben Dooks
    Signed-off-by: Greg Kroah-Hartman

    Eric Miao
     

16 Mar, 2009

2 commits

  • 'make randconfig' uses glibc's rand function, and the seed of
    that PRNG is set via:

    srand(time(NULL));

    But 'time()' only increases once every second - freezing the
    randconfig result within a single second.

    My Nehalem testbox does randconfig much faster than 1 second
    and i have a few scripts that do 'randconfig until condition X'
    loops.

    Those scripts currently waste a lot of CPU time due to randconfig
    changing its seed only once per second currently.

    Change the seed to be micrseconds based. (I checked the statistical
    spread of the seed - the now.tv_sec*now.tv_usec multiplication
    there further improves it.)

    Signed-off-by: Ingo Molnar
    Cc: Roman Zippel
    [sam: fix for systems where usec is zero - noticed by Geert Uytterhoeven]
    Signed-off-by: Sam Ravnborg

    Ingo Molnar
     
  • Ingo Molnar reported that 'make randconfig' was not covering
    choice blocks properly, resulting in certain config options
    being left out of randconfig testing altogether.

    With the following patch we:
    - properly randomize choice value for normal choice blocks
    - properly randomize for multi choice blocks
    - added several comments to explain what is going on

    The root cause of the bug was that SYMBOL_VALID was set on the
    symbol representing the choice block so clearing this did
    the trick initially.
    But testign revealed a few more issues that is now fixed.

    Reported-by: Ingo Molnar
    Cc: Ingo Molnar
    Cc: Roman Zippel
    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     

14 Mar, 2009

1 commit

  • Impact: bugfix, output more reliable symbol lookup result

    Debug tools(dump_stack(), ftrace...) are like to print out symbols.
    But it is always print out the first aliased symbol.(Aliased symbols
    are symbols with the same address), and the first aliased symbol is
    sometime not proper.

    # echo function_graph > current_tracer
    # cat trace
    ......
    1) 1.923 us | select_nohz_load_balancer();
    1) + 76.692 us | }
    1) | default_idle() {
    1) ==========> | __irqentry_text_start() {
    1) 0.000 us | native_apic_mem_write();
    1) | irq_enter() {
    1) 0.000 us | idle_cpu();
    1) | tick_check_idle() {
    1) 0.000 us | tick_check_oneshot_broadcast();
    1) | tick_nohz_stop_idle() {
    ......

    It's very embarrassing, it ouputs "__irqentry_text_start()",
    actually, it should output "smp_apic_timer_interrupt()".
    (these two symbol are the same address, but "__irqentry_text_start"
    is deemed to the first aliased symbol by scripts/kallsyms)

    This patch puts symbols like "__irqentry_text_start" to the second
    aliased symbols. And a more proper symbol name becomes the first.

    Aliased symbols mostly come from linker script. The solution is
    guessing "is this symbol defined in linker script", the symbols
    defined in linker script will not become the first aliased symbol.

    And if symbols are found to be equal in this "linker script provided"
    criteria, symbols are sorted by the number of prefix underscores.

    Signed-off-by: Lai Jiangshan
    Acked-by: Sam Ravnborg
    Reviewed-by: Paulo Marques
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Lai Jiangshan
     

13 Mar, 2009

1 commit


07 Mar, 2009

3 commits

  • Running 'make rpm' fails when CONFIG_LOCALVERSION_AUTO=y and using a kernel source
    tree under SCM. This is due to KERNELRELEASE being different when the initial make
    is run and when make is run from rpmbuild.

    mkspec creates kernel.spec using KERNELRELEASE:

    echo "%files"
    echo '%defattr (-, root, root)'
    echo "%dir /lib/modules"
    echo "/lib/modules/$KERNELRELEASE"
    echo "/lib/firmware"
    echo "/boot/*"
    echo ""

    When CONFIG_LOCALVERSION_AUTO=y scripts/setlocalversion is called and grabs any
    additional version info from SCM. Next, the srctree is tarred up and SCM
    information is excluded.

    rpmbuild reruns make and in the process generates a new include/config/kernel.release
    and thus a new KERNELRELEASE. However this time the SCM information is gone so
    KERNELRELEASE no longer has the additional version information. When "make modules_install"
    runs, it uses the new KERNELRELEASE value to determine where to install the modules.
    This conflicts with where the spec file assumes they are going because of the
    mis-matching KERNELRELEASE versions.

    + INSTALL_MOD_PATH=/var/tmp/kernel-2.6.29rc4tip01479g5d85422-root
    + make -j16 modules_install
    INSTALL crypto/aead.ko
    INSTALL crypto/cbc.ko
    INSTALL crypto/chainiv.ko
    INSTALL crypto/crc32c.ko
    INSTALL crypto/crypto_algapi.ko
    INSTALL crypto/crypto_blkcipher.ko
    INSTALL crypto/crypto_hash.ko
    INSTALL crypto/cryptomgr.ko
    INSTALL crypto/ecb.ko
    INSTALL crypto/eseqiv.ko
    INSTALL crypto/krng.ko
    INSTALL crypto/md5.ko
    INSTALL crypto/pcbc.ko
    INSTALL crypto/rng.ko
    INSTALL drivers/block/cciss.ko
    INSTALL drivers/hid/hid-dummy.ko
    INSTALL drivers/scsi/iscsi_tcp.ko
    INSTALL drivers/scsi/libiscsi.ko
    INSTALL drivers/scsi/libiscsi_tcp.ko
    INSTALL drivers/scsi/scsi_transport_iscsi.ko
    INSTALL drivers/scsi/scsi_wait_scan.ko
    INSTALL fs/lockd/lockd.ko
    INSTALL fs/nfs/nfs.ko
    INSTALL fs/nfsd/nfsd.ko
    INSTALL lib/libcrc32c.ko
    INSTALL net/sunrpc/sunrpc.ko
    DEPMOD 2.6.29-rc4-tip
    + cp arch/x86/boot/bzImage
    /var/tmp/kernel-2.6.29rc4tip01479g5d85422-root/boot/vmlinuz-2.6.29-rc4-tip-01479-g5d85422
    + cp System.map
    /var/tmp/kernel-2.6.29rc4tip01479g5d85422-root/boot/System.map-2.6.29-rc4-tip-01479-g5d85422
    + cp .config
    /var/tmp/kernel-2.6.29rc4tip01479g5d85422-root/boot/config-2.6.29-rc4-tip-01479-g5d85422
    + cp vmlinux vmlinux.orig
    + bzip2 -9 vmlinux
    + mv vmlinux.bz2
    /var/tmp/kernel-2.6.29rc4tip01479g5d85422-root/boot/vmlinux-2.6.29-rc4-tip-01479-g5d85422.bz2
    + mv vmlinux.orig vmlinux
    + /usr/lib/rpm/brp-compress
    Processing files: kernel-2.6.29rc4tip01479g5d85422-2
    error: File not found:
    /var/tmp/kernel-2.6.29rc4tip01479g5d85422-root/lib/modules/2.6.29-rc4-tip-01479-g5d85422

    RPM build errors:
    File not found:
    /var/tmp/kernel-2.6.29rc4tip01479g5d85422-root/lib/modules/2.6.29-rc4-tip-01479-g5d85422
    make[1]: *** [rpm] Error 1
    make: *** [rpm] Error 2

    I have tested this patch on git -tip, Linus' git tree, and the kernel.org tar files, both
    with and without CONFIG_LOCALVERSION_AUTO=y.

    Signed-off-by: Josh Hunt
    Signed-off-by: Sam Ravnborg
    ----

    Josh Hunt
     
  • The contents of the %clean section in mkspec is currently commented
    out leaving RPM_BUILD_ROOT and its contents on the build machine.
    This patch removes it once the rpm build process is complete.

    Signed-off-by: Josh Hunt
    Signed-off-by: Sam Ravnborg

    Josh Hunt
     
  • This fixes an error when compiling the kernel.

    CHK include/linux/version.h
    HOSTCC scripts/unifdef
    scripts/unifdef.c:209: error: conflicting types for 'getline'
    /usr/include/stdio.h:651: note: previous declaration of 'getline' was here
    make[1]: *** [scripts/unifdef] Error 1
    make: *** [__headers] Error 2

    Signed-off-by: Justin P. Mattock
    Cc: Frederic Weisbecker
    Signed-off-by: Andrew Morton
    Signed-off-by: Sam Ravnborg

    Justin P. Mattock
     

06 Mar, 2009

1 commit


04 Mar, 2009

1 commit


03 Mar, 2009

1 commit


01 Mar, 2009

1 commit


28 Feb, 2009

8 commits


23 Feb, 2009

1 commit


21 Feb, 2009

1 commit


20 Feb, 2009

1 commit


19 Feb, 2009

1 commit


18 Feb, 2009

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-fixes:
    kbuild: create the source symlink earlier in the objdir
    scripts: add x86 64 bit support to the markup_oops.pl script
    scripts: add x86 register parser to markup_oops.pl
    kbuild: add sys_* entries for syscalls in tags
    kbuild: fix tags generation of config symbols
    bootgraph: fix for use with dot symbols
    kbuild: add vmlinux to kernel rpm
    kbuild,setlocalversion: shorten the make time when using svn

    Linus Torvalds
     

17 Feb, 2009

1 commit


15 Feb, 2009

5 commits

  • Signed-off-by: Arjan van de Ven
    Signed-off-by: Andrew Morton
    Signed-off-by: Sam Ravnborg

    Arjan van de Ven
     
  • An oops dump also contains the register values.

    This patch parses these for (32 bit) x86, and then annotates the
    disassembly with these values; this helps in analysis of the oops by the
    developer, for example, NULL pointer or other pointer bugs show up clearly
    this way.

    Signed-off-by: Arjan van de Ven
    Signed-off-by: Andrew Morton
    Signed-off-by: Sam Ravnborg

    Arjan van de Ven
     
  • Currently, it is no longer possible to use the tags file to jump to
    system call function definitions with sys_foo, because the definitions
    are obscured by use of the SYSCALL_DEFINE* macros.

    This patch adds the appropriate option to ctags to make it see through
    the macro. Also, it adds the ENTRY() work already done for Exuberant
    to Emacs too.

    Signed-off-by: Rabin Vincent
    Signed-off-by: Sam Ravnborg

    Rabin Vincent
     
  • commit 4f628248a578585472e19e4cba2c604643af8c6c aka "kbuild: reintroduce
    ALLSOURCE_ARCHS support for tags/cscope" breaks tags generation for
    Kconfig symbols.

    Steps to reproduce:

    make tags
    vi -t PROC_FS

    It should jump to 'config PROC_FS' line.

    Signed-off-by: Alexey Dobriyan
    Tested-by: Pete Wyckoff
    Signed-off-by: Andrew Morton
    Signed-off-by: Sam Ravnborg

    Alexey Dobriyan
     
  • powerpc has dot symbols, so the dmesg output looks like:

    [ 0.327310] calling .migration_init+0x0/0x9c @ 1
    [ 0.327595] initcall .migration_init+0x0/0x9c returned 1 after 0 usecs

    The below fixes bootgraph.pl so it handles this correctly.

    Signed-off-by: Michael Neuling
    Signed-off-by: Arjan van de Ven
    Signed-off-by: Andrew Morton
    Signed-off-by: Sam Ravnborg

    Michael Neuling