From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mescal.linbit (unknown [86.59.100.100]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.linbit.com (LINBIT Mail Daemon) with ESMTP id 9FD6F2E08FC1 for ; Wed, 21 Mar 2007 17:43:16 +0100 (CET) From: Philipp Reisner To: drbd-dev@lists.linbit.com Date: Wed, 21 Mar 2007 17:43:15 +0100 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200703211743.16391.philipp.reisner@linbit.com> Subject: [Drbd-dev] OOPS... List-Id: Coordination of development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Hi, I just want to archive this OOPS (it is attached to the end of that mail), on an 2.6.16.21-0.15-bigsmp SLES10 kernel. void submit_bio(int rw, struct bio *bio) { int count = bio_sectors(bio); BIO_BUG_ON(!bio->bi_size); BIO_BUG_ON(!bio->bi_io_vec); // this is line 3077 of block/ll_rw_blk.c bio->bi_rw |= rw; if (rw & WRITE) mod_page_state(pgpgout, count); else mod_page_state(pgpgin, count); [...] I have read drbd_al_to_on_disk_bm() and atodb_prepare_unless_covered() several times, and can not think of a way how a bio could get passed to submit_bio with its bi_io_vec set to NULL. The bios are allocated with "bio = bio_alloc(GFP_KERNEL, 1);", so there has to be a singe bio_vec in bio->bi_io_vec in place. My conclusion for now is that something strange happened. (Machine corrupting its memory ?) Here is the actual OOPS: ======================== kernel BUG at block/ll_rw_blk.c:3077! CPU: 2 EIP: 0060:[] Tainted: P U VLI Using defaults from ksymoops -t elf32-i386 -a i386 EFLAGS: 00210246 (2.6.16.21-0.15-bigsmp #1) eax: 80000004 ebx: c166ca60 ecx: 00000001 edx: 00400000 esi: ed65f18c edi: 00000063 ebp: ed65f000 esp: f7d77e18 ds: 007b es: 007b ss: 0068 Stack: <0>01000001 f7d77e40 c011bb81 00000000 00000000 00000003 00200292 f5f62000 ed65f000 f5f62000 ed65f18c 00000063 f93efd8b f93f7776 00000000 ebf6800c 0000d082 00000002 00000003 0000d081 f5f62310 00000063 00000000 00000001 Call Trace: [] __wake_up+0x2a/0x3d [] drbd_al_to_on_disk_bm+0x205/0x36d [drbd] [] _drbd_request_state+0x2b7/0x2c2 [drbd] [] __wake_up+0x2a/0x3d [] drbd_set_role+0x36d/0x402 [drbd] [] schedule+0xbee/0xc9a [] drbd_nl_secondary+0xf/0x16 [drbd] [] drbd_connector_callback+0xc4/0x173 [drbd] [] cn_queue_wrapper+0x9/0x1e [] run_workqueue+0x7f/0xba [] cn_queue_wrapper+0x0/0x1e [] worker_thread+0xed/0x11e [] default_wake_function+0x0/0xc [] kthread+0xca/0xf7 [] worker_thread+0x0/0x11e [] kthread+0x0/0xf7 [] kernel_thread_helper+0x5/0xb Code: c4 34 5b 5e 5f 5d c3 57 89 c1 56 53 89 d3 83 ec 24 8b 42 20 89 c2 c1 ea 09 85 c0 75 08 0f 0b 04 0c 7e b7 2c c0 83 7b 30 00 75 08 0b 05 0c 7e b7 2c c0 88 c8 09 4b 14 24 01 88 44 24 03 74 07 >>EIP; c01b27e5 <===== >>eax; 80000004 >>ebx; c166ca60 >>edx; 00400000 >>esi; ed65f18c >>ebp; ed65f000 >>esp; f7d77e18 Trace; c011bb81 <__wake_up+2a/3d> Trace; f93efd8b Trace; f93f7776 Trace; c011bb81 <__wake_up+2a/3d> Trace; f93f9d00 Trace; c0295212 Trace; f93f9da4 Trace; f93fa13d Trace; c0213d96 Trace; c012ee96 Trace; c0213d8d Trace; c012f866 Trace; c011ad69 Trace; c013209a Trace; c012f779 Trace; c0131fd0 Trace; c0102005 Code; c01b27e5 00000000 <_EIP>: Code; c01b27e5 <===== 0: c4 34 5b les (%ebx,%ebx,2),%esi <===== Code; c01b27e8 3: 5e pop %esi Code; c01b27e9 4: 5f pop %edi Code; c01b27ea 5: 5d pop %ebp Code; c01b27eb 6: c3 ret Code; c01b27ec 7: 57 push %edi Code; c01b27ed 8: 89 c1 mov %eax,%ecx Code; c01b27ef a: 56 push %esi Code; c01b27f0 b: 53 push %ebx Code; c01b27f1 c: 89 d3 mov %edx,%ebx Code; c01b27f3 e: 83 ec 24 sub $0x24,%esp Code; c01b27f6 11: 8b 42 20 mov 0x20(%edx),%eax Code; c01b27f9 14: 89 c2 mov %eax,%edx Code; c01b27fb 16: c1 ea 09 shr $0x9,%edx Code; c01b27fe 19: 85 c0 test %eax,%eax Code; c01b2800 1b: 75 08 jne 25 <_EIP+0x25> Code; c01b2802 1d: 0f 0b ud2a Code; c01b2804 1f: 04 0c add $0xc,%al Code; c01b2806 21: 7e b7 jle ffffffda <_EIP+0xffffffda> Code; c01b2808 23: 2c c0 sub $0xc0,%al Code; c01b280a 25: 83 7b 30 00 cmpl $0x0,0x30(%ebx) Code; c01b280e 29: 75 08 jne 33 <_EIP+0x33> Code; c01b2810 2b: 0b 05 0c 7e b7 2c or 0x2cb77e0c,%eax Code; c01b2816 31: c0 88 c8 09 4b 14 24 rorb $0x24,0x144b09c8(%eax) Code; c01b281d 38: 01 88 44 24 03 74 add %ecx,0x74032444(%eax) Code; c01b2823 3e: 07 pop %es -- : Dipl-Ing Philipp Reisner Tel +43-1-8178292-50 : : LINBIT Information Technologies GmbH Fax +43-1-8178292-82 : : Vivenotgasse 48, 1120 Vienna, Austria http://www.linbit.com :