Hi all,
Changes since next-20080717:
Restored tree: ttydev.
Temporarily dropped tree: acpi (confusion about its source).
Most of the differences were conflicts moving from tree to tree as some
of the trees are now merged into Linus' tree. Most have been inflicted
on the driver-core and usb trees. I have not notified these separately.
Because of the moving of conflicts around it is difficult to tell when
they are going away (though I assume some are).
The driver-core tree gained a conflict against Linus' tree.
The usb tree inherited a build fix patch from the pci tree.
The x86 tree gained a trivial conflict against Linus' tree but it was in
a commit that is still being reverted.
The ocsf2 tree gained several conflicts against Linus' tree because what
was sent to Linus was not the same as what is in linuxt-next.
The vfs tree gained conflicts against Linus' tree, the sparc tree and the
mips tree.
The semaphore-removal tree gained conflicts against Linus' tree that
required the reversion of two commits.
The ttydev tree had two patches that didn't apply and gained conflicts
against the wireless tree and the usb tree (4). It also required a build
fix patch.
Lots of conflicts have gone from the x86 and ubifs trees.
I have also applied the following patches for known problems:
sparc64: sysdev API change fallout
sparc32: smp_call_function API change fallout (this has already
been fixed in the upstream sparc tree and comes from an incomplete merge
on my part).
This tree fails to build for ARCH=sparc (i.e. 32bit) with a 64bit gcc
v3.4.5 - it tries to use the 64bit header files. This may be an artifact
of one of my merge fixups, but I don't actually think so.
----------------------------------------------------------------------------
I have created today's linux-next tree at
git://git.kernel.org/pub/scm/linux/kernel/git/sfr/linux-next.git
(patches at
http://www.kernel.org/pub/linux/kernel/people/sfr/linux-next/). If you
are tracking the linux-next tree using git, you should not use "git pull"
to do so as that will try to merge the new linux-next release with the
old one. You should use "git fetch" as mentioned in the FAQ on the wiki
(see below).
You can see which trees have been included by looking in the Next/Trees
file in the source. There are also quilt-import.log and merge.log files
in the Next directory. Between each merge, the tree was built with
a ppc64_defconfig for powerpc and an allmodconfig for x86_64. After the
final fixups, it is also built with powerpc allnoconfig,
44x_defconfig and allyesconfig and i386, sparc and sparc64 defconfig.
Below is a summary of the state of the merge.
We are up to 105 trees (counting Linus' and 14 trees of patches pending for
Linus' tree), more are welcome (even if they are currently empty).
Thanks to those who have contributed, and to those who haven't, please do.
Status of my local build tests will be at
http://kisskb.ellerman.id.au/linux-next . If maintainers want to give
advice about cross compilers/configs that work, we are always open to add
more builds.
Thanks to Jan Dittmer for adding the linux-next tree to his build tests
at http://l4x.org/k/ , the guys at http://test.kernel.org/ and Randy
Dunlap for doing many randconfig builds.
There is a wiki covering stuff to do with linux-next at
http://linux.f-seidel.de/linux-next/pmwiki/ . Thanks to Frank Seidel.
--
Cheers,
Stephen Rothwell [email protected]
$ git checkout master
$ git reset --hard stable
Merging origin/master
Merging powerpc-merge/merge
Merging scsi-rc-fixes/master
Merging net-current/master
Merging sparc-current/master
Merging sound-current/for-linus
Merging arm-current/master
Merging pci-current/for-linus
Merging wireless-current/master
Merging kbuild-current/master
Merging quilt/driver-core.current
Merging quilt/usb.current
Merging cpufreq-current/fixes
Merging input-current/for-linus
Merging md-current/for-2.6.26
Merging quilt/driver-core
CONFLICT (content): Merge conflict in arch/arm/kernel/time.c
CONFLICT (content): Merge conflict in arch/sparc64/kernel/pci.c
CONFLICT (content): Merge conflict in arch/x86/kernel/traps_32.c
CONFLICT (content): Merge conflict in arch/x86/kernel/traps_64.c
CONFLICT (content): Merge conflict in drivers/base/topology.c
CONFLICT (content): Merge conflict in drivers/i2c/i2c-core.c
CONFLICT (content): Merge conflict in drivers/s390/block/dasd.c
CONFLICT (content): Merge conflict in drivers/s390/block/dasd_eckd.c
CONFLICT (content): Merge conflict in drivers/s390/block/dasd_fba.c
CONFLICT (content): Merge conflict in drivers/s390/char/tape_core.c
CONFLICT (content): Merge conflict in drivers/s390/cio/device_fsm.c
CONFLICT (delete/modify): drivers/s390/cio/qdio.c deleted in HEAD and modified in quilt/driver-core. Version quilt/driver-core of drivers/s390/cio/qdio.c left in tree.
CONFLICT (content): Merge conflict in drivers/s390/net/claw.c
CONFLICT (content): Merge conflict in drivers/s390/net/ctcm_main.c
CONFLICT (content): Merge conflict in drivers/s390/net/lcs.c
CONFLICT (content): Merge conflict in drivers/s390/net/netiucv.c
CONFLICT (content): Merge conflict in drivers/s390/scsi/zfcp_aux.c
CONFLICT (content): Merge conflict in drivers/s390/scsi/zfcp_def.h
CONFLICT (content): Merge conflict in include/linux/device.h
CONFLICT (content): Merge conflict in sound/pci/maestro3.c
CONFLICT (content): Merge conflict in sound/pci/ymfpci/ymfpci_main.c
Applying scsi: fix fallout from the class_find_device API change
Applying scsi: fix fallout from KOBJ_NAME_LEN removal
Merging quilt/usb
CONFLICT (content): Merge conflict in drivers/usb/gadget/ether.c
CONFLICT (delete/modify): drivers/usb/serial/io_fw_down3.h deleted in HEAD and modified in quilt/usb. Version quilt/usb of drivers/usb/serial/io_fw_down3.h left in tree.
CONFLICT (content): Merge conflict in drivers/usb/serial/io_ti.c
CONFLICT (delete/modify): drivers/usb/serial/ti_fw_3410.h deleted in HEAD and modified in quilt/usb. Version quilt/usb of drivers/usb/serial/ti_fw_3410.h left in tree.
CONFLICT (delete/modify): drivers/usb/serial/ti_fw_5052.h deleted in HEAD and modified in quilt/usb. Version quilt/usb of drivers/usb/serial/ti_fw_5052.h left in tree.
CONFLICT (content): Merge conflict in drivers/usb/serial/ti_usb_3410_5052.c
$ git reset --hard
$ git checkout -b tmp quilt/usb
Created commit 32e64f0: Revert "USB: io_ti: FIrst cut at a big clean up"
$ git checkout master
CONFLICT (content): Merge conflict in drivers/usb/gadget/ether.c
CONFLICT (delete/modify): drivers/usb/serial/ti_fw_3410.h deleted in HEAD and modified in tmp. Version tmp of drivers/usb/serial/ti_fw_3410.h left in tree.
CONFLICT (delete/modify): drivers/usb/serial/ti_fw_5052.h deleted in HEAD and modified in tmp. Version tmp of drivers/usb/serial/ti_fw_5052.h left in tree.
CONFLICT (content): Merge conflict in drivers/usb/serial/ti_usb_3410_5052.c
$ git rm drivers/usb/serial/ti_fw_3410.h drivers/usb/serial/ti_fw_5052.h
Applying pci: usb fixup 1
Merging tip-core/auto-core-next
Merging cpus4096/auto-cpus4096-next
CONFLICT (content): Merge conflict in drivers/acpi/processor_throttling.c
Merging ftrace/auto-ftrace-next
Merging genirq/auto-genirq-next
Merging safe-poison-pointers/auto-safe-poison-pointers-next
Merging sched/auto-sched-next
Merging stackprotector/auto-stackprotector-next
Merging timers/auto-timers-next
Merging x86/auto-x86-next
CONFLICT (content): Merge conflict in arch/x86/kernel/Makefile
CONFLICT (content): Merge conflict in include/asm-x86/pci-direct.h
Applying pci: fix xen fallout from PM API change
CONFLICT (content): Merge conflict in include/asm-x86/pci-direct.h
mark the corrected paths with 'git add <paths>' or 'git rm <paths>' and commit the result.
Created commit 6747948: Revert "x86: consolidate header guards"
Merging pci/linux-next
Merging quilt/device-mapper
Merging hid/mm
Merging quilt/i2c
Merging quilt/kernel-doc
Merging avr32/avr32-arch
Merging v4l-dvb/stable
Applying v4l-dvb: class_for_each_device API change fallout
Merging s390/features
Merging sh/master
Merging jfs/next
Merging kbuild/master
CONFLICT (content): Merge conflict in include/Kbuild
Created commit 7e253aa: Revert "kconfig: normalize int/hex values"
Merging quilt/ide
CONFLICT (content): Merge conflict in drivers/ide/Kconfig
CONFLICT (content): Merge conflict in drivers/ide/arm/icside.c
CONFLICT (content): Merge conflict in drivers/ide/arm/palm_bk3710.c
CONFLICT (content): Merge conflict in drivers/ide/arm/rapide.c
CONFLICT (content): Merge conflict in drivers/ide/h8300/ide-h8300.c
CONFLICT (content): Merge conflict in drivers/ide/ide-pnp.c
CONFLICT (content): Merge conflict in drivers/ide/ide-probe.c
CONFLICT (content): Merge conflict in drivers/ide/ide.c
CONFLICT (content): Merge conflict in drivers/ide/legacy/buddha.c
CONFLICT (content): Merge conflict in drivers/ide/legacy/falconide.c
CONFLICT (content): Merge conflict in drivers/ide/legacy/gayle.c
CONFLICT (content): Merge conflict in drivers/ide/legacy/ide-4drives.c
CONFLICT (content): Merge conflict in drivers/ide/legacy/ide-cs.c
CONFLICT (content): Merge conflict in drivers/ide/legacy/ide_platform.c
CONFLICT (content): Merge conflict in drivers/ide/legacy/macide.c
CONFLICT (content): Merge conflict in drivers/ide/legacy/q40ide.c
CONFLICT (content): Merge conflict in drivers/ide/mips/au1xxx-ide.c
CONFLICT (content): Merge conflict in drivers/ide/mips/swarm.c
CONFLICT (content): Merge conflict in drivers/ide/pci/amd74xx.c
CONFLICT (content): Merge conflict in drivers/ide/pci/cmd640.c
CONFLICT (content): Merge conflict in drivers/ide/pci/cs5535.c
CONFLICT (content): Merge conflict in drivers/ide/pci/delkin_cb.c
CONFLICT (content): Merge conflict in drivers/ide/pci/scc_pata.c
CONFLICT (content): Merge conflict in drivers/ide/pci/sgiioc4.c
CONFLICT (content): Merge conflict in drivers/ide/pci/sis5513.c
CONFLICT (content): Merge conflict in drivers/ide/pci/via82cxxx.c
CONFLICT (content): Merge conflict in drivers/ide/ppc/pmac.c
CONFLICT (content): Merge conflict in drivers/ide/setup-pci.c
CONFLICT (content): Merge conflict in include/linux/ide.h
Merging libata/NEXT
Merging nfs/linux-next
Merging xfs/master
Merging infiniband/for-next
Merging blackfin/for-linus
Merging nfsd/nfsd-next
CONFLICT (content): Merge conflict in net/sunrpc/svc.c
Merging ieee1394/for-next
Merging hwmon/testing
Merging ubi/master
Merging kvm/master
CONFLICT (content): Merge conflict in arch/x86/kvm/vmx.c
CONFLICT (content): Merge conflict in virt/kvm/kvm_main.c
Merging dlm/next
Merging scsi/master
Merging ia64/test
Merging tests/master
CONFLICT (content): Merge conflict in lib/Kconfig.debug
Merging ocfs2/linux-next
CONFLICT (content): Merge conflict in fs/configfs/configfs_internal.h
CONFLICT (content): Merge conflict in fs/configfs/dir.c
CONFLICT (content): Merge conflict in fs/configfs/symlink.c
CONFLICT (content): Merge conflict in fs/ocfs2/super.c
Merging quilt/m68k
Merging powerpc/next
Merging lblnet/master
Merging ext4/next
Merging 4xx/next
Merging async_tx/next
Merging udf/for_next
Merging net/master
CONFLICT (content): Merge conflict in Documentation/powerpc/booting-without-of.txt
CONFLICT (content): Merge conflict in drivers/atm/Makefile
CONFLICT (content): Merge conflict in drivers/net/fs_enet/fs_enet-main.c
CONFLICT (content): Merge conflict in drivers/pci/pci-acpi.c
CONFLICT (content): Merge conflict in net/8021q/vlan.c
CONFLICT (content): Merge conflict in net/iucv/iucv.c
Merging sparc/master
CONFLICT (content): Merge conflict in include/asm-sparc/ide.h
CONFLICT (content): Merge conflict in include/asm-sparc/smp.h
CONFLICT (content): Merge conflict in include/asm-sparc64/ide.h
CONFLICT (content): Merge conflict in include/asm-sparc64/mmu.h
CONFLICT (content): Merge conflict in include/asm-sparc64/page.h
CONFLICT (content): Merge conflict in include/asm-sparc64/pgtable.h
Merging galak/powerpc-next
CONFLICT (content): Merge conflict in drivers/net/fs_enet/fs_enet-main.c
Merging mtd/master
CONFLICT (content): Merge conflict in arch/arm/mach-at91/board-yl-9200.c
CONFLICT (delete/modify): drivers/mtd/maps/mtx-1_flash.c deleted in HEAD and modified in mtd/master. Version mtd/master of drivers/mtd/maps/mtx-1_flash.c left in tree.
$ git rm drivers/mtd/maps/mtx-1_flash.c
Merging wireless/master
Merging crypto/master
Merging vfs/for-next
CONFLICT (delete/modify): arch/mips/kernel/irixelf.c deleted in HEAD and modified in vfs/for-next. Version vfs/for-next of arch/mips/kernel/irixelf.c left in tree.
CONFLICT (delete/modify): include/asm-mips/namei.h deleted in vfs/for-next and modified in HEAD. Version HEAD of include/asm-mips/namei.h left in tree.
CONFLICT (delete/modify): include/asm-sparc/namei.h deleted in vfs/for-next and modified in HEAD. Version HEAD of include/asm-sparc/namei.h left in tree.
CONFLICT (delete/modify): include/asm-sparc64/namei.h deleted in vfs/for-next and modified in HEAD. Version HEAD of include/asm-sparc64/namei.h left in tree.
CONFLICT (delete/modify): security/dummy.c deleted in HEAD and modified in vfs/for-next. Version vfs/for-next of security/dummy.c left in tree.
$ git rm security/dummy.c
$ git rm include/asm-sparc/namei.h include/asm-sparc64/namei.h include/asm-sparc/namei_32.h include/asm-sparc/namei_64.h
$ git rm arch/mips/kernel/irixelf.c include/asm-mips/namei.h
Merging sound/master
Merging arm/devel
CONFLICT (rename/delete): Renamed arch/arm/configs/em_x270_defconfig->arch/sh/configs/sh7785lcr_defconfig in HEAD and deleted in arm/devel
Merging cpufreq/next
CONFLICT (content): Merge conflict in drivers/cpufreq/cpufreq.c
Merging v9fs/for-next
Merging quilt/rr
CONFLICT (content): Merge conflict in drivers/char/hvc_console.h
CONFLICT (content): Merge conflict in drivers/net/tun.c
CONFLICT (content): Merge conflict in include/linux/if_tun.h
CONFLICT (content): Merge conflict in kernel/stop_machine.c
CONFLICT (content): Merge conflict in kernel/sysctl.c
Merging cifs/master
Merging mmc/next
Merging gfs2/master
Merging input/next
Merging semaphore/semaphore
CONFLICT (content): Merge conflict in include/asm-sparc64/semaphore.h
Merging semaphore-removal/semaphore-removal
CONFLICT (content): Merge conflict in drivers/net/ps3_gelic_wireless.c
CONFLICT (content): Merge conflict in drivers/scsi/qla2xxx/qla_attr.c
CONFLICT (content): Merge conflict in drivers/scsi/qla2xxx/qla_def.h
CONFLICT (content): Merge conflict in drivers/scsi/qla2xxx/qla_mbx.c
CONFLICT (content): Merge conflict in drivers/scsi/qla2xxx/qla_mid.c
CONFLICT (content): Merge conflict in drivers/scsi/qla2xxx/qla_os.c
$ git reset --hard
$ git checkout -b tmp semaphore-removal/semaphore-removal
Created commit 32b8d83: Revert "Convert qla_os to use mutex instead of semaphore"
Created commit 492edca: Revert "qla2xxx: Turn vport_sem into vport_mutex"
$ git checkout master
CONFLICT (content): Merge conflict in drivers/net/ps3_gelic_wireless.c
Merging bkl-removal/bkl-removal
Merging trivial/next
CONFLICT (content): Merge conflict in include/linux/securebits.h
Merging ubifs/for_andrew
Merging lsm/for-next
Merging block/for-next
Merging embedded/master
Merging firmware/master
CONFLICT (content): Merge conflict in drivers/media/dvb/ttpci/Makefile
Merging pcmcia/master
Merging battery/master
CONFLICT (content): Merge conflict in drivers/power/Kconfig
CONFLICT (content): Merge conflict in drivers/power/Makefile
Merging leds/for-mm
Merging backlight/for-mm
Merging kgdb/kgdb-next
Merging slab/for-next
Merging m68knommu/for-next
Merging uclinux/for-next
Merging md/for-next
Merging cris/for-next
Merging kmemcheck/auto-kmemcheck-next
Merging generic-ipi/auto-generic-ipi-next
Merging mips/mips-for-linux-next
Merging mfd/for-next
Merging hdlc/hdlc-next
CONFLICT (content): Merge conflict in drivers/net/wan/cosa.c
CONFLICT (content): Merge conflict in drivers/net/wan/pc300_drv.c
Merging drm/drm-next
CONFLICT (add/add): Merge conflict in drivers/gpu/Makefile
CONFLICT (add/add): Merge conflict in drivers/gpu/drm/i830/Makefile
CONFLICT (content): Merge conflict in include/Kbuild
CONFLICT (add/add): Merge conflict in include/drm/Kbuild
Merging voltage/reg-for-linus
Merging security-testing/next
Merging quilt/ttydev
CONFLICT (delete/modify): drivers/net/wireless/strip.c deleted in HEAD and modified in quilt/ttydev. Version quilt/ttydev of drivers/net/wireless/strip.c left in tree.
CONFLICT (delete/modify): drivers/usb/serial/airprime.c deleted in HEAD and modified in quilt/ttydev. Version quilt/ttydev of drivers/usb/serial/airprime.c left in tree.
CONFLICT (content): Merge conflict in drivers/usb/serial/cp2101.c
CONFLICT (content): Merge conflict in drivers/usb/serial/ir-usb.c
CONFLICT (content): Merge conflict in drivers/usb/serial/usb-serial.c
$ git rm drivers/net/wireless/strip.c
$ git rm drivers/usb/serial/airprime.c
Applying usb: tty API change fallout
Applying sparc64: sysdev API change fallout
Applying sparc32: smp_call_function API change fallout
Hello,
I get this on my x86_32 laptop.
------------[ cut here ]------------
WARNING: at /home/mako/linux/lkt/sources/linux-next/kernel/lockdep.c:2068 trace_hardirqs_on_caller+0xdc/0x128()
Modules linked in:
Pid: 0, comm: swapper Not tainted 2.6.26-next-20080718 #1
[<c011d5ca>] warn_on_slowpath+0x4e/0x68
[<c0132600>] ? init_srcu_struct+0x17/0x3b
[<c011de86>] ? release_console_sem+0x1c2/0x1e8
[<c0139818>] ? trace_hardirqs_off+0xb/0xd
[<c02b95cb>] ? _spin_unlock_irqrestore+0x39/0x60
[<c011de9a>] ? release_console_sem+0x1d6/0x1e8
[<c01326be>] ? up+0x23/0x30
[<c011de86>] ? release_console_sem+0x1c2/0x1e8
[<c01326be>] ? up+0x23/0x30
[<c011de86>] ? release_console_sem+0x1c2/0x1e8
[<c013b83b>] ? __lock_acquire+0x365/0x1151
[<c013b048>] trace_hardirqs_on_caller+0xdc/0x128
[<c013b09f>] trace_hardirqs_on+0xb/0xd
[<c016a40b>] __slab_alloc+0x329/0x61e
[<c011665f>] ? kmemcheck_memset+0x24/0xe5
[<c016a7a0>] kmem_cache_alloc+0xa0/0xb6
[<c01dedb4>] ? kobject_init+0x3b/0xdd
[<c01dedb4>] ? kobject_init+0x3b/0xdd
[<c01dedb4>] kobject_init+0x3b/0xdd
[<c025997f>] firmware_map_add_entry+0x2a/0x4b
[<c03b8e0c>] firmware_map_add_early+0x32/0x56
[<c03a3faf>] e820_reserve_resources+0x10a/0x14e
[<c03a1965>] setup_arch+0x375/0x540
[<c0136e81>] ? clockevents_register_notifier+0x28/0x2d
[<c011e477>] ? printk+0x1b/0x1d
[<c03a09df>] start_kernel+0x67/0x278
[<c03a0304>] i386_start_kernel+0x64/0x70
=======================
---[ end trace 4eaa2a86a8e2da22 ]---
and that's
/*
* Hardirqs will be enabled:
*/
void trace_hardirqs_on_caller(unsigned long a0)
{
struct task_struct *curr = current;
unsigned long ip;
time_hardirqs_on(CALLER_ADDR0, a0);
if (unlikely(!debug_locks || current->lockdep_recursion))
return;
------> if (DEBUG_LOCKS_WARN_ON(unlikely(!early_boot_irqs_enabled))) <------
return;
if (unlikely(curr->hardirqs_enabled)) {
debug_atomic_inc(&redundant_hardirqs_on);
return;
Hello,
$ grep nfs /etc/fstab
flyhigh:/home/mako/linux/lkt /home/mako/linux/lkt nfs noauto,rw,user 0 0
$ mount lkt
$ mount | grep lkt
flyhigh:/home/mako/linux/lkt on /home/mako/linux/lkt type nfs (rw,user=mako,addr=192.168.1.3)
$ cd lkt/
-bash: cd: lkt/: Permission denied
# cd lkt/
bash: cd: lkt/: Permission denied
$ ls -al | grep lkt
drwxr-xr-x 6 mako mako 4096 Jun 29 10:40 lkt
This nfs share works perfectly fine with earlier kernels.
Do you want me to bisect or is this a known issue?
Mariusz
Hello,
On powerpc (G3) it hangs early. The last message I see is:
ide-pmac: Found Apple KeyLargo ATA-4 controller (macio), bus ID 2, irq 19
Then it just stays there forever and nothing happens. I tried to bisectit
but I ran in all sorts of oopses, hangs, garbage on the screen, etc :)
Mariusz
0000:00:0b.0 Host bridge: Apple Computer Inc. UniNorth AGP
0000:00:10.0 Display controller: ATI Technologies Inc Rage 128 RL/VR AGP
0001:10:0b.0 Host bridge: Apple Computer Inc. UniNorth PCI
0001:10:12.0 FireWire (IEEE 1394): Texas Instruments TSB12LV23 IEEE-1394 Controller
0001:10:13.0 Ethernet controller: Digital Equipment Corporation DECchip 21142/43 (rev 41)
0001:10:17.0 Class ff00: Apple Computer Inc. KeyLargo Mac I/O (rev 02)
0001:10:18.0 USB Controller: Apple Computer Inc. KeyLargo USB
0001:10:19.0 USB Controller: Apple Computer Inc. KeyLargo USB
0002:20:0b.0 Host bridge: Apple Computer Inc. UniNorth Internal PCI
processor : 0
cpu : 740/750
temperature : 52 C (uncalibrated)
clock : 400.000000MHz
revision : 2.2 (pvr 0008 0202)
bogomips : 49.79
timebase : 24967326
platform : PowerMac
machine : PowerMac2,1
motherboard : PowerMac2,1 MacRISC2 MacRISC Power Macintosh
detected as : 66 (iMac FireWire)
pmac flags : 00000014
L2 cache : 512K unified
pmac-generation : NewWorld
On Sat, Jul 19, 2008 at 9:28 AM, Mariusz Kozlowski
<[email protected]> wrote:
> Hello,
>
> I get this on my x86_32 laptop.
>
> ------------[ cut here ]------------
> WARNING: at /home/mako/linux/lkt/sources/linux-next/kernel/lockdep.c:2068 trace_hardirqs_on_caller+0xdc/0x128()
> Modules linked in:
> Pid: 0, comm: swapper Not tainted 2.6.26-next-20080718 #1
> [<c011d5ca>] warn_on_slowpath+0x4e/0x68
> [<c0132600>] ? init_srcu_struct+0x17/0x3b
> [<c011de86>] ? release_console_sem+0x1c2/0x1e8
> [<c0139818>] ? trace_hardirqs_off+0xb/0xd
> [<c02b95cb>] ? _spin_unlock_irqrestore+0x39/0x60
> [<c011de9a>] ? release_console_sem+0x1d6/0x1e8
> [<c01326be>] ? up+0x23/0x30
> [<c011de86>] ? release_console_sem+0x1c2/0x1e8
> [<c01326be>] ? up+0x23/0x30
> [<c011de86>] ? release_console_sem+0x1c2/0x1e8
> [<c013b83b>] ? __lock_acquire+0x365/0x1151
> [<c013b048>] trace_hardirqs_on_caller+0xdc/0x128
> [<c013b09f>] trace_hardirqs_on+0xb/0xd
> [<c016a40b>] __slab_alloc+0x329/0x61e
> [<c011665f>] ? kmemcheck_memset+0x24/0xe5
> [<c016a7a0>] kmem_cache_alloc+0xa0/0xb6
> [<c01dedb4>] ? kobject_init+0x3b/0xdd
> [<c01dedb4>] ? kobject_init+0x3b/0xdd
> [<c01dedb4>] kobject_init+0x3b/0xdd
> [<c025997f>] firmware_map_add_entry+0x2a/0x4b
> [<c03b8e0c>] firmware_map_add_early+0x32/0x56
> [<c03a3faf>] e820_reserve_resources+0x10a/0x14e
> [<c03a1965>] setup_arch+0x375/0x540
> [<c0136e81>] ? clockevents_register_notifier+0x28/0x2d
> [<c011e477>] ? printk+0x1b/0x1d
> [<c03a09df>] start_kernel+0x67/0x278
> [<c03a0304>] i386_start_kernel+0x64/0x70
> =======================
> ---[ end trace 4eaa2a86a8e2da22 ]---
>
What I don't get here is how SLUB can be used this early in the boot
process. Notice that this is still miles away from the
SLUB: Genslabs=12, HWalign=128, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
line, which comes much later. And that kobject_init() _is_ calling
kzalloc() via verify_dynamic_kobject_allocation(). Isn't this an
error?
(Unfortunately, my "git log" doesn't turn up any recent changes for
any of the affected code paths here.)
Vegard
--
"The animistic metaphor of the bug that maliciously sneaked in while
the programmer was not looking is intellectually dishonest as it
disguises that the error is the programmer's own creation."
-- E. W. Dijkstra, EWD1036
On Sat, 2008-07-19 at 11:55 +0200, Vegard Nossum wrote:
> On Sat, Jul 19, 2008 at 9:28 AM, Mariusz Kozlowski
> <[email protected]> wrote:
> > Hello,
> >
> > I get this on my x86_32 laptop.
> >
> > ------------[ cut here ]------------
> > WARNING: at /home/mako/linux/lkt/sources/linux-next/kernel/lockdep.c:2068 trace_hardirqs_on_caller+0xdc/0x128()
> > Modules linked in:
> > Pid: 0, comm: swapper Not tainted 2.6.26-next-20080718 #1
> > [<c011d5ca>] warn_on_slowpath+0x4e/0x68
> > [<c0132600>] ? init_srcu_struct+0x17/0x3b
> > [<c011de86>] ? release_console_sem+0x1c2/0x1e8
> > [<c0139818>] ? trace_hardirqs_off+0xb/0xd
> > [<c02b95cb>] ? _spin_unlock_irqrestore+0x39/0x60
> > [<c011de9a>] ? release_console_sem+0x1d6/0x1e8
> > [<c01326be>] ? up+0x23/0x30
> > [<c011de86>] ? release_console_sem+0x1c2/0x1e8
> > [<c01326be>] ? up+0x23/0x30
> > [<c011de86>] ? release_console_sem+0x1c2/0x1e8
> > [<c013b83b>] ? __lock_acquire+0x365/0x1151
> > [<c013b048>] trace_hardirqs_on_caller+0xdc/0x128
> > [<c013b09f>] trace_hardirqs_on+0xb/0xd
> > [<c016a40b>] __slab_alloc+0x329/0x61e
> > [<c011665f>] ? kmemcheck_memset+0x24/0xe5
> > [<c016a7a0>] kmem_cache_alloc+0xa0/0xb6
> > [<c01dedb4>] ? kobject_init+0x3b/0xdd
> > [<c01dedb4>] ? kobject_init+0x3b/0xdd
> > [<c01dedb4>] kobject_init+0x3b/0xdd
> > [<c025997f>] firmware_map_add_entry+0x2a/0x4b
> > [<c03b8e0c>] firmware_map_add_early+0x32/0x56
> > [<c03a3faf>] e820_reserve_resources+0x10a/0x14e
> > [<c03a1965>] setup_arch+0x375/0x540
> > [<c0136e81>] ? clockevents_register_notifier+0x28/0x2d
> > [<c011e477>] ? printk+0x1b/0x1d
> > [<c03a09df>] start_kernel+0x67/0x278
> > [<c03a0304>] i386_start_kernel+0x64/0x70
> > =======================
> > ---[ end trace 4eaa2a86a8e2da22 ]---
> >
>
> What I don't get here is how SLUB can be used this early in the boot
> process. Notice that this is still miles away from the
>
> SLUB: Genslabs=12, HWalign=128, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
>
> line, which comes much later. And that kobject_init() _is_ calling
> kzalloc() via verify_dynamic_kobject_allocation(). Isn't this an
> error?
>
> (Unfortunately, my "git log" doesn't turn up any recent changes for
> any of the affected code paths here.)
Indeed, looks like a bug in kobject_init(). You need to wait for
kmem_cache_init() to be run before using kzalloc().
Pekka
On Sat, Jul 19, 2008 at 11:55 AM, Vegard Nossum <[email protected]> wrote:
> What I don't get here is how SLUB can be used this early in the boot
> process. Notice that this is still miles away from the
>
> SLUB: Genslabs=12, HWalign=128, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
>
> line, which comes much later. And that kobject_init() _is_ calling
> kzalloc() via verify_dynamic_kobject_allocation(). Isn't this an
> error?
>
> (Unfortunately, my "git log" doesn't turn up any recent changes for
> any of the affected code paths here.)
Ehe... and this is the reason why: The code was added by this patch:
commit 0e3638d1e04040121af00195f7e4628078246489
Author: Dave Hansen <[email protected]>
Date: Thu Mar 16 17:30:16 2006 -0800
warn when statically-allocated kobjects are used
..which only exists in -next. Is that just a truly ancient patch, or
did somebody forget to adjust their clock?
(Stephen: Maybe this has been answered before, but what's the best way
to figure out where it came from?)
Vegard
--
"The animistic metaphor of the bug that maliciously sneaked in while
the programmer was not looking is intellectually dishonest as it
disguises that the error is the programmer's own creation."
-- E. W. Dijkstra, EWD1036
Hi Vegard,
On Sat, 19 Jul 2008 14:59:12 +0200 "Vegard Nossum" <[email protected]> wrote:
>
> Ehe... and this is the reason why: The code was added by this patch:
>
> commit 0e3638d1e04040121af00195f7e4628078246489
> Author: Dave Hansen <[email protected]>
> Date: Thu Mar 16 17:30:16 2006 -0800
>
> warn when statically-allocated kobjects are used
>
> ..which only exists in -next. Is that just a truly ancient patch, or
> did somebody forget to adjust their clock?
>
> (Stephen: Maybe this has been answered before, but what's the best way
> to figure out where it came from?)
The easiest way is to ask me to look in my source tree (since I have the
heads of all the branches I merge - at least until the next day and gitk
then makes it easy ...).
In this case, that commit comes from the driver-core tree.
--
Cheers,
Stephen Rothwell [email protected]
http://www.canb.auug.org.au/~sfr/
Hi,
Since around next-20080709 linux-next has been crashing very early in
the boot on my x86_32 laptop (the problem is also reproducible under
qemu, config & screenshot attached). Now that merging has paused for
a moment I took a closer look into the issue.
First I bisected it down to commit 99c2fcc5306153c8ae56542b3e80dddaf77baa45
("Merge branch 'quilt/driver-core'") and then with a little patchwork I
identified the source as a commit 0e3638d1e04040121af00195f7e4628078246489
("warn when statically-allocated kobjects are used").
With commit 0e3638d1e04040121af00195f7e4628078246489 reverted and fixup
from Al for vfs-next/net-next conflict (http://lkml.org/lkml/2008/7/18/591)
next-20080718 works fine for me.
BTW ide tree's conflicts against Linus' tree should be fixed now.
Thanks,
Bart
On Sat, Jul 19, 2008 at 02:59:12PM +0200, Vegard Nossum wrote:
> On Sat, Jul 19, 2008 at 11:55 AM, Vegard Nossum <[email protected]> wrote:
> > What I don't get here is how SLUB can be used this early in the boot
> > process. Notice that this is still miles away from the
> >
> > SLUB: Genslabs=12, HWalign=128, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
> >
> > line, which comes much later. And that kobject_init() _is_ calling
> > kzalloc() via verify_dynamic_kobject_allocation(). Isn't this an
> > error?
> >
> > (Unfortunately, my "git log" doesn't turn up any recent changes for
> > any of the affected code paths here.)
>
> Ehe... and this is the reason why: The code was added by this patch:
>
> commit 0e3638d1e04040121af00195f7e4628078246489
> Author: Dave Hansen <[email protected]>
> Date: Thu Mar 16 17:30:16 2006 -0800
>
> warn when statically-allocated kobjects are used
>
> ..which only exists in -next. Is that just a truly ancient patch, or
> did somebody forget to adjust their clock?
It is truely a very old patch, that only lives in my tree, and currently
isn't planned to go to Linus any year soon.
But it has a very long history of living in the -mm tree, and finding
real bugs, it's just not "safe" enough to go to Linus's tree. Unless
you think it is?
thanks,
greg k-h
On Sun, Jul 20, 2008 at 12:17 AM, Greg KH <[email protected]> wrote:
> On Sat, Jul 19, 2008 at 02:59:12PM +0200, Vegard Nossum wrote:
>> On Sat, Jul 19, 2008 at 11:55 AM, Vegard Nossum <[email protected]> wrote:
>> > What I don't get here is how SLUB can be used this early in the boot
>> > process. Notice that this is still miles away from the
>> >
>> > SLUB: Genslabs=12, HWalign=128, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
>> >
>> > line, which comes much later. And that kobject_init() _is_ calling
>> > kzalloc() via verify_dynamic_kobject_allocation(). Isn't this an
>> > error?
>> >
>> > (Unfortunately, my "git log" doesn't turn up any recent changes for
>> > any of the affected code paths here.)
>>
>> Ehe... and this is the reason why: The code was added by this patch:
>>
>> commit 0e3638d1e04040121af00195f7e4628078246489
>> Author: Dave Hansen <[email protected]>
>> Date: Thu Mar 16 17:30:16 2006 -0800
>>
>> warn when statically-allocated kobjects are used
>>
>> ..which only exists in -next. Is that just a truly ancient patch, or
>> did somebody forget to adjust their clock?
>
> It is truely a very old patch, that only lives in my tree, and currently
> isn't planned to go to Linus any year soon.
>
> But it has a very long history of living in the -mm tree, and finding
> real bugs, it's just not "safe" enough to go to Linus's tree. Unless
> you think it is?
Hm. In this case, the patch is not even reporting a problem, it is in
fact in error itself.
The problem is that it calls kzalloc() before the slab caches have
been set up. (Yes, it's a wonder that nothing crashed.) I can only
suggest the addendum
if (!slab_is_available())
return;
Vegard
--
"The animistic metaphor of the bug that maliciously sneaked in while
the programmer was not looking is intellectually dishonest as it
disguises that the error is the programmer's own creation."
-- E. W. Dijkstra, EWD1036
On Sun, Jul 20, 2008 at 12:27:26AM +0200, Vegard Nossum wrote:
> On Sun, Jul 20, 2008 at 12:17 AM, Greg KH <[email protected]> wrote:
> > On Sat, Jul 19, 2008 at 02:59:12PM +0200, Vegard Nossum wrote:
> >> On Sat, Jul 19, 2008 at 11:55 AM, Vegard Nossum <[email protected]> wrote:
> >> > What I don't get here is how SLUB can be used this early in the boot
> >> > process. Notice that this is still miles away from the
> >> >
> >> > SLUB: Genslabs=12, HWalign=128, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
> >> >
> >> > line, which comes much later. And that kobject_init() _is_ calling
> >> > kzalloc() via verify_dynamic_kobject_allocation(). Isn't this an
> >> > error?
> >> >
> >> > (Unfortunately, my "git log" doesn't turn up any recent changes for
> >> > any of the affected code paths here.)
> >>
> >> Ehe... and this is the reason why: The code was added by this patch:
> >>
> >> commit 0e3638d1e04040121af00195f7e4628078246489
> >> Author: Dave Hansen <[email protected]>
> >> Date: Thu Mar 16 17:30:16 2006 -0800
> >>
> >> warn when statically-allocated kobjects are used
> >>
> >> ..which only exists in -next. Is that just a truly ancient patch, or
> >> did somebody forget to adjust their clock?
> >
> > It is truely a very old patch, that only lives in my tree, and currently
> > isn't planned to go to Linus any year soon.
> >
> > But it has a very long history of living in the -mm tree, and finding
> > real bugs, it's just not "safe" enough to go to Linus's tree. Unless
> > you think it is?
>
> Hm. In this case, the patch is not even reporting a problem, it is in
> fact in error itself.
>
> The problem is that it calls kzalloc() before the slab caches have
> been set up. (Yes, it's a wonder that nothing crashed.) I can only
> suggest the addendum
>
> if (!slab_is_available())
> return;
That's odd, what changed to cause this to become a problem? Is a
kobject somehow now being created too early in the boot process than it
was in the past? This code hasn't changed in a very long time, so I'm
loath to blame this code, odds are the root cause is somewhere else...
thanks,
greg k-h
On Sun, Jul 20, 2008 at 12:27 AM, Vegard Nossum <[email protected]> wrote:
>>> commit 0e3638d1e04040121af00195f7e4628078246489
>>> Author: Dave Hansen <[email protected]>
>>> Date: Thu Mar 16 17:30:16 2006 -0800
>>>
>>> warn when statically-allocated kobjects are used
>>>
>>> ..which only exists in -next. Is that just a truly ancient patch, or
>>> did somebody forget to adjust their clock?
>>
>> It is truely a very old patch, that only lives in my tree, and currently
>> isn't planned to go to Linus any year soon.
>>
>> But it has a very long history of living in the -mm tree, and finding
>> real bugs, it's just not "safe" enough to go to Linus's tree. Unless
>> you think it is?
>
> Hm. In this case, the patch is not even reporting a problem, it is in
> fact in error itself.
>
> The problem is that it calls kzalloc() before the slab caches have
> been set up. (Yes, it's a wonder that nothing crashed.) I can only
> suggest the addendum
>
> if (!slab_is_available())
> return;
Well, of course, it's also possible that the e820 code shouldn't be
initializing kobjects this early in the first place.
firmware_map_add_early() is using bootmem for the allocation. So yes,
I guess it should possible to use kobjects here. That said, this code
is in fact fairly recent:
commit 69ac9cd629ca96e59f34eb4ccd12d00b2c8276a7
Author: Bernhard Walle <[email protected]>
Date: Fri Jun 27 13:12:54 2008 +0200
sysfs: add /sys/firmware/memmap
I'll add the Cc. I still have a feeling that the kobject patch should
expect to run even when slab is not available.
Vegard
--
"The animistic metaphor of the bug that maliciously sneaked in while
the programmer was not looking is intellectually dishonest as it
disguises that the error is the programmer's own creation."
-- E. W. Dijkstra, EWD1036
On Sun, Jul 20, 2008 at 12:44:38AM +0200, Vegard Nossum wrote:
> On Sun, Jul 20, 2008 at 12:27 AM, Vegard Nossum <[email protected]> wrote:
> >>> commit 0e3638d1e04040121af00195f7e4628078246489
> >>> Author: Dave Hansen <[email protected]>
> >>> Date: Thu Mar 16 17:30:16 2006 -0800
> >>>
> >>> warn when statically-allocated kobjects are used
> >>>
> >>> ..which only exists in -next. Is that just a truly ancient patch, or
> >>> did somebody forget to adjust their clock?
> >>
> >> It is truely a very old patch, that only lives in my tree, and currently
> >> isn't planned to go to Linus any year soon.
> >>
> >> But it has a very long history of living in the -mm tree, and finding
> >> real bugs, it's just not "safe" enough to go to Linus's tree. Unless
> >> you think it is?
> >
> > Hm. In this case, the patch is not even reporting a problem, it is in
> > fact in error itself.
> >
> > The problem is that it calls kzalloc() before the slab caches have
> > been set up. (Yes, it's a wonder that nothing crashed.) I can only
> > suggest the addendum
> >
> > if (!slab_is_available())
> > return;
>
> Well, of course, it's also possible that the e820 code shouldn't be
> initializing kobjects this early in the first place.
That's probably the case, the kobject code isn't able to handle this
kind of thing (sysfs included).
> firmware_map_add_early() is using bootmem for the allocation. So yes,
> I guess it should possible to use kobjects here. That said, this code
> is in fact fairly recent:
>
> commit 69ac9cd629ca96e59f34eb4ccd12d00b2c8276a7
> Author: Bernhard Walle <[email protected]>
> Date: Fri Jun 27 13:12:54 2008 +0200
>
> sysfs: add /sys/firmware/memmap
>
> I'll add the Cc. I still have a feeling that the kobject patch should
> expect to run even when slab is not available.
I never has been expected to do so in the past, so odds are, lots of
things might break :(
thanks,
greg k-h
On Sun, Jul 20, 2008 at 12:58 AM, Greg KH <[email protected]> wrote:
>> firmware_map_add_early() is using bootmem for the allocation. So yes,
>> I guess it should possible to use kobjects here. That said, this code
>> is in fact fairly recent:
>>
>> commit 69ac9cd629ca96e59f34eb4ccd12d00b2c8276a7
>> Author: Bernhard Walle <[email protected]>
>> Date: Fri Jun 27 13:12:54 2008 +0200
>>
>> sysfs: add /sys/firmware/memmap
>>
>> I'll add the Cc. I still have a feeling that the kobject patch should
>> expect to run even when slab is not available.
>
> I never has been expected to do so in the past, so odds are, lots of
> things might break :(
Yeah. Maybe you should withdraw your ack? :-D
Signed-off-by: Bernhard Walle <[email protected]>
Acked-by: Greg KH <[email protected]>
Acked-by: Vivek Goyal <[email protected]>
Cc: [email protected]
Cc: [email protected]
Signed-off-by: Ingo Molnar <[email protected]>
I'm sorry for having been a bit rash earlier -- it's the combination
of the patches that produce the failure; they both seem okay on their
own. On the other hand, this is what -next is for, isn't it?
Maybe the firmware memmap code can simply run a little later in the
boot sequence?
Vegard
--
"The animistic metaphor of the bug that maliciously sneaked in while
the programmer was not looking is intellectually dishonest as it
disguises that the error is the programmer's own creation."
-- E. W. Dijkstra, EWD1036
On Sun, Jul 20, 2008 at 01:11:36AM +0200, Vegard Nossum wrote:
> On Sun, Jul 20, 2008 at 12:58 AM, Greg KH <[email protected]> wrote:
> >> firmware_map_add_early() is using bootmem for the allocation. So yes,
> >> I guess it should possible to use kobjects here. That said, this code
> >> is in fact fairly recent:
> >>
> >> commit 69ac9cd629ca96e59f34eb4ccd12d00b2c8276a7
> >> Author: Bernhard Walle <[email protected]>
> >> Date: Fri Jun 27 13:12:54 2008 +0200
> >>
> >> sysfs: add /sys/firmware/memmap
> >>
> >> I'll add the Cc. I still have a feeling that the kobject patch should
> >> expect to run even when slab is not available.
> >
> > I never has been expected to do so in the past, so odds are, lots of
> > things might break :(
>
> Yeah. Maybe you should withdraw your ack? :-D
>
> Signed-off-by: Bernhard Walle <[email protected]>
> Acked-by: Greg KH <[email protected]>
> Acked-by: Vivek Goyal <[email protected]>
> Cc: [email protected]
> Cc: [email protected]
> Signed-off-by: Ingo Molnar <[email protected]>
Heh, I didn't realize that this ran so early in the boot process, the
code logically looks correct :)
> I'm sorry for having been a bit rash earlier -- it's the combination
> of the patches that produce the failure; they both seem okay on their
> own. On the other hand, this is what -next is for, isn't it?
Yup.
> Maybe the firmware memmap code can simply run a little later in the
> boot sequence?
Possibly. I wonder why this is only a problem on your machine and not
on anything that Ingo tested?
thanks,
greg k-h
On Friday, 18 of July 2008, Stephen Rothwell wrote:
> Hi all,
>
> Changes since next-20080717:
>
> Restored tree: ttydev.
>
> Temporarily dropped tree: acpi (confusion about its source).
>
> Most of the differences were conflicts moving from tree to tree as some
> of the trees are now merged into Linus' tree. Most have been inflicted
> on the driver-core and usb trees. I have not notified these separately.
>
> Because of the moving of conflicts around it is difficult to tell when
> they are going away (though I assume some are).
>
> The driver-core tree gained a conflict against Linus' tree.
>
> The usb tree inherited a build fix patch from the pci tree.
>
> The x86 tree gained a trivial conflict against Linus' tree but it was in
> a commit that is still being reverted.
>
> The ocsf2 tree gained several conflicts against Linus' tree because what
> was sent to Linus was not the same as what is in linuxt-next.
>
> The vfs tree gained conflicts against Linus' tree, the sparc tree and the
> mips tree.
>
> The semaphore-removal tree gained conflicts against Linus' tree that
> required the reversion of two commits.
>
> The ttydev tree had two patches that didn't apply and gained conflicts
> against the wireless tree and the usb tree (4). It also required a build
> fix patch.
>
> Lots of conflicts have gone from the x86 and ubifs trees.
>
> I have also applied the following patches for known problems:
>
> sparc64: sysdev API change fallout
> sparc32: smp_call_function API change fallout (this has already
> been fixed in the upstream sparc tree and comes from an incomplete merge
> on my part).
>
> This tree fails to build for ARCH=sparc (i.e. 32bit) with a 64bit gcc
> v3.4.5 - it tries to use the 64bit header files. This may be an artifact
> of one of my merge fixups, but I don't actually think so.
>
> ----------------------------------------------------------------------------
commit db99b98885e717454feef1c6868b27d3f23c2e7c
Author: Stephen Hemminger <[email protected]>
Date: Wed May 14 17:04:16 2008 -0700
sky2: put PHY in sleep when down
and
commit a068c0adf2fe28b324bca87f85d27af7f993cdaf
Author: Stephen Hemminger <[email protected]>
Date: Wed May 14 17:04:17 2008 -0700
sky2: pci power savings
break Wake-on-LAN on my test box using sky2. More specifically, with these
two commits applied the box hangs solid during hibernation/power off
while executing the sky2 callbacks.
The adapter is reported as 88E8056 (Asus M3A32-MVP Deluxe mainboard).
Thanks,
Rafael
On Sun, 2008-07-20 at 01:11 +0200, Vegard Nossum wrote:
> Maybe the firmware memmap code can simply run a little later in the
> boot sequence?
Heh, I'm catching up on this thread...
It is possible that it could run later. But, I do know that there are
at least a couple of these tables (on various arches) that we toss out
of memory or become unavailable later in boot.
I do this this:
sysfs: add /sys/firmware/memmap
is really being done at the wrong level. I don't, for instance, see
*any* reference to memory hotplug in these patches. That's because
they're done against firmware structures, and memory hotplug doesn't
update firmware structures on the two architectures that I can remember
(ppc64 and x86).
In other words, kexec using this probably won't work on a memory hotplug
machine.
Secondly, why don't we just modify the
existing /sys/devices/system/memory things to properly export what exec
needs? They're already cross-platform *and* they're updated with memory
hotplug events.
-- Dave
Am Sonntag, den 20.07.2008, 02:01 -0700 schrieb Dave Hansen:
> On Sun, 2008-07-20 at 01:11 +0200, Vegard Nossum wrote:
> > Maybe the firmware memmap code can simply run a little later in the
> > boot sequence?
>
> Heh, I'm catching up on this thread...
>
On that thread?
http://lkml.org/lkml/2008/7/15/108
* "Vegard Nossum" <[email protected]> [2008-07-20 00:44]:
>
> On Sun, Jul 20, 2008 at 12:27 AM, Vegard Nossum <[email protected]> wrote:
> >>> commit 0e3638d1e04040121af00195f7e4628078246489
> >>> Author: Dave Hansen <[email protected]>
> >>> Date: Thu Mar 16 17:30:16 2006 -0800
> >>>
> >>> warn when statically-allocated kobjects are used
> >>>
> >>> ..which only exists in -next. Is that just a truly ancient patch, or
> >>> did somebody forget to adjust their clock?
> >>
> >> It is truely a very old patch, that only lives in my tree, and currently
> >> isn't planned to go to Linus any year soon.
> >>
> >> But it has a very long history of living in the -mm tree, and finding
> >> real bugs, it's just not "safe" enough to go to Linus's tree. Unless
> >> you think it is?
> >
> > Hm. In this case, the patch is not even reporting a problem, it is in
> > fact in error itself.
> >
> > The problem is that it calls kzalloc() before the slab caches have
> > been set up. (Yes, it's a wonder that nothing crashed.) I can only
> > suggest the addendum
> >
> > if (!slab_is_available())
> > return;
>
> Well, of course, it's also possible that the e820 code shouldn't be
> initializing kobjects this early in the first place.
>
> firmware_map_add_early() is using bootmem for the allocation. So yes,
> I guess it should possible to use kobjects here. That said, this code
> is in fact fairly recent:
>
> commit 69ac9cd629ca96e59f34eb4ccd12d00b2c8276a7
> Author: Bernhard Walle <[email protected]>
> Date: Fri Jun 27 13:12:54 2008 +0200
>
> sysfs: add /sys/firmware/memmap
>
> I'll add the Cc. I still have a feeling that the kobject patch should
> expect to run even when slab is not available.
I already posted a fix for that problem, see
http://article.gmane.org/gmane.linux.kernel.kexec/1882.
Which people should I CC to get that fix into linux-next?
Bernhard
--
Bernhard Walle, SUSE LINUX Products GmbH, Architecture Development
* Greg KH <[email protected]> [2008-07-19 16:20]:
>
> > Maybe the firmware memmap code can simply run a little later in the
> > boot sequence?
>
> Possibly. I wonder why this is only a problem on your machine and not
> on anything that Ingo tested?
It also was on my machine when I tested it on linux-next. That's why I
made the patch as described in
http://article.gmane.org/gmane.linux.kernel.kexec/1882.
However, it was not in tip tree. It seems to be the combination of
patches, but I don't know why and I didn't have the time to find it
out, the fix was much easier.
Bernhard
--
Bernhard Walle, SUSE LINUX Products GmbH, Architecture Development
* Dave Hansen <[email protected]> [2008-07-20 02:01]:
>
> It is possible that it could run later. But, I do know that there are
> at least a couple of these tables (on various arches) that we toss out
> of memory or become unavailable later in boot.
>
> I do this this:
>
> sysfs: add /sys/firmware/memmap
>
> is really being done at the wrong level.
I posted that patches multiple times. They were reviewed by the kdump
maintainer and by the kexec maintainer. Why didn't you mention it
*there* that this is the wrong way?
> I don't, for instance, see
> *any* reference to memory hotplug in these patches.
Right. The idea was to add memory hotplugging later. I decided to
create the patch series, get some review, and then fix the rest of the
systems that use memory hot-plugging. So, do you see a problem (in
theory) to add memory and remove memory in that sysfs interface? Of
course the code must be extended to handle modifications in the linked
list afterwards. Yes, I should have made that extension just after the
patch went into tip. Unfortunately, I didn't have time so far.
> Secondly, why don't we just modify the existing /sys/devices/system/memory
Because I didn't know that interface. And because I don't see that
interface on my two systems that I just checked. i386 and x86-64. What
do I have to do to enable that interface?
Does that interface export the *used* memory or just export the memory
that is available? Because exactly that was the reason why I made that
modification -- because kexec needs to know the *available* memory even
if that memory is disabled via 'memmap' or 'mem' command line
parameters.
Bernhard
--
Bernhard Walle, SUSE LINUX Products GmbH, Architecture Development
* Bernhard Walle <[email protected]> [2008-07-20 15:03]:
>
> Because I didn't know that interface. And because I don't see that
> interface on my two systems that I just checked. i386 and x86-64. What
> do I have to do to enable that interface?
That interface depends on CONFIG_MEMORY_HOTPLUG. But given to that
dependency list,
128 config MEMORY_HOTPLUG
129 bool "Allow for memory hot-add"
130 depends on SPARSEMEM || X86_64_ACPI_NUMA
131 depends on HOTPLUG && !HIBERNATION && ARCH_ENABLE_MEMORY_HOTPLUG
132 depends on (IA64 || X86 || PPC64 || SUPERH || S390)
that interface is off on *many* systems (i386, x86_64), so we can't rely
on that interface in kexec. I think on POWER it's much more common than
on PC architectures.
Bernhard
--
Bernhard Walle, SUSE LINUX Products GmbH, Architecture Development
On Sun, Jul 20, 2008 at 02:01:02AM -0700, Dave Hansen wrote:
> On Sun, 2008-07-20 at 01:11 +0200, Vegard Nossum wrote:
> > Maybe the firmware memmap code can simply run a little later in the
> > boot sequence?
>
> Heh, I'm catching up on this thread...
>
> It is possible that it could run later. But, I do know that there are
> at least a couple of these tables (on various arches) that we toss out
> of memory or become unavailable later in boot.
>
> I do this this:
>
> sysfs: add /sys/firmware/memmap
>
> is really being done at the wrong level. I don't, for instance, see
> *any* reference to memory hotplug in these patches. That's because
> they're done against firmware structures, and memory hotplug doesn't
> update firmware structures on the two architectures that I can remember
> (ppc64 and x86).
>
> In other words, kexec using this probably won't work on a memory hotplug
> machine.
If memory is just being added and not being removed then kexec will
continue to work. Just that newly added memory will not be visible to
second kernel. (Unless we start modifying /sys/firmware/memmap upon
memory hotplug event).
Is /proc/iomem updated upon memory hotplug event. All these years, kexec
has been using that interace.
>
> Secondly, why don't we just modify the
> existing /sys/devices/system/memory things to properly export what exec
> needs? They're already cross-platform *and* they're updated with memory
> hotplug events.
As bernhard mentioned that above interface has got long dependeny list
and will not work for kexec until and unless we get rid of those
dependencies.
What does /sys/devices/system/memory represent? All the physical memory
present in the system or all the physical memory being used by kernel
(for example, memory limited by command line options mem=).
If it represents all the physical memory present in the system then it
might make sense to not create another interface but to use this one for
kexec. (But we shall have to get rid of long list of dependencies so that
it can gel wil more universal appeal of kexec).
Do you think that we can decouple /sys/devices/system/memory interface with
CONFIG_MEMORY_HOTPLUG?
Thanks
Vivek
* Vivek Goyal [2008-07-21 09:17]:
>
> Is /proc/iomem updated upon memory hotplug event.
Yes. I just checked that (yesterday).
I think it would make sense to extend /sys/firmware/memmap on
hot-plugging. Just because on reboot, the firmware will see that
memory, too, and report it. However, we need a way to discriminate the
originally firmware-provided memory map with later added memory. I'm
not sure how that can be done, I have to think about it.
Bernhard
--
Bernhard Walle, SUSE LINUX Products GmbH, Architecture Development
On Mon, Jul 21, 2008 at 03:25:39PM +0200, Bernhard Walle wrote:
> * Vivek Goyal [2008-07-21 09:17]:
> >
> > Is /proc/iomem updated upon memory hotplug event.
>
> Yes. I just checked that (yesterday).
>
> I think it would make sense to extend /sys/firmware/memmap on
> hot-plugging. Just because on reboot, the firmware will see that
> memory, too, and report it. However, we need a way to discriminate the
> originally firmware-provided memory map with later added memory. I'm
> not sure how that can be done, I have to think about it.
Probably use another type of RAM identifier (System RAM (hotplug)).
But the point is, if /sys/devices/system/memory also represents all
the physical memory present in the system then it might be not be
justified to create another similar interface. (Until and unless there
is something unique about /sys/firmware/memmap).
Thanks
Vivek
* Vivek Goyal [2008-07-21 09:39]:
>
> On Mon, Jul 21, 2008 at 03:25:39PM +0200, Bernhard Walle wrote:
> > * Vivek Goyal [2008-07-21 09:17]:
> > >
> > > Is /proc/iomem updated upon memory hotplug event.
> >
> > Yes. I just checked that (yesterday).
> >
> > I think it would make sense to extend /sys/firmware/memmap on
> > hot-plugging. Just because on reboot, the firmware will see that
> > memory, too, and report it. However, we need a way to discriminate the
> > originally firmware-provided memory map with later added memory. I'm
> > not sure how that can be done, I have to think about it.
>
> Probably use another type of RAM identifier (System RAM (hotplug)).
>
> But the point is, if /sys/devices/system/memory also represents all
> the physical memory present in the system then it might be not be
> justified to create another similar interface. (Until and unless there
> is something unique about /sys/firmware/memmap).
But I don't see anything like a physical address there:
/sys/devices/system/memory/memory2:
-r--r--r-- 1 root root 4096 2008-07-21 15:45 phys_device
-r--r--r-- 1 root root 4096 2008-07-21 15:45 phys_index
-rw-r--r-- 1 root root 4096 2008-07-21 15:45 state
(on a PPC64 machine where SUSE kernel has that interface enabled by
default).
Bernhard
--
Bernhard Walle, SUSE LINUX Products GmbH, Architecture Development
Hello.
> > > > Is /proc/iomem updated upon memory hotplug event.
> > >
> > > Yes. I just checked that (yesterday).
> > >
> > > I think it would make sense to extend /sys/firmware/memmap on
> > > hot-plugging. Just because on reboot, the firmware will see that
> > > memory, too, and report it. However, we need a way to discriminate the
> > > originally firmware-provided memory map with later added memory. I'm
> > > not sure how that can be done, I have to think about it.
> >
> > Probably use another type of RAM identifier (System RAM (hotplug)).
> >
> > But the point is, if /sys/devices/system/memory also represents all
> > the physical memory present in the system then it might be not be
> > justified to create another similar interface. (Until and unless there
> > is something unique about /sys/firmware/memmap).
>
> But I don't see anything like a physical address there:
>
> /sys/devices/system/memory/memory2:
> -r--r--r-- 1 root root 4096 2008-07-21 15:45 phys_device
> -r--r--r-- 1 root root 4096 2008-07-21 15:45 phys_index
> -rw-r--r-- 1 root root 4096 2008-07-21 15:45 state
>
> (on a PPC64 machine where SUSE kernel has that interface enabled by
> default).
I wrote about them Documentation/memory-hotplug.txt. Please see it.
But I think /sys/firmware/memmap is better for kexec than using them.
They are made for each sections whose size is fixed on each architecture.
There is no information about areas which are occupied by firmware, and
its fixed size directories are not suitable to show them.
BTW, does kexec needs the information about not only hot-added normal memory
but also "hot-added occupied (reserved) memory by firmware"?
Fujitsu has ia64 box which can add memory. The information about memory
area is notified via _CRS method of ACPI. Our firmware team said that
there was no interface to notify the area which was occupied by firmware.
So, _CRS shows only normal (not-reserved) memory area. It means OS can't know
reserved memory which is hot-added.
If kexec has to know those reserved area, then it is very bad news for me. :-(
Thanks.
--
Yasunori Goto