All of lore.kernel.org
 help / color / mirror / Atom feed
* What did I do wrong?  Oopses with 7-30 auto-snapshot
@ 2004-07-30 22:30 Jonathan Briggs
  2004-07-31  0:28 ` Maciejewski, Jake
  2004-07-31 13:13 ` Vladimir V. Saveliev
  0 siblings, 2 replies; 4+ messages in thread
From: Jonathan Briggs @ 2004-07-30 22:30 UTC (permalink / raw)
  To: Reiserfs mail-list

[-- Attachment #1: Type: text/plain, Size: 2589 bytes --]

I wanted to try out the latest even though I know it may not work.
Either it doesn't work, or I did it wrong.  I was hoping someone would
know which.

I've got a raid-0 device with a Reiser4 FS from March.  When I tried to
mount that after booting 2.6.8-rc2-mm1-reiser4 I got an Oops.  I thought
it might be a change in the disk structure so I got the latest (I think)
reiser4 tools and tried creating a new FS and loop mounting it.  That
got me another, identical Oops.

Here it is if anyone wants to look:
Unable to handle kernel NULL pointer dereference at virtual address 00000004
 printing eip:
c01b0df4
*pde = 00000000
Oops: 0000 [#1]
Modules linked in: joydev evdev usbhid dm_mod ehci_hcd uhci_hcd usbcore
CPU:    0
EIP:    0060:[<c01b0df4>]    Not tainted VLI
EFLAGS: 00010286   (2.6.8-rc2-mm1)
EIP is at clog_link_object+0x64/0xe0
eax: 00000000   ebx: 00000000   ecx: c046d964   edx: c16e9dec
esi: defa8d60   edi: c16e9dec   ebp: c16e9b08   esp: c16e9b04
ds: 007b   es: 007b   ss: 0068
Process mount (pid: 1523, threadinfo=c16e8000 task=df936bf0)
Stack: c16e9c08 c16e9dec c01b7450 00000008 defa8d60 00000001 00000000 00000000
       defa8d60 c01b7789 c16e9dec defa8d60 c16e9dec 00000000 defa8d60 c01b781a
       c16e9dec 00000000 00000000 00000001 00000000 c16e9dec defa8dc0 c01b7a9d
Call Trace:
 [<c01b7450>] lock_object+0x50/0x90
 [<c01b7789>] lock_tail+0x59/0x70
 [<c01b781a>] longterm_lock_tryfast+0x7a/0xa0
 [<c01b7a9d>] longterm_lock_znode+0x25d/0x280
 [<c01f6081>] try_init_format40+0x311/0x3a0
 [<c01c66de>] traverse_tree+0x22e/0x290
 [<c01c5de7>] coord_by_key+0xb7/0xd0
 [<c01d5cf6>] lookup_sd+0x76/0xb0
 [<c01cc035>] read_inode+0x55/0x130
 [<c01cc320>] reiser4_iget+0xf0/0x150
 [<c01cc110>] init_locked_inode+0x0/0x60
 [<c01d4683>] _init_fs_root+0x33/0x110
 [<c01f1b32>] d_cursor_init_at+0x52/0xa0
 [<c01d485b>] reiser4_fill_super+0x3b/0xa0
 [<c015509e>] sb_set_blocksize+0x2e/0x60
 [<c0154abd>] get_sb_bdev+0x11d/0x150
 [<c01aca50>] journal_end+0xa0/0xc0
 [<c01cdf7f>] reiser4_get_sb+0x2f/0x40
 [<c01d4820>] reiser4_fill_super+0x0/0xa0
 [<c0154d07>] do_kern_mount+0x57/0xe0
 [<c0168c7c>] do_new_mount+0x9c/0xf0
 [<c0169207>] do_mount+0x147/0x1a0
 [<c0169063>] copy_mount_options+0x63/0xc0
 [<c01695c0>] sys_mount+0xa0/0x100
 [<c0103fa9>] sysenter_past_esp+0x52/0x71
Code: 8b 64 d9 46 c0 8b 55 00 89 83 68 d9 46 c0 b8 00 e0 ff ff 21 e0 8b 00 8b 80 88 00 00 00 89 83 64 d9 46 c0 8b 42 04 89 41 10 8b 02 <8b> 40 04 89 41 14 8b 02 8b 00 8b 40 04 89 41 18 8b 02 8b
00 8b


-- 
Jonathan Briggs
jbriggs@esoft.com


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: What did I do wrong?  Oopses with 7-30 auto-snapshot
  2004-07-30 22:30 What did I do wrong? Oopses with 7-30 auto-snapshot Jonathan Briggs
@ 2004-07-31  0:28 ` Maciejewski, Jake
  2004-07-31 13:13 ` Vladimir V. Saveliev
  1 sibling, 0 replies; 4+ messages in thread
From: Maciejewski, Jake @ 2004-07-31  0:28 UTC (permalink / raw)
  To: Reiserfs mail-list

I'm getting oopses too, but it works with frame pointers enabled.

On Fri, 2004-07-30 at 17:30, Jonathan Briggs wrote:
> I wanted to try out the latest even though I know it may not work.
> Either it doesn't work, or I did it wrong.  I was hoping someone would
> know which.
> 
> I've got a raid-0 device with a Reiser4 FS from March.  When I tried to
> mount that after booting 2.6.8-rc2-mm1-reiser4 I got an Oops.  I thought
> it might be a change in the disk structure so I got the latest (I think)
> reiser4 tools and tried creating a new FS and loop mounting it.  That
> got me another, identical Oops.
> 
> Here it is if anyone wants to look:
> Unable to handle kernel NULL pointer dereference at virtual address
> 00000004
>  printing eip:
> c01b0df4
> *pde = 00000000
> Oops: 0000 [#1]
> Modules linked in: joydev evdev usbhid dm_mod ehci_hcd uhci_hcd usbcore
> CPU:    0
> EIP:    0060:[<c01b0df4>]    Not tainted VLI
> EFLAGS: 00010286   (2.6.8-rc2-mm1)
> EIP is at clog_link_object+0x64/0xe0
> eax: 00000000   ebx: 00000000   ecx: c046d964   edx: c16e9dec
> esi: defa8d60   edi: c16e9dec   ebp: c16e9b08   esp: c16e9b04
> ds: 007b   es: 007b   ss: 0068
> Process mount (pid: 1523, threadinfo=c16e8000 task=df936bf0)
> Stack: c16e9c08 c16e9dec c01b7450 00000008 defa8d60 00000001 00000000
> 00000000
>        defa8d60 c01b7789 c16e9dec defa8d60 c16e9dec 00000000 defa8d60
> c01b781a
>        c16e9dec 00000000 00000000 00000001 00000000 c16e9dec defa8dc0
> c01b7a9d
> Call Trace:
>  [<c01b7450>] lock_object+0x50/0x90
>  [<c01b7789>] lock_tail+0x59/0x70
>  [<c01b781a>] longterm_lock_tryfast+0x7a/0xa0
>  [<c01b7a9d>] longterm_lock_znode+0x25d/0x280
>  [<c01f6081>] try_init_format40+0x311/0x3a0
>  [<c01c66de>] traverse_tree+0x22e/0x290
>  [<c01c5de7>] coord_by_key+0xb7/0xd0
>  [<c01d5cf6>] lookup_sd+0x76/0xb0
>  [<c01cc035>] read_inode+0x55/0x130
>  [<c01cc320>] reiser4_iget+0xf0/0x150
>  [<c01cc110>] init_locked_inode+0x0/0x60
>  [<c01d4683>] _init_fs_root+0x33/0x110
>  [<c01f1b32>] d_cursor_init_at+0x52/0xa0
>  [<c01d485b>] reiser4_fill_super+0x3b/0xa0
>  [<c015509e>] sb_set_blocksize+0x2e/0x60
>  [<c0154abd>] get_sb_bdev+0x11d/0x150
>  [<c01aca50>] journal_end+0xa0/0xc0
>  [<c01cdf7f>] reiser4_get_sb+0x2f/0x40
>  [<c01d4820>] reiser4_fill_super+0x0/0xa0
>  [<c0154d07>] do_kern_mount+0x57/0xe0
>  [<c0168c7c>] do_new_mount+0x9c/0xf0
>  [<c0169207>] do_mount+0x147/0x1a0
>  [<c0169063>] copy_mount_options+0x63/0xc0
>  [<c01695c0>] sys_mount+0xa0/0x100
>  [<c0103fa9>] sysenter_past_esp+0x52/0x71
> Code: 8b 64 d9 46 c0 8b 55 00 89 83 68 d9 46 c0 b8 00 e0 ff ff 21 e0 8b
> 00 8b 80 88 00 00 00 89 83 64 d9 46 c0 8b 42 04 89 41 10 8b 02 <8b> 40
> 04 89 41 14 8b 02 8b 00 8b 40 04 89 41 18 8b 02 8b
> 00 8b
-- 
Jake Maciejewski <maciejej@msoe.edu>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: What did I do wrong?  Oopses with 7-30 auto-snapshot
  2004-07-30 22:30 What did I do wrong? Oopses with 7-30 auto-snapshot Jonathan Briggs
  2004-07-31  0:28 ` Maciejewski, Jake
@ 2004-07-31 13:13 ` Vladimir V. Saveliev
  2004-07-31 15:52   ` Maciejewski, Jake
  1 sibling, 1 reply; 4+ messages in thread
From: Vladimir V. Saveliev @ 2004-07-31 13:13 UTC (permalink / raw)
  To: Jonathan Briggs; +Cc: Reiserfs mail-list

[-- Attachment #1: Type: text/plain, Size: 1083 bytes --]

Hello

Jonathan Briggs wrote:
> I wanted to try out the latest even though I know it may not work.
> Either it doesn't work, or I did it wrong.  I was hoping someone would
> know which.
> 
> I've got a raid-0 device with a Reiser4 FS from March.  When I tried to
> mount that after booting 2.6.8-rc2-mm1-reiser4 I got an Oops.  I thought
> it might be a change in the disk structure so I got the latest (I think)
> reiser4 tools and tried creating a new FS and loop mounting it.  That
> got me another, identical Oops.
> 
> Here it is if anyone wants to look:
> Unable to handle kernel NULL pointer dereference at virtual address 00000004
>  printing eip:
> c01b0df4
> *pde = 00000000
> Oops: 0000 [#1]
> Modules linked in: joydev evdev usbhid dm_mod ehci_hcd uhci_hcd usbcore
> CPU:    0
> EIP:    0060:[<c01b0df4>]    Not tainted VLI
> EFLAGS: 00010286   (2.6.8-rc2-mm1)
> EIP is at clog_link_object+0x64/0xe0
> eax: 00000000   ebx: 00000000   ecx: c046d964   edx: c16e9dec

Oops, yes, sorry, it did not work when CONFIG_FRAME_POINTER is not set
The attached patch should fix that

[-- Attachment #2: cleanup-patch.diff --]
[-- Type: text/plain, Size: 8739 bytes --]

# This is a BitKeeper generated diff -Nru style patch.
#
# ChangeSet
#   2004/07/31 17:02:21+04:00 reiser4@tribesman.namesys.com 
#   append_and_or_overwrite: no page fault holding longterm lock
# 
# plugin/item/extent_file_ops.c
#   2004/07/31 17:02:18+04:00 reiser4@tribesman.namesys.com +0 -14
#   append_and_or_overwrite: no page fault holding longterm lock
# 
# ChangeSet
#   2004/07/31 16:51:02+04:00 reiser4@tribesman.namesys.com 
#   cleanup
# 
# txnmgr.c
#   2004/07/31 16:50:59+04:00 reiser4@tribesman.namesys.com +0 -22
#   cleanup
# 
# plugin/item/extent_file_ops.c
#   2004/07/31 16:50:58+04:00 reiser4@tribesman.namesys.com +0 -5
#   cleanup
# 
# plugin/file/file.c
#   2004/07/31 16:50:58+04:00 reiser4@tribesman.namesys.com +0 -4
#   cleanup
# 
# lock.c
#   2004/07/31 16:50:58+04:00 reiser4@tribesman.namesys.com +0 -2
#   cleanup
# 
# debug.h
#   2004/07/31 16:50:58+04:00 reiser4@tribesman.namesys.com +0 -2
#   cleanup
# 
# debug.c
#   2004/07/31 16:50:58+04:00 reiser4@tribesman.namesys.com +5 -44
#   cleanup
# 
# context.h
#   2004/07/31 16:50:58+04:00 reiser4@tribesman.namesys.com +1 -3
#   cleanup
# 
diff -Nru a/context.h b/context.h
--- a/context.h	2004-07-31 17:10:22 +04:00
+++ b/context.h	2004-07-31 17:10:22 +04:00
@@ -146,10 +146,8 @@
 	err_site err;
 	/* information about delayed stat data updates. See above. */
 	dirty_inode_info dirty;
-
-	void *mjd_bt[6]; /* last mark jnode dirty backtrace */
-	int count;
 #endif
+
 #if REISER4_TRACE
 	/* per-thread tracing flags. Use reiser4_trace_flags enum to set
 	   bits in it. */
diff -Nru a/debug.c b/debug.c
--- a/debug.c	2004-07-31 17:10:22 +04:00
+++ b/debug.c	2004-07-31 17:10:22 +04:00
@@ -637,7 +637,6 @@
 	int op;
 	void *data1;
 	void *data2;
-	unsigned long data[6];
 } clog_t;
 
 clog_t clog[CLOG_LENGTH];
@@ -672,39 +671,6 @@
 	spin_unlock(&clog_lock);
 }
 
-/* this is to log lock/unlock */
-void
-clog_link_object(int op, void *data1, void *data2)
-{
-	int idx;
-
-	spin_lock(&clog_lock);
-	
-	if (clog_length == CLOG_LENGTH) {
-		idx = clog_start;
-		clog_start ++;
-		clog_start %= CLOG_LENGTH;
-	} else {
-		idx = clog_length;
-		assert("vs-1672", clog_start == 0);
-		clog_length ++;		
-	}
-		
-	clog[idx].id = clog_id ++;
-	clog[idx].op = op;
-	clog[idx].pid = current->pid;
-	clog[idx].data[0] = (unsigned long)__builtin_return_address(1);
-	clog[idx].data[1] = (unsigned long)__builtin_return_address(2);
-	clog[idx].data[2] = (unsigned long)__builtin_return_address(3);
-	clog[idx].data[3] = (unsigned long)__builtin_return_address(4);
-	clog[idx].data[4] = (unsigned long)__builtin_return_address(5);
-	clog[idx].data[5] = (unsigned long)__builtin_return_address(6);
-	clog[idx].data1 = data1;
-	clog[idx].data2 = data2;
-	spin_unlock(&clog_lock);
-}
-
-
 static const char *
 op2str(int op)
 {
@@ -727,25 +693,19 @@
 void
 print_clog(void)
 {
-	int i, j, k;
+	int i, j;
 
 	j = clog_start;
 	for (i = 0; i < clog_length; i ++) {
-		if (clog[j].op == LINK_OBJECT || clog[j].op == UNLINK_OBJECT) {
-			printk("%d(%d): id %d: pid %d, op %s, locks %p [",
-			       i, j, clog[j].id, clog[j].pid, op2str(clog[j].op), clog[j].data1);
-			for (k = 0; k < 6; k ++)
-				print_symname(clog[j].data[k]);
-			printk("]\n");
-		} else
-			printk("%d(%d): id %d: pid %d, op %s, data1 %p, data2 %p\n",
-			       i, j, clog[j].id, clog[j].pid, op2str(clog[j].op), clog[j].data1, clog[j].data2);
+		printk("%d(%d): id %d: pid %d, op %s, data1 %p, data2 %p\n",
+		       i, j, clog[j].id, clog[j].pid, op2str(clog[j].op), clog[j].data1, clog[j].data2);
 		j ++;
 		j %= CLOG_LENGTH;
 	}
 	printk("clog length %d\n", clog_length);
 }
 
+#if 0
 void
 print_symname(unsigned long address)
 {
@@ -759,6 +719,7 @@
 	if (name != NULL)
 		printk("  %s[%lx/%lx]", name, offset, size);
 }
+#endif
 
 /* Make Linus happy.
    Local variables:
diff -Nru a/debug.h b/debug.h
--- a/debug.h	2004-07-31 17:10:22 +04:00
+++ b/debug.h	2004-07-31 17:10:22 +04:00
@@ -543,9 +543,7 @@
 #define OP_NUM 10
 
 void clog_op(int op, void *, void *);
-void clog_link_object(int op, void *, void *);
 void print_clog(void);
-void print_symname(unsigned long address);
 
 /* __FS_REISER4_DEBUG_H__ */
 #endif
diff -Nru a/lock.c b/lock.c
--- a/lock.c	2004-07-31 17:10:22 +04:00
+++ b/lock.c	2004-07-31 17:10:22 +04:00
@@ -273,7 +273,6 @@
 	assert("reiser4-4", ergo(locks_list_empty(&owner->locks), owner->nr_locks == 0));
 	locks_list_push_back(&owner->locks, handle);
 	owner->nr_locks ++;
-	clog_link_object(LINK_OBJECT, node, (void *)owner->nr_locks);
 
 	owners_list_push_front(&node->lock.owners, handle);
 	handle->signaled = 0;
@@ -292,7 +291,6 @@
 	locks_list_remove_clean(handle);
 	handle->owner->nr_locks --;
 	assert("reiser4-6", ergo(locks_list_empty(&handle->owner->locks), handle->owner->nr_locks == 0));
-	clog_link_object(UNLINK_OBJECT, handle->node, (void *)handle->owner->nr_locks);
 
 	owners_list_remove_clean(handle);
 
diff -Nru a/plugin/file/file.c b/plugin/file/file.c
--- a/plugin/file/file.c	2004-07-31 17:10:22 +04:00
+++ b/plugin/file/file.c	2004-07-31 17:10:22 +04:00
@@ -1472,8 +1472,6 @@
 	if (result)
 		return result;
 
-	clog_op(READPAGE_IN, (void *)(unsigned long)get_inode_oid(inode), (void *)page->index);
-
 	/* get key of first byte of the page */
 	key_by_inode_unix_file(inode, (loff_t) page->index << PAGE_CACHE_SHIFT, &key);
 
@@ -1490,7 +1488,6 @@
 	if (PageUptodate(page)) {
 		done_lh(&lh);
 		unlock_page(page);
-		clog_op(READPAGE_OUT, (void *)(unsigned long)get_inode_oid(inode), (void *)page->index);
 		return 0;
 	}
 	
@@ -1535,7 +1532,6 @@
 	save_file_hint(file, &hint);
 
 	assert("vs-979", ergo(result == 0, (PageLocked(page) || PageUptodate(page))));
-	clog_op(READPAGE_OUT, (void *)(unsigned long)get_inode_oid(inode), (void *)page->index);
 
 	return result;
 }
diff -Nru a/plugin/item/extent_file_ops.c b/plugin/item/extent_file_ops.c
--- a/plugin/item/extent_file_ops.c	2004-07-31 17:10:22 +04:00
+++ b/plugin/item/extent_file_ops.c	2004-07-31 17:10:22 +04:00
@@ -626,8 +626,6 @@
 	/* offset within the page */
 	page_off = (unsigned long)(file_off & (PAGE_CACHE_SIZE - 1));
 
-	clog_op(EXTENT_WRITE_IN, (void *)(unsigned long)oid, (void *)(unsigned long)file_off);
-
 	/* key of first byte of page */
 	page_key = flow->key;
 	set_key_offset(&page_key, (loff_t)page_nr << PAGE_CACHE_SHIFT);
@@ -644,7 +642,6 @@
 
 		write_page_log(inode->i_mapping, page_nr);
 
-		clog_op(EXTENT_WRITE_IN2, (void *)get_current_lock_stack()->nr_locks, 0);
 		result = make_extent(&page_key, uf_coord, mode, &blocknr, &created, inode/* check quota */);
 		if (result) {
 			goto exit1;
@@ -720,7 +717,6 @@
 		assert("nikita-2104", lock_stack_isclean(get_current_lock_stack()));
 
 		/* copy user data into page */
-		clog_op(EXTENT_WRITE_OUT2, (void *)get_current_lock_stack()->nr_locks, 0);
 		result = __copy_from_user((char *)kmap(page) + page_off, flow->data - count, count);
 		kunmap(page);
 		if (unlikely(result)) {
@@ -764,15 +760,6 @@
 		file_off += count;
 		set_key_offset(&page_key, (loff_t)page_nr << PAGE_CACHE_SHIFT);
 
-		if (flow->length) {
-			/* read in next portion of user buffer */
-			size_t bytes;
-
-			bytes = PAGE_CACHE_SIZE;
-			if (bytes > flow->length)
-				bytes = flow->length;
-			fault_in_pages_readable(flow->data, bytes);
-		}
 		continue;
 
 	exit3:
@@ -794,12 +781,6 @@
 		*/
 	} while (flow->length && uf_coord->valid == 1);
 
-/*
-	if (flow->length)
-		DQUOT_FREE_SPACE_NODIRTY(inode, flow->length);
-*/
-
-	clog_op(EXTENT_WRITE_OUT, (void *)(unsigned long)oid, (void *)result);
 	return result;
 }
 
diff -Nru a/txnmgr.c b/txnmgr.c
--- a/txnmgr.c	2004-07-31 17:10:22 +04:00
+++ b/txnmgr.c	2004-07-31 17:10:22 +04:00
@@ -2570,29 +2570,7 @@
 	JF_SET(node, JNODE_DIRTY);
 
 	get_current_context()->nr_marked_dirty ++;
-#if REISER4_DEBUG
-	{
-		reiser4_context *ctx;
 
-		ctx = get_current_context();
-		if (__builtin_return_address(0) == ctx->mjd_bt[0] &&
-		    __builtin_return_address(1) == ctx->mjd_bt[1] &&
-		    __builtin_return_address(2) == ctx->mjd_bt[2] &&
-		    __builtin_return_address(3) == ctx->mjd_bt[3] &&
-		    __builtin_return_address(4) == ctx->mjd_bt[4] &&
-		    __builtin_return_address(5) == ctx->mjd_bt[5]) {
-			ctx->count ++;
-		} else {
-			ctx->mjd_bt[0] = __builtin_return_address(0);
-			ctx->mjd_bt[1] = __builtin_return_address(1);
-			ctx->mjd_bt[2] = __builtin_return_address(2);
-			ctx->mjd_bt[3] = __builtin_return_address(3);
-			ctx->mjd_bt[4] = __builtin_return_address(4);
-			ctx->mjd_bt[5] = __builtin_return_address(5);
-			ctx->count = 1;
-		}
-	}
-#endif
 	/* We grab2flush_reserve one additional block only if node was
 	   not CREATED and jnode_flush did not sort it into neither
 	   relocate set nor overwrite one. If node is in overwrite or

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: What did I do wrong?  Oopses with 7-30 auto-snapshot
  2004-07-31 13:13 ` Vladimir V. Saveliev
@ 2004-07-31 15:52   ` Maciejewski, Jake
  0 siblings, 0 replies; 4+ messages in thread
From: Maciejewski, Jake @ 2004-07-31 15:52 UTC (permalink / raw)
  To: Reiserfs mail-list

Thanks for the patch, it works for me.

On Sat, 2004-07-31 at 08:13, Vladimir V. Saveliev wrote:
> Hello
> 
> Jonathan Briggs wrote:
> > I wanted to try out the latest even though I know it may not work.
> > Either it doesn't work, or I did it wrong.  I was hoping someone would
> > know which.
> > 
> > I've got a raid-0 device with a Reiser4 FS from March.  When I tried to
> > mount that after booting 2.6.8-rc2-mm1-reiser4 I got an Oops.  I thought
> > it might be a change in the disk structure so I got the latest (I think)
> > reiser4 tools and tried creating a new FS and loop mounting it.  That
> > got me another, identical Oops.
> > 
> > Here it is if anyone wants to look:
> > Unable to handle kernel NULL pointer dereference at virtual address 00000004
> >  printing eip:
> > c01b0df4
> > *pde = 00000000
> > Oops: 0000 [#1]
> > Modules linked in: joydev evdev usbhid dm_mod ehci_hcd uhci_hcd usbcore
> > CPU:    0
> > EIP:    0060:[<c01b0df4>]    Not tainted VLI
> > EFLAGS: 00010286   (2.6.8-rc2-mm1)
> > EIP is at clog_link_object+0x64/0xe0
> > eax: 00000000   ebx: 00000000   ecx: c046d964   edx: c16e9dec
> 
> Oops, yes, sorry, it did not work when CONFIG_FRAME_POINTER is not set
> The attached patch should fix that
> 
> 
> ______________________________________________________________________
> # This is a BitKeeper generated diff -Nru style patch.
> #
> # ChangeSet
> #   2004/07/31 17:02:21+04:00 reiser4@tribesman.namesys.com 
> #   append_and_or_overwrite: no page fault holding longterm lock
> # 
> # plugin/item/extent_file_ops.c
> #   2004/07/31 17:02:18+04:00 reiser4@tribesman.namesys.com +0 -14
> #   append_and_or_overwrite: no page fault holding longterm lock
> # 
> # ChangeSet
> #   2004/07/31 16:51:02+04:00 reiser4@tribesman.namesys.com 
> #   cleanup
> # 
> # txnmgr.c
> #   2004/07/31 16:50:59+04:00 reiser4@tribesman.namesys.com +0 -22
> #   cleanup
> # 
> # plugin/item/extent_file_ops.c
> #   2004/07/31 16:50:58+04:00 reiser4@tribesman.namesys.com +0 -5
> #   cleanup
> # 
> # plugin/file/file.c
> #   2004/07/31 16:50:58+04:00 reiser4@tribesman.namesys.com +0 -4
> #   cleanup
> # 
> # lock.c
> #   2004/07/31 16:50:58+04:00 reiser4@tribesman.namesys.com +0 -2
> #   cleanup
> # 
> # debug.h
> #   2004/07/31 16:50:58+04:00 reiser4@tribesman.namesys.com +0 -2
> #   cleanup
> # 
> # debug.c
> #   2004/07/31 16:50:58+04:00 reiser4@tribesman.namesys.com +5 -44
> #   cleanup
> # 
> # context.h
> #   2004/07/31 16:50:58+04:00 reiser4@tribesman.namesys.com +1 -3
> #   cleanup
> # 
> diff -Nru a/context.h b/context.h
> --- a/context.h	2004-07-31 17:10:22 +04:00
> +++ b/context.h	2004-07-31 17:10:22 +04:00
> @@ -146,10 +146,8 @@
>  	err_site err;
>  	/* information about delayed stat data updates. See above. */
>  	dirty_inode_info dirty;
> -
> -	void *mjd_bt[6]; /* last mark jnode dirty backtrace */
> -	int count;
>  #endif
> +
>  #if REISER4_TRACE
>  	/* per-thread tracing flags. Use reiser4_trace_flags enum to set
>  	   bits in it. */
> diff -Nru a/debug.c b/debug.c
> --- a/debug.c	2004-07-31 17:10:22 +04:00
> +++ b/debug.c	2004-07-31 17:10:22 +04:00
> @@ -637,7 +637,6 @@
>  	int op;
>  	void *data1;
>  	void *data2;
> -	unsigned long data[6];
>  } clog_t;
>  
>  clog_t clog[CLOG_LENGTH];
> @@ -672,39 +671,6 @@
>  	spin_unlock(&clog_lock);
>  }
>  
> -/* this is to log lock/unlock */
> -void
> -clog_link_object(int op, void *data1, void *data2)
> -{
> -	int idx;
> -
> -	spin_lock(&clog_lock);
> -	
> -	if (clog_length == CLOG_LENGTH) {
> -		idx = clog_start;
> -		clog_start ++;
> -		clog_start %= CLOG_LENGTH;
> -	} else {
> -		idx = clog_length;
> -		assert("vs-1672", clog_start == 0);
> -		clog_length ++;		
> -	}
> -		
> -	clog[idx].id = clog_id ++;
> -	clog[idx].op = op;
> -	clog[idx].pid = current->pid;
> -	clog[idx].data[0] = (unsigned long)__builtin_return_address(1);
> -	clog[idx].data[1] = (unsigned long)__builtin_return_address(2);
> -	clog[idx].data[2] = (unsigned long)__builtin_return_address(3);
> -	clog[idx].data[3] = (unsigned long)__builtin_return_address(4);
> -	clog[idx].data[4] = (unsigned long)__builtin_return_address(5);
> -	clog[idx].data[5] = (unsigned long)__builtin_return_address(6);
> -	clog[idx].data1 = data1;
> -	clog[idx].data2 = data2;
> -	spin_unlock(&clog_lock);
> -}
> -
> -
>  static const char *
>  op2str(int op)
>  {
> @@ -727,25 +693,19 @@
>  void
>  print_clog(void)
>  {
> -	int i, j, k;
> +	int i, j;
>  
>  	j = clog_start;
>  	for (i = 0; i < clog_length; i ++) {
> -		if (clog[j].op == LINK_OBJECT || clog[j].op == UNLINK_OBJECT) {
> -			printk("%d(%d): id %d: pid %d, op %s, locks %p [",
> -			       i, j, clog[j].id, clog[j].pid, op2str(clog[j].op), clog[j].data1);
> -			for (k = 0; k < 6; k ++)
> -				print_symname(clog[j].data[k]);
> -			printk("]\n");
> -		} else
> -			printk("%d(%d): id %d: pid %d, op %s, data1 %p, data2 %p\n",
> -			       i, j, clog[j].id, clog[j].pid, op2str(clog[j].op), clog[j].data1, clog[j].data2);
> +		printk("%d(%d): id %d: pid %d, op %s, data1 %p, data2 %p\n",
> +		       i, j, clog[j].id, clog[j].pid, op2str(clog[j].op), clog[j].data1, clog[j].data2);
>  		j ++;
>  		j %= CLOG_LENGTH;
>  	}
>  	printk("clog length %d\n", clog_length);
>  }
>  
> +#if 0
>  void
>  print_symname(unsigned long address)
>  {
> @@ -759,6 +719,7 @@
>  	if (name != NULL)
>  		printk("  %s[%lx/%lx]", name, offset, size);
>  }
> +#endif
>  
>  /* Make Linus happy.
>     Local variables:
> diff -Nru a/debug.h b/debug.h
> --- a/debug.h	2004-07-31 17:10:22 +04:00
> +++ b/debug.h	2004-07-31 17:10:22 +04:00
> @@ -543,9 +543,7 @@
>  #define OP_NUM 10
>  
>  void clog_op(int op, void *, void *);
> -void clog_link_object(int op, void *, void *);
>  void print_clog(void);
> -void print_symname(unsigned long address);
>  
>  /* __FS_REISER4_DEBUG_H__ */
>  #endif
> diff -Nru a/lock.c b/lock.c
> --- a/lock.c	2004-07-31 17:10:22 +04:00
> +++ b/lock.c	2004-07-31 17:10:22 +04:00
> @@ -273,7 +273,6 @@
>  	assert("reiser4-4", ergo(locks_list_empty(&owner->locks), owner->nr_locks == 0));
>  	locks_list_push_back(&owner->locks, handle);
>  	owner->nr_locks ++;
> -	clog_link_object(LINK_OBJECT, node, (void *)owner->nr_locks);
>  
>  	owners_list_push_front(&node->lock.owners, handle);
>  	handle->signaled = 0;
> @@ -292,7 +291,6 @@
>  	locks_list_remove_clean(handle);
>  	handle->owner->nr_locks --;
>  	assert("reiser4-6", ergo(locks_list_empty(&handle->owner->locks), handle->owner->nr_locks == 0));
> -	clog_link_object(UNLINK_OBJECT, handle->node, (void *)handle->owner->nr_locks);
>  
>  	owners_list_remove_clean(handle);
>  
> diff -Nru a/plugin/file/file.c b/plugin/file/file.c
> --- a/plugin/file/file.c	2004-07-31 17:10:22 +04:00
> +++ b/plugin/file/file.c	2004-07-31 17:10:22 +04:00
> @@ -1472,8 +1472,6 @@
>  	if (result)
>  		return result;
>  
> -	clog_op(READPAGE_IN, (void *)(unsigned long)get_inode_oid(inode), (void *)page->index);
> -
>  	/* get key of first byte of the page */
>  	key_by_inode_unix_file(inode, (loff_t) page->index << PAGE_CACHE_SHIFT, &key);
>  
> @@ -1490,7 +1488,6 @@
>  	if (PageUptodate(page)) {
>  		done_lh(&lh);
>  		unlock_page(page);
> -		clog_op(READPAGE_OUT, (void *)(unsigned long)get_inode_oid(inode), (void *)page->index);
>  		return 0;
>  	}
>  	
> @@ -1535,7 +1532,6 @@
>  	save_file_hint(file, &hint);
>  
>  	assert("vs-979", ergo(result == 0, (PageLocked(page) || PageUptodate(page))));
> -	clog_op(READPAGE_OUT, (void *)(unsigned long)get_inode_oid(inode), (void *)page->index);
>  
>  	return result;
>  }
> diff -Nru a/plugin/item/extent_file_ops.c b/plugin/item/extent_file_ops.c
> --- a/plugin/item/extent_file_ops.c	2004-07-31 17:10:22 +04:00
> +++ b/plugin/item/extent_file_ops.c	2004-07-31 17:10:22 +04:00
> @@ -626,8 +626,6 @@
>  	/* offset within the page */
>  	page_off = (unsigned long)(file_off & (PAGE_CACHE_SIZE - 1));
>  
> -	clog_op(EXTENT_WRITE_IN, (void *)(unsigned long)oid, (void *)(unsigned long)file_off);
> -
>  	/* key of first byte of page */
>  	page_key = flow->key;
>  	set_key_offset(&page_key, (loff_t)page_nr << PAGE_CACHE_SHIFT);
> @@ -644,7 +642,6 @@
>  
>  		write_page_log(inode->i_mapping, page_nr);
>  
> -		clog_op(EXTENT_WRITE_IN2, (void *)get_current_lock_stack()->nr_locks, 0);
>  		result = make_extent(&page_key, uf_coord, mode, &blocknr, &created, inode/* check quota */);
>  		if (result) {
>  			goto exit1;
> @@ -720,7 +717,6 @@
>  		assert("nikita-2104", lock_stack_isclean(get_current_lock_stack()));
>  
>  		/* copy user data into page */
> -		clog_op(EXTENT_WRITE_OUT2, (void *)get_current_lock_stack()->nr_locks, 0);
>  		result = __copy_from_user((char *)kmap(page) + page_off, flow->data - count, count);
>  		kunmap(page);
>  		if (unlikely(result)) {
> @@ -764,15 +760,6 @@
>  		file_off += count;
>  		set_key_offset(&page_key, (loff_t)page_nr << PAGE_CACHE_SHIFT);
>  
> -		if (flow->length) {
> -			/* read in next portion of user buffer */
> -			size_t bytes;
> -
> -			bytes = PAGE_CACHE_SIZE;
> -			if (bytes > flow->length)
> -				bytes = flow->length;
> -			fault_in_pages_readable(flow->data, bytes);
> -		}
>  		continue;
>  
>  	exit3:
> @@ -794,12 +781,6 @@
>  		*/
>  	} while (flow->length && uf_coord->valid == 1);
>  
> -/*
> -	if (flow->length)
> -		DQUOT_FREE_SPACE_NODIRTY(inode, flow->length);
> -*/
> -
> -	clog_op(EXTENT_WRITE_OUT, (void *)(unsigned long)oid, (void *)result);
>  	return result;
>  }
>  
> diff -Nru a/txnmgr.c b/txnmgr.c
> --- a/txnmgr.c	2004-07-31 17:10:22 +04:00
> +++ b/txnmgr.c	2004-07-31 17:10:22 +04:00
> @@ -2570,29 +2570,7 @@
>  	JF_SET(node, JNODE_DIRTY);
>  
>  	get_current_context()->nr_marked_dirty ++;
> -#if REISER4_DEBUG
> -	{
> -		reiser4_context *ctx;
>  
> -		ctx = get_current_context();
> -		if (__builtin_return_address(0) == ctx->mjd_bt[0] &&
> -		    __builtin_return_address(1) == ctx->mjd_bt[1] &&
> -		    __builtin_return_address(2) == ctx->mjd_bt[2] &&
> -		    __builtin_return_address(3) == ctx->mjd_bt[3] &&
> -		    __builtin_return_address(4) == ctx->mjd_bt[4] &&
> -		    __builtin_return_address(5) == ctx->mjd_bt[5]) {
> -			ctx->count ++;
> -		} else {
> -			ctx->mjd_bt[0] = __builtin_return_address(0);
> -			ctx->mjd_bt[1] = __builtin_return_address(1);
> -			ctx->mjd_bt[2] = __builtin_return_address(2);
> -			ctx->mjd_bt[3] = __builtin_return_address(3);
> -			ctx->mjd_bt[4] = __builtin_return_address(4);
> -			ctx->mjd_bt[5] = __builtin_return_address(5);
> -			ctx->count = 1;
> -		}
> -	}
> -#endif
>  	/* We grab2flush_reserve one additional block only if node was
>  	   not CREATED and jnode_flush did not sort it into neither
>  	   relocate set nor overwrite one. If node is in overwrite or
-- 
Jake Maciejewski <maciejej@msoe.edu>

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2004-07-31 15:52 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-07-30 22:30 What did I do wrong? Oopses with 7-30 auto-snapshot Jonathan Briggs
2004-07-31  0:28 ` Maciejewski, Jake
2004-07-31 13:13 ` Vladimir V. Saveliev
2004-07-31 15:52   ` Maciejewski, Jake

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.