Chinaunix首页 | 论坛 | 博客
  • 博客访问: 381074
  • 博文数量: 62
  • 博客积分: 5015
  • 博客等级: 大校
  • 技术积分: 915
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-08 02:00
文章分类

全部博文(62)

文章存档

2009年(45)

2008年(17)

我的朋友

分类: LINUX

2008-10-07 23:22:20

SCSI中断调用栈:
#0  blk_complete_request (req=0xc7613298) at block/ll_rw_blk.c:3640
#1  0xc01967a8 in __scsi_done (cmd=)
    at drivers/scsi/scsi.c:654
#2  0xc01967dc in scsi_done (cmd=0xc761dcc0) at drivers/scsi/scsi.c:629
#3  0xc01a64c4 in sym_xpt_done (np=, cmd=0xc761dcc0)
    at drivers/scsi/sym53c8xx_2/sym_glue.c:149
#4  0xc01ab544 in sym_interrupt (shost=0xc7495000)
    at drivers/scsi/sym53c8xx_2/sym_hipd.c:5484
#5  0xc01a6580 in sym53c8xx_intr (irq=, dev_id=0x20000113)
    at drivers/scsi/sym53c8xx_2/sym_glue.c:556
#6  0xc0066fd0 in handle_IRQ_event (irq=27, action=0xc740d300)
    at kernel/irq/handle.c:140
#7  0xc00688d4 in handle_level_irq (irq=27, desc=0xc03276c4)
    at kernel/irq/chip.c:356
#8  0xc0024048 in asm_do_IRQ (irq=27, regs=)
    at include/asm/mach/irq.h:29
#9  0xc0024a54 in __irq_svc ()
在blk_complete_request中触发BLOCK_SOFTIRQ软中断:
raise_softirq_irqoff(BLOCK_SOFTIRQ);
其中,在blk_dev_init中,把BLOCK_SOFTIRQ软中断的处理函数初始化为blk_done_softirq。
 
blk_done_softirq中,调用request queue的softirq_done_fn:
rq->q->softirq_done_fn(rq);
该方法是在scsi_alloc_queue分配请求队列时初始化的:
blk_queue_softirq_done(q, scsi_softirq_done);
 
软中断调用栈:
#0  end_that_request_last (req=0xc7613298, uptodate=-11377)
    at block/ll_rw_blk.c:3688
#1  0xc019b3bc in scsi_end_request (cmd=0xc761dcc0, uptodate=1,
    bytes=, requeue=)
    at drivers/scsi/scsi_lib.c:689
#2  0xc019b71c in scsi_io_completion (cmd=0xc761dcc0, good_bytes=4096)
    at drivers/scsi/scsi_lib.c:988
#3  0xc0196720 in scsi_finish_command (cmd=0xc761dcc0)
    at drivers/scsi/scsi.c:707
#4  0xc019bfc0 in scsi_softirq_done (rq=)
    at drivers/scsi/scsi_lib.c:1482
#5  0xc01419d4 in blk_done_softirq (h=)
    at block/ll_rw_blk.c:3594
#6  0xc004a15c in __do_softirq () at kernel/softirq.c:232
#7  0xc004a4fc in irq_exit () at kernel/softirq.c:303
#8  0xc002404c in asm_do_IRQ (irq=27, regs=)
    at arch/arm/kernel/irq.c:130
#9  0xc0024a54 in __irq_svc ()
 
 
 
阅读(1085) | 评论(0) | 转发(0) |
0

上一篇:SCSI写过程

下一篇:Linux SCSI中断处理

给主人留下些什么吧!~~