免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2171 | 回复: 2
打印 上一主题 下一主题

Linux内核移植所遇问题,希望大家一起研究一下(2.4.18) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-03-22 14:24 |只看该作者 |倒序浏览
不知道大家遇到过没有?是怎么回事?请大家帮忙看看!!!

采用的是2.4.18内核,cpu用mpc8245,sandpoint的板子。
参照2.4.25和原来我用的2.4.0-test2中支持sandpoint的代码修改,但是我的这个板子没有时钟,不能记录时间,所以没有使用rtc timer相关的部分代码,函数还是存在的,只是功能不是对timer的操作了,返回了一些内容而已。

到现在为止,我对内核所做的改动主要有:

1、arch/ppc/目录增加了和cpu及硬件相关的代码,主要包括初始化CPU资源,PCI资源、中断资源(这些都是参照的2.4.25内核和我原来的2.4.0-test2内核的部分改的),以及mmu的BAT(BLOCK ADDRESS TRANSLATION)。

2、修改了串口资源的波特率、中断、寄存器地址,以使串口终端可以使用。

3、在mtd驱动中增加了两个partion,其中后一个烧录了应用程序的jffs2文件系统镜像。

4、在block驱动中增加了对blkmem的支持。

5、更改root目录设备为rom0或者mtd1(分别试用过这两个设备)。

6、增加一些调试信息输出代码。

我分别试用过romfs和jffs2作为根文件系统,但是都没有成功。

两种文件系统都要用到与flash相关的block硬件设备。其中romfs采用blkmem,jffs2采用mtd。现在的情况是,在mount_root中,系统调用blkdev_put释放block设备的时候,这两种block设备都会在其release函数出错(不再继续往下执行)。在内核2.4.0版本中,此处没有调用blkdev_put,因为没有这个函数。

通过进一步跟踪发现,造成release时死掉的原因是:当调用到schedule函数之后,就不再返回,两种block设备blkmem和mtd都是如此。但是又有一点不同,blkmem不能跳过schedule中的switch_to函数调用,但mtd可以跳过,但是见不到从schedule函数返回的信息。


下面列出函数的调用过程以及各个函数所在的文件:

blkmem_release调用过程:

mount_root()->;blkdev_put()->;blkmem_release()->;fsync_dev()->;sync_inodes()->;

get_super(dev)->;down_read()->;__down_read()->; rwsem_down_read_failed()->; rwsem_down_failed_common()->;schedule()->;

switch_to()[#define switch_to _switch_to]->;_switch()[不再返回]。



mtdblock_release调用过程:

mount_root()->;blkdev_put()mtdblock_release()->;fsync_dev()->;sync_inodes()->;

get_super(dev)->;down_read()->;__down_read()->; rwsem_down_read_failed()->; rwsem_down_failed_common()->;schedule()->;

switch_to()[#define switch_to _switch_to]->;_switch()[可以返回]->; switch_to()->;schedule()之后见不到返回后的信息。

如果schedule能够返回则应该见到
//此处为我在rwsem_down_failed_common()中添加的调试信息。
printk("FAN:rwsem_down_failed_common- for circle flags=%d\n",waiter->;flags);

        schedule();

        printk("FAN:rwsem_down_failed_common- schdule=%d\n",waiter->;flags);

打印出的信息。

各个函数所在的文件:

driver/block/blkmem.c: blkmem_release()

fs/buffer.c: fsync_dev()

fs/inodes.c: sync_inodes()

fs/block_dev.c: blkdev_put()

fs/super.c: mount_root() get_super()

include/linux/RWSEM.H: down_read()

include/asm/RWSEM.H: __down_read()

lib\rwsem.c: rwsem_down_read_failed()、rwsem_down_failed_common()

kernel/schedule.c: schedule()

arch/ppc/kernel/processor.c: switch_to()[_switch_to]

arch/ppc/kernel/entry.S: _switch

下面我会将一些调试信息贴出来.

论坛徽章:
0
2 [报告]
发表于 2004-03-22 14:29 |只看该作者

Linux内核移植所遇问题,希望大家一起研究一下(2.4.18)

machine init platform!
enter platform init!
machine init
enter find end of mem init!
Memory BAT mapping: BAT2=64Mb, BAT3=0Mb, residual: 0Mb
total low mem=64M
Linux version 2.4.183 (root@dev1) (gcc version 2.95.2 19991030 (2.95.3 prereleas
e/franzo)) #271 Fri Mar 19 12:09:24 CST 2004
My Motorola MPC8245 Sandpoint Test Kernel
FAN:Enter sandpoint_find_bridges
FAN:Leaving sandpoint_find_bridges
Boot arguments:  console=ttyS0
On node 0 totalpages: 16384
zone(0): 16384 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line:
OpenPIC Version 1.2 (1 CPUs and 26 IRQ sources) at fcf40000
Calibrating delay loop... 665.19 BogoMIPS
Memory: 63036k available (928k kernel code, 420k data, 60k init, 0k highmem)
Dentry-cache hash table entries: 8192 (order: 4, 65536 bytes)
Inode-cache hash table entries: 4096 (order: 3, 32768 bytes)
Mount-cache hash table entries: 1024 (order: 1, 8192 bytes)
FAN:Entering do_kern_mount type=rootfs,name=rootfs, flags=0
FAN:fstype->;fs_flags=10
FAN:enter read_super
FAN:insert_super dev=1,type=rootfs
FAN:lock_super
FAN:type.read_super
FAN:ulock_super
FAN:return right,diname=/
FAN:do_kern_mount sb=1
FAN:do_kern_mount mnt=rootfs
FAN:do_kern_mount mnt->;mnt_root=/
FAN:do_kern_mount up_write
FAN:Leaving do_kern_mount
FAN:Entering do_kern_mount type=bdev,name=bdev, flags=0
FAN:fstype->;fs_flags=10
FAN:enter read_super
FAN:insert_super dev=2,type=bdev
FAN:lock_super
FAN:type.read_super
FAN:ulock_super
FAN:return right,diname=/
FAN:do_kern_mount sb=2
FAN:do_kern_mount mnt=bdev
FAN:do_kern_mount mnt->;mnt_root=/
FAN:do_kern_mount up_write
FAN:Leaving do_kern_mount
Buffer-cache hash table entries: 4096 (order: 2, 16384 bytes)
Page-cache hash table entries: 16384 (order: 4, 65536 bytes)
FAN:Entering do_kern_mount type=proc,name=proc, flags=0
FAN:fstype->;fs_flags=8
FAN:Entering get_sb_single fs_typename=proc! flag=0
FAN:get_sb_single list_empty
FAN:get_sb_single insert_super
FAN:do_kern_mount sb=3
FAN:do_kern_mount mnt=proc
FAN:do_kern_mount mnt->;mnt_root=/
FAN:do_kern_mount up_write
FAN:Leaving do_kern_mount
POSIX conformance testing by UNIFIX
FAN:entering schedule at sched.c,556
FAN:at sched.c,693 next->;active_mm = oldmm
FAN:at sched.c,706 !prev->;mm
FAN:at sched.c,717 before switch_to(prev, next, prev);
FAN:Entering _switch_to
FAN:_switch_to bofore switch
FAN:enter basic setup!
enter pci_init
PCI: Probing PCI hardware
Memory resource not set for host bridge 0
Auto Config PCI Bars

PCI device 1057:0006 bus 0 dev 0
        BAR 0, Mem,     BAR 1, Mem, size=0x1000, address=0xfdffec00
        BAR 2, Mem,
PCI device 10ec:8139 bus 0 dev 10
        BAR 0, I/O, size=0x100, address=0xbffb00
        BAR 1, Mem, size=0x100, address=0xfdffe700

PCI device 11ab:302a bus 0 dev 30
        BAR 0, Mem, size=0x200000, address=0xfdbffc00
        BAR 2, I/O, size=0x4, address=0xbff6fc
        IRQ -1073691040
FAN: begin fixup
PCI:00:00.0: Resource 1: fdffec00-fdfffc00 (f=200)
PCI:00:0a.0: Resource 0: 00bffb00-00bffc00 (f=101)
PCI:00:0a.0: Resource 1: fdffe700-fdffe800 (f=200)
PCI:00:1e.0: Resource 0: fdbffc00-fddffc00 (f=200)
PCI:00:1e.0: Resource 2: 00bff6fc-00bff700 (f=10d)
pcibios_init!
FAN:pci_init
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
FAN:Entering do_kern_mount type=sockfs,name=sockfs, flags=0
FAN:fstype->;fs_flags=10
FAN:enter read_super
FAN:insert_super dev=4,type=sockfs
FAN:lock_super
FAN:type.read_super
FAN:ulock_super
FAN:return right,diname=/
FAN:do_kern_mount sb=4
FAN:do_kern_mount mnt=sockfs
FAN:do_kern_mount mnt->;mnt_root=/
FAN:do_kern_mount up_write
FAN:Leaving do_kern_mount
Initializing RT netlink socket
FAN:sock_init
FAN:entering schedule at sched.c,556
FAN:schedule case default
FAN:schedule del_from_runqueue
FAN:at sched.c,693 next->;active_mm = oldmm
FAN:at sched.c,706 !prev->;mm
FAN:at sched.c,717 before switch_to(prev, next, prev);
FAN:Entering _switch_to
FAN:_switch_to bofore switch
FAN:entering schedule at sched.c,556
FAN:schedule case TASK_INTERRUPTIBLE
FAN:schedule case default
FAN:schedule del_from_runqueue
FAN:at sched.c,693 next->;active_mm = oldmm
FAN:at sched.c,706 !prev->;mm
FAN:at sched.c,717 before switch_to(prev, next, prev);
FAN:Entering _switch_to
FAN:_switch_to bofore switch
FAN:_switch_to after switch
FAN:Leaving _switch_to
FAN:at sched.c,719 after switch_to(prev, next, prev);
FAN:at sched.c,721 after __schedule_tail(prev)
FAN:at sched.c,727 current->;need_resched.
FAN:at sched.c,653line,goto same_process
FAN:at sched.c,730 Leaving schdule
FAN:entering schedule at sched.c,556
FAN:at sched.c,693 next->;active_mm = oldmm
FAN:at sched.c,706 !prev->;mm
FAN:at sched.c,717 before switch_to(prev, next, prev);
FAN:Entering _switch_to
FAN:_switch_to bofore switch
FAN:entering schedule at sched.c,556
FAN:schedule case TASK_INTERRUPTIBLE
FAN:schedule case default
FAN:schedule del_from_runqueue
FAN:at sched.c,693 next->;active_mm = oldmm
FAN:at sched.c,706 !prev->;mm
FAN:at sched.c,717 before switch_to(prev, next, prev);
FAN:Entering _switch_to
FAN:_switch_to bofore switch
FAN:_switch_to after switch
FAN:Leaving _switch_to
FAN:at sched.c,719 after switch_to(prev, next, prev);
FAN:at sched.c,721 after __schedule_tail(prev)
FAN:at sched.c,730 Leaving schdule
Starting kswapd
FAN:Entering do_kern_mount type=tmpfs,name=tmpfs, flags=0
FAN:fstype->;fs_flags=30
FAN:enter read_super
FAN:insert_super dev=5,type=tmpfs
FAN:lock_super
FAN:type.read_super
FAN:ulock_super
FAN:return right,diname=/
FAN:do_kern_mount sb=5
FAN:do_kern_mount mnt=tmpfs
FAN:do_kern_mount mnt->;mnt_root=/
FAN:do_kern_mount up_write
FAN:Leaving do_kern_mount
FAN:entering schedule at sched.c,556
FAN:schedule case default
FAN:schedule del_from_runqueue
FAN:at sched.c,693 next->;active_mm = oldmm
FAN:at sched.c,706 !prev->;mm
FAN:at sched.c,717 before switch_to(prev, next, prev);
FAN:Entering _switch_to
FAN:_switch_to bofore switch
FAN:entering schedule at sched.c,556
FAN:schedule case TASK_INTERRUPTIBLE
FAN:schedule case default
FAN:schedule del_from_runqueue
FAN:at sched.c,636line,spin_lock_irq(&runqueue_lock)
FAN:at sched.c,693 next->;active_mm = oldmm
FAN:at sched.c,706 !prev->;mm
FAN:at sched.c,717 before switch_to(prev, next, prev);
FAN:Entering _switch_to
FAN:_switch_to bofore switch
FAN:entering schedule at sched.c,556
FAN:schedule case TASK_INTERRUPTIBLE
FAN:schedule case default
FAN:schedule del_from_runqueue
FAN:at sched.c,693 next->;active_mm = oldmm
FAN:at sched.c,706 !prev->;mm
FAN:at sched.c,717 before switch_to(prev, next, prev);
FAN:Entering _switch_to
FAN:_switch_to bofore switch
FAN:_switch_to after switch
FAN:Leaving _switch_to
FAN:at sched.c,719 after switch_to(prev, next, prev);
FAN:at sched.c,721 after __schedule_tail(prev)
FAN:at sched.c,730 Leaving schdule
FAN:entering schedule at sched.c,556
FAN:schedule case default
FAN:schedule del_from_runqueue
FAN:at sched.c,693 next->;active_mm = oldmm
FAN:at sched.c,706 !prev->;mm
FAN:at sched.c,717 before switch_to(prev, next, prev);
FAN:Entering _switch_to
FAN:_switch_to bofore switch
FAN:entering schedule at sched.c,556
FAN:schedule case TASK_INTERRUPTIBLE
FAN:schedule case default
FAN:schedule del_from_runqueue
FAN:at sched.c,693 next->;active_mm = oldmm
FAN:at sched.c,706 !prev->;mm
FAN:at sched.c,717 before switch_to(prev, next, prev);
FAN:Entering _switch_to
FAN:_switch_to bofore switch
FAN:_switch_to after switch
FAN:Leaving _switch_to
FAN:at sched.c,719 after switch_to(prev, next, prev);
FAN:at sched.c,721 after __schedule_tail(prev)
FAN:at sched.c,730 Leaving schdule
FAN:Entering do_kern_mount type=pipefs,name=pipefs, flags=0
FAN:fstype->;fs_flags=10
FAN:enter read_super
FAN:insert_super dev=6,type=pipefs
FAN:lock_super
FAN:type.read_super
FAN:ulock_super
FAN:return right,diname=/
FAN:do_kern_mount sb=6
FAN:do_kern_mount mnt=pipefs
FAN:do_kern_mount mnt->;mnt_root=/
FAN:do_kern_mount up_write
FAN:Leaving do_kern_mount
JFFS2 version 2.1. (C) 2001 Red Hat, Inc., designed by Axis Communications AB.
i2c-core.o: i2c core module
i2c-dev.o: i2c /dev entries driver module
i2c-core.o: driver i2c-dev dummy driver registered.
i2c-proc.o version 2.6.1 (20010825)
Serial driver version 5.05c (2001-07-0 with no serial options enabled
block: 128 slots per queue, batch=32
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
Blkmem copyright 1998,1999 D. Jeff Dionne
Blkmem copyright 1998 Kenneth Albanowski
Blkmem 3 disk images:
Blkmem Flash ID=4
0: FFD00000-FFDCC7FF [VIRTUAL FFD00000-FFDCC7FF] (RO)
1: FFC80000-FFC8FFFF [VIRTUAL FFC80000-FFC8FFFF] (RW)
2: FFCA0000-FFCAFFFF [VIRTUAL FFCA0000-FFCAFFFF] (RW)
Blkmem copyright 1998,1999 D. Jeff Dionne
Blkmem copyright 1998 Kenneth Albanowski
Blkmem 3 disk images:
Blkmem Flash ID=4
0: FFD00000-FFDCC7FF [VIRTUAL FFD00000-FFDCC7FF] (RO)
1: FFC80000-FFC8FFFF [VIRTUAL FFC80000-FFC8FFFF] (RW)
2: FFCA0000-FFCAFFFF [VIRTUAL FFCA0000-FFCAFFFF] (RW)
POS device driver 1.0
8139too Fast Ethernet driver 0.9.24
8139too: 00:0a.0: Chip not responding, ignoring board
physmap flash device: 800000 at ff800000
FAN:Entering cfi_probe_chip
FAN:Entering cfi_probe_chip
FAN:Entering mtd_do_chip_probe
Amd/Fujitsu Extended Query Table v1.3 at 0x0040
number of CFI chips: 1
init_physmap get mtd device: mymtd=0<6>;mtd: Giving out device 0 to Physically ma
pped flash fujstu
Creating 2 MTD partitions on "hysically mapped flash fujstu":
0xff800000-0xff810000 : "reserved for bootloader (64K)"
mtd: partition "reserved for bootloader (64K)" is out of reach -- disabled
mtd: Giving out device 1 to reserved for bootloader (64K)
0xff810000-0xff900000 : "user (960K)"
mtd: partition "user (960K)" is out of reach -- disabled
mtd: Giving out device 2 to user (960K)
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 4096 bind 4096)
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
FAN:entering schedule at sched.c,556
FAN:schedule case default
FAN:schedule del_from_runqueue
FAN:at sched.c,693 next->;active_mm = oldmm
FAN:at sched.c,706 !prev->;mm
FAN:at sched.c,717 before switch_to(prev, next, prev);
FAN:Entering _switch_to
FAN:_switch_to bofore switch
FAN:_switch_to after switch
FAN:Leaving _switch_to
FAN:at sched.c,719 after switch_to(prev, next, prev);
FAN:at sched.c,721 after __schedule_tail(prev)
FAN:at sched.c,730 Leaving schdule
FAN:entering schedule at sched.c,556
FAN:schedule case TASK_INTERRUPTIBLE
FAN:schedule case default
FAN:schedule del_from_runqueue
FAN:at sched.c,693 next->;active_mm = oldmm
FAN:at sched.c,706 !prev->;mm
FAN:at sched.c,717 before switch_to(prev, next, prev);
FAN:Entering _switch_to
FAN:_switch_to bofore switch
FAN:_switch_to after switch
FAN:Leaving _switch_to
FAN:at sched.c,719 after switch_to(prev, next, prev);
FAN:at sched.c,721 after __schedule_tail(prev)
FAN:at sched.c,730 Leaving schdule
FAN:entering schedule at sched.c,556
FAN:schedule case default
FAN:schedule del_from_runqueue
FAN:at sched.c,693 next->;active_mm = oldmm
FAN:at sched.c,706 !prev->;mm
FAN:at sched.c,717 before switch_to(prev, next, prev);
FAN:Entering _switch_to
FAN:_switch_to bofore switch
FAN:_switch_to after switch
FAN:Leaving _switch_to
FAN:at sched.c,719 after switch_to(prev, next, prev);
FAN:at sched.c,721 after __schedule_tail(prev)
FAN:at sched.c,730 Leaving schdule
FAN:entering schedule at sched.c,556
FAN:schedule case TASK_INTERRUPTIBLE
FAN:schedule case default
FAN:schedule del_from_runqueue
FAN:at sched.c,693 next->;active_mm = oldmm
FAN:at sched.c,706 !prev->;mm
FAN:at sched.c,717 before switch_to(prev, next, prev);
FAN:Entering _switch_to
FAN:_switch_to bofore switch
FAN:_switch_to after switch
FAN:Leaving _switch_to
FAN:at sched.c,719 after switch_to(prev, next, prev);
FAN:at sched.c,721 after __schedule_tail(prev)
FAN:at sched.c,730 Leaving schdule
FAN:basic setup!
FAN:before mount root!
FAN:mount root--fs_names=ext2!
FAN:mount root--fs_names=jffs2!
FAN:mount root--fs_names=romfs!
FAN:get_super enter sb=-1070907375!
FAN:get_super sb_lock sb=-1070907375!
FAN:get_super find_super sb=0!
FAN:mount root--get_super sb=0!
FAN:mount root--after atomic_i!
FAN:mount root--after blkdev_get!
FAN:enter read_super
FAN:insert_super dev=7936,type=ext2
FAN:lock_super
FAN:entering blkdev_put!
FAN:blkdev_put BDEV=1F00! kind=2
FAN:blkdev_put ####11111!
FAN:blkdev_put fsync_no_super(rdev)!
FAN:blkdev_put ####22222!
FAN:blkdev_put ####33333!
Blkmem: release: blkmem
FAN:enter the fsync_dev dev=1f00
FAN:sync_buffers(dev, 0) dev=1f00
FAN:before sync_inodes(dev) dev=1f00
FAN:enter sync_inodes dev=7936
FAN:get_super enter sb=7936!
FAN:get_super sb_lock sb=7936!
FAN:get_super find_super sb=0!
FAN:sync_inodes(dev) dev=1f00
FANQUOT_SYNC(dev) dev=1f00
FAN:get_super enter sb=-1070911200!
FAN:get_super sb_lock sb=-1070911200!
FAN:get_super find_super sb=0!
FAN:sync_supers(dev) dev=1f00
FAN:Leaving fsync_dev return!
FAN:blkdev_put ####44444!
FAN:blkdev_put ####55555!
FAN:blkdev_put ####6666666!
FAN:blkdev_put end ret=0!
FAN:return error
FAN:mount root--after read_super sb=0!
FAN:mount root--put_filesystem fsname=ext2!
FAN:mount root--after atomic_i!
FAN:mount root--after blkdev_get!
FAN:enter read_super
FAN:insert_super dev=7936,type=jffs2
FAN:lock_super
FAN:entering blkdev_put!
FAN:blkdev_put BDEV=1F00! kind=2
FAN:blkdev_put ####11111!
FAN:blkdev_put fsync_no_super(rdev)!
FAN:blkdev_put ####22222!
FAN:blkdev_put ####33333!
Blkmem: release: blkmem
FAN:enter the fsync_dev dev=1f00
FAN:sync_buffers(dev, 0) dev=1f00
FAN:before sync_inodes(dev) dev=1f00
FAN:enter sync_inodes dev=7936
FAN:get_super enter sb=7936!
FAN:get_super sb_lock sb=7936!
FAN:get_super find_super sb=0!
FAN:sync_inodes(dev) dev=1f00
FANQUOT_SYNC(dev) dev=1f00
FAN:get_super enter sb=-1070911200!
FAN:get_super sb_lock sb=-1070911200!
FAN:get_super find_super sb=0!
FAN:sync_supers(dev) dev=1f00
FAN:Leaving fsync_dev return!
FAN:blkdev_put ####44444!
FAN:blkdev_put ####55555!
FAN:blkdev_put ####6666666!
FAN:blkdev_put end ret=0!
FAN:return error
FAN:mount root--after read_super sb=0!
FAN:mount root--put_filesystem fsname=jffs2!
FAN:mount root--after atomic_i!
FAN:mount root--after blkdev_get!
FAN:enter read_super
FAN:insert_super dev=7936,type=romfs
FAN:lock_super
FAN:type.read_super
FAN:ulock_super
FAN:return right,diname=/
FAN:mount root--after read_super sb=-1071165952!
FAN:mount root--put_filesystem fsname=romfs!
FAN:mount root--read_super-bd_dev=7936, kdevname=1f:00, !root_mountflags=32769
FAN:mount root--read_super sb.iname=/!
FAN:mount root--blkdev_put1 fsname=romfs!
FAN:entering blkdev_put!
FAN:blkdev_put BDEV=1F00! kind=2
FAN:blkdev_put ####11111!
FAN:blkdev_put fsync_no_super(rdev)!
FAN:blkdev_put ####22222!
FAN:blkdev_put ####33333!
Blkmem: release: blkmem
FAN:enter the fsync_dev dev=1f00
FAN:sync_buffers(dev, 0) dev=1f00
FAN:before sync_inodes(dev) dev=1f00
FAN:enter sync_inodes dev=7936
FAN:get_super enter sb=7936!
FAN:get_super sb_lock sb=7936!
FAN:get_super find_super sb=-1071165952!
FAN:get_super spin_unlock sb=-1071165952!
FAN:Entering rwsem_down_read_failed
FAN:Entering rwsem_down_failed_common
FAN:rwsem_down_failed_common- for circle flags=1
FAN:entering schedule at sched.c,556
FAN:schedule case default
FAN:schedule del_from_runqueue
FAN:at sched.c,636line,spin_lock_irq(&runqueue_lock)
FAN:at sched.c,693 next->;active_mm = oldmm
FAN:at sched.c,706 !prev->;mm
FAN:at sched.c,717 before switch_to(prev, next, prev);
FAN:Entering _switch_to
FAN:_switch_to bofore switch----->;>;>;>;这里,switch不能返回
FAN:entering schedule at sched.c,556
FAN:schedule case TASK_INTERRUPTIBLE
FAN:schedule case default
FAN:schedule del_from_runqueue
FAN:at sched.c,693 next->;active_mm = oldmm
FAN:at sched.c,706 !prev->;mm
FAN:at sched.c,717 before switch_to(prev, next, prev);
FAN:Entering _switch_to
FAN:_switch_to bofore switch
FAN:_switch_to after switch
FAN:Leaving _switch_to
FAN:at sched.c,719 after switch_to(prev, next, prev);
FAN:at sched.c,721 after __schedule_tail(prev)
FAN:at sched.c,730 Leaving schdule

论坛徽章:
0
3 [报告]
发表于 2004-03-22 14:39 |只看该作者

Linux内核移植所遇问题,希望大家一起研究一下(2.4.18)

上面是用romfs和blkmem的
这个是用jffs2和mtd的
FAN:get_super enter sb=-1070911471!
FAN:get_super sb_lock sb=-1070911471!
FAN:get_super find_super sb=0!
FAN:mount root--get_super sb=0!
FAN:mount root--after atomic_i!
mtdblock_open
FAN:mount root--after blkdev_get!
FAN:enter read_super
FAN:insert_super dev=7681,type=ext2
FAN:lock_super
FAN:entering schedule at sched.c,556
FAN:schedule case default
FAN:schedule del_from_runqueue
FAN:at sched.c,636line,spin_lock_irq(&runqueue_lock)
FAN:at sched.c,693 next->;active_mm = oldmm
FAN:at sched.c,706 !prev->;mm
FAN:at sched.c,717 before switch_to(prev, next, prev);
FAN:Entering _switch_to
FAN:_switch_to bofore switch
end_request: I/O error, dev 1e:01 (mtdblock), sector 2
FAN:entering schedule at sched.c,556
FAN:schedule case TASK_INTERRUPTIBLE
FAN:schedule case default
FAN:schedule del_from_runqueue
FAN:at sched.c,693 next->;active_mm = oldmm
FAN:at sched.c,706 !prev->;mm
FAN:at sched.c,717 before switch_to(prev, next, prev);
FAN:Entering _switch_to
FAN:_switch_to bofore switch
FAN:_switch_to after switch
FAN:Leaving _switch_to
FAN:at sched.c,719 after switch_to(prev, next, prev);
FAN:at sched.c,721 after __schedule_tail(prev)
FAN:at sched.c,730 Leaving schdule
EXT2-fs: unable to read superblock
FAN:entering blkdev_put!
FAN:blkdev_put BDEV=1E01! kind=2
FAN:blkdev_put ####11111!
FAN:blkdev_put fsync_no_super(rdev)!
FAN:blkdev_put ####22222!
FAN:blkdev_put ####33333!
mtdblock_release
FAN:enter the fsync_dev dev=1e01
FAN:sync_buffers(dev, 0) dev=1e01
FAN:before sync_inodes(dev) dev=1e01
FAN:enter sync_inodes dev=7681
FAN:get_super enter sb=7681!
FAN:get_super sb_lock sb=7681!
FAN:get_super find_super sb=0!
FAN:sync_inodes(dev) dev=1e01
FANQUOT_SYNC(dev) dev=1e01
FAN:get_super enter sb=-1070919584!
FAN:get_super sb_lock sb=-1070919584!
FAN:get_super find_super sb=0!
FAN:sync_supers(dev) dev=1e01
FAN:Leaving fsync_dev return!
FAN:get_super enter sb=-1070919584!
FAN:get_super sb_lock sb=-1070919584!
FAN:get_super find_super sb=0!
ok
FAN:blkdev_put ####44444!
FAN:blkdev_put ####55555!
FAN:blkdev_put ####6666666!
FAN:blkdev_put end ret=0!
FAN:return error
FAN:mount root--after read_super sb=0!
FAN:mount root--put_filesystem fsname=ext2!
FAN:mount root--after atomic_i!
mtdblock_open
FAN:mount root--after blkdev_get!
FAN:enter read_super
FAN:insert_super dev=7681,type=jffs2
FAN:lock_super
FAN:type.read_super
FAN:ulock_super
FAN:return right,diname=/
FAN:mount root--after read_super sb=-1070662144!
FAN:mount root--put_filesystem fsname=jffs2!
FAN:mount root--read_super-bd_dev=7681, kdevname=1e:01, !root_mountflags=32769
FAN:mount root--read_super sb.iname=/!
FAN:mount root--blkdev_put1 fsname=jffs2!
FAN:entering blkdev_put!
FAN:blkdev_put BDEV=1E01! kind=2
FAN:blkdev_put ####11111!
FAN:blkdev_put fsync_no_super(rdev)!
FAN:blkdev_put ####22222!
FAN:blkdev_put ####33333!
mtdblock_release
FAN:enter the fsync_dev dev=1e01
FAN:sync_buffers(dev, 0) dev=1e01
FAN:before sync_inodes(dev) dev=1e01
FAN:enter sync_inodes dev=7681
FAN:get_super enter sb=7681!
FAN:get_super sb_lock sb=7681!
FAN:get_super find_super sb=-1070662144!
FAN:get_super spin_unlock sb=-1070662144!
FAN:Entering rwsem_down_read_failed
FAN:Entering rwsem_down_failed_common
FAN:rwsem_down_failed_common- set_task_state
FAN:rwsem_down_failed_common- list_add_tail
FAN:rwsem_down_failed_common- rwsem_atomic_update count=-131071
FAN:rwsem_down_failed_common- __rwsem_do_wake
FAN:rwsem_down_failed_common- for circle flags=1
FAN:entering schedule at sched.c,556
FAN:schedule case default
FAN:schedule del_from_runqueue
FAN:at sched.c,693 next->;active_mm = oldmm
FAN:at sched.c,706 !prev->;mm
FAN:at sched.c,717 before switch_to(prev, next, prev);
FAN:Entering _switch_to
FAN:_switch_to bofore switch---〉〉〉这里可以返回
FAN:_switch_to after switch
FAN:Leaving _switch_to
FAN:at sched.c,719 after switch_to(prev, next, prev);
FAN:at sched.c,721 after __schedule_tail(prev)
FAN:at sched.c,730 Leaving schdule
FAN:entering schedule at sched.c,556
FAN:at sched.c,693 next->;active_mm = oldmm
FAN:at sched.c,706 !prev->;mm
FAN:at sched.c,717 before switch_to(prev, next, prev);
FAN:Entering _switch_to
FAN:_switch_to bofore switch
FAN:_switch_to after switch
FAN:Leaving _switch_to
FAN:at sched.c,719 after switch_to(prev, next, prev);
FAN:at sched.c,721 after __schedule_tail(prev)
FAN:at sched.c,730 Leaving schdule
FAN:entering schedule at sched.c,556
FAN:schedule case TASK_INTERRUPTIBLE
FAN:schedule case default
FAN:schedule del_from_runqueue
FAN:at sched.c,693 next->;active_mm = oldmm
FAN:at sched.c,706 !prev->;mm
FAN:at sched.c,717 before switch_to(prev, next, prev);
FAN:Entering _switch_to
FAN:_switch_to bofore switch
FAN:_switch_to after switch
FAN:Leaving _switch_to
FAN:at sched.c,719 after switch_to(prev, next, prev);
FAN:at sched.c,721 after __schedule_tail(prev)
FAN:at sched.c,730 Leaving schdule
FAN:entering schedule at sched.c,556
FAN:at sched.c,693 next->;active_mm = oldmm
FAN:at sched.c,706 !prev->;mm
FAN:at sched.c,717 before switch_to(prev, next, prev);
FAN:Entering _switch_to
FAN:_switch_to bofore switch
FAN:_switch_to after switch
FAN:Leaving _switch_to
FAN:at sched.c,719 after switch_to(prev, next, prev);
FAN:at sched.c,721 after __schedule_tail(prev)
FAN:at sched.c,730 Leaving schdule
FAN:entering schedule at sched.c,556
FAN:schedule case TASK_INTERRUPTIBLE
FAN:schedule case default
FAN:schedule del_from_runqueue
FAN:at sched.c,693 next->;active_mm = oldmm
FAN:at sched.c,706 !prev->;mm
FAN:at sched.c,717 before switch_to(prev, next, prev);
FAN:Entering _switch_to
FAN:_switch_to bofore switch
FAN:_switch_to after switch
FAN:Leaving _switch_to
FAN:at sched.c,719 after switch_to(prev, next, prev);
FAN:at sched.c,721 after __schedule_tail(prev)
FAN:at sched.c,730 Leaving schdule
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP