* [PATCH] radix-tree pagecache for 2.4.19-pre5-ac3
@ 2002-04-07 16:44 Art Haas
2002-04-09 16:29 ` Paul P Komkoff Jr
2002-04-10 20:59 ` William Lee Irwin III
0 siblings, 2 replies; 9+ messages in thread
From: Art Haas @ 2002-04-07 16:44 UTC (permalink / raw)
To: linux-kernel; +Cc: linux-mm
[-- Attachment #1: Type: text/plain, Size: 787 bytes --]
Hi.
Once again the patch has been re-diffed for the latest -ac
kernel. It's running on my machine now. Enjoy!
I'm interested in hearing back from anyone using this
patch - I'd like to be sure that it applies cleanly (I
believe it does), and that the kernel built with the
patch runs well. The -ac kernels with rmap and the O(1)
scheduler are working well for me, and I'm hoping that
this patch adds to those kernels. At some point I'm hoping
the patch is included in to the -ac patchset, and the
eventual inclusion into the standard kernel release.
My thanks to everyone working on the kernel.
Art Haas
--
They that can give up essential liberty to obtain a little temporary
safety deserve neither liberty nor safety.
-- Benjamin Franklin, Historical Review of Pennsylvania, 1759
[-- Attachment #2: radix-tree-2419p5ac3.patch.bz2 --]
[-- Type: application/octet-stream, Size: 12586 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] radix-tree pagecache for 2.4.19-pre5-ac3
2002-04-07 16:44 [PATCH] radix-tree pagecache for 2.4.19-pre5-ac3 Art Haas
@ 2002-04-09 16:29 ` Paul P Komkoff Jr
2002-04-10 20:59 ` William Lee Irwin III
1 sibling, 0 replies; 9+ messages in thread
From: Paul P Komkoff Jr @ 2002-04-09 16:29 UTC (permalink / raw)
To: linux-kernel
Replying to Art Haas:
> Hi.
>
> Once again the patch has been re-diffed for the latest -ac
> kernel. It's running on my machine now. Enjoy!
I'm sure you will glad to hear that your patch trashing the box it runs on
completely.
I'm now developing -stingr4* patchset against -pre5-ac3 and I am very angry.
I wasted about 6 hours today hinting this very obscure bug and didn't caught
it well :(
the kernel with radix tree pagecache patch under LTP fs tests load fails
generating the following oopses (below).
I'm sure Mr.Viro will glad to see it too because I am stuck and after 1st
pass cannot see the place in where I_FREEING can be removed from
inode->i_state tracing from iput to clear_inode thru reiserfs_delete_inode.
But maybe I'm just blind. Anyway, oopses included, ltp fs just finished its
second run on kernel without radix tree pagecache, and is happy.
anyone interested in viewing "exactly my kernel"
bk://linux-stingr.bkbits.net/unstable - you can clone existing marcelo tree
with clone -rv2.4.19-pre5 then bk pull changes from mine
ksymoops 2.4.5 on i686 2.4.19-pre5-ac3-s42. Options used
-V (default)
-k /proc/ksyms (default)
-l /proc/modules (default)
-o /lib/modules/2.4.19-pre5-ac3-s42/ (default)
-m /boot/System.map (specified)
Warning (compare_maps): ksyms_base symbol vmalloc_to_page_R__ver_vmalloc_to_page not found in System.map. Ignoring ksyms_base entry
cpu: 0, clocks: 664766, slice: 221588
cpu: 1, clocks: 664766, slice: 221588
/dev/scsi/host0/bus0/target2/lun0:<7>LDM: DEBUG (ldm.c, 963): validate_partition_table: No MS-DOS partition found.
/dev/scsi/host0/bus0/target4/lun0:<7>LDM: DEBUG (ldm.c, 963): validate_partition_table: No MS-DOS partition found.
Receiver lock-up bug exists -- enabling work-around.
kernel BUG at inode.c:515!
invalid operand: 0000
CPU: 0
EIP: 0010:[<c015241a>] Not tainted
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010286
eax: c57c08a0 ebx: ffffffff ecx: c57c08c0 edx: c57c08c0
esi: c57c08a0 edi: c13a7000 ebp: c57c08a0 esp: c8227ed8
ds: 0018 es: 0018 ss: 0018
Process growfiles (pid: 8896, stackpage=c8227000)
Stack: c8227efc c13a7000 00000024 c57c090c c57c090c c8227efc c016f362 c57c08a0
c8226000 c023a3a4 00000007 00000024 00002ed9 c13a7000 00000000 c57c08a0
c13a7000 c57c08a0 c016f2b0 c02708a0 cbaa0ec0 c0152ed3 c57c08a0 cbaa0ec0
Call Trace: [<c016f362>] [<c016f2b0>] [<c0152ed3>] [<c01510a6>] [<c01496da>]
[<c014834a>] [<c0149799>] [<c0115ef0>] [<c0108afb>]
Code: 0f 0b 03 02 15 20 24 c0 8b 86 1c 01 00 00 a9 10 00 00 00 75
>>EIP; c015241a <clear_inode+1a/100> <=====
>>eax; c57c08a0 <_end+5494114/c585874>
>>ebx; ffffffff <END_OF_CODE+335dd3e0/????>
>>ecx; c57c08c0 <_end+5494134/c585874>
>>edx; c57c08c0 <_end+5494134/c585874>
>>esi; c57c08a0 <_end+5494114/c585874>
>>edi; c13a7000 <_end+107a874/c585874>
>>ebp; c57c08a0 <_end+5494114/c585874>
>>esp; c8227ed8 <_end+7efb74c/c585874>
Trace; c016f362 <reiserfs_delete_inode+b2/f0>
Trace; c016f2b0 <reiserfs_delete_inode+0/f0>
Trace; c0152ed3 <iput+143/240>
Trace; c01510a6 <d_delete+66/b0>
Trace; c01496da <vfs_unlink+1ba/1f0>
Trace; c014834a <lookup_hash+4a/d0>
Trace; c0149799 <sys_unlink+89/f0>
Trace; c0115ef0 <do_page_fault+0/45b>
Trace; c0108afb <system_call+33/38>
Code; c015241a <clear_inode+1a/100>
00000000 <_EIP>:
Code; c015241a <clear_inode+1a/100> <=====
0: 0f 0b ud2a <=====
Code; c015241c <clear_inode+1c/100>
2: 03 02 add (%edx),%eax
Code; c015241e <clear_inode+1e/100>
4: 15 20 24 c0 8b adc $0x8bc02420,%eax
Code; c0152423 <clear_inode+23/100>
9: 86 1c 01 xchg %bl,(%ecx,%eax,1)
Code; c0152426 <clear_inode+26/100>
c: 00 00 add %al,(%eax)
Code; c0152428 <clear_inode+28/100>
e: a9 10 00 00 00 test $0x10,%eax
Code; c015242d <clear_inode+2d/100>
13: 75 00 jne 15 <_EIP+0x15> c015242f <clear_inode+2f/100>
kernel BUG at inode.c:515!
invalid operand: 0000
CPU: 1
EIP: 0010:[<c015241a>] Not tainted
EFLAGS: 00010286
eax: c157e2c0 ebx: ffffffff ecx: c157e2e0 edx: c157e2e0
esi: c157e2c0 edi: c13a7000 ebp: c157e2c0 esp: c405be88
ds: 0018 es: 0018 ss: 0018
Process gzip (pid: 8901, stackpage=c405b000)
Stack: c405beac c13a7000 00000024 c157e32c c157e32c c405beac c016f362 c157e2c0
c405a000 c023a3a4 00000013 00000024 00002f12 c13a7000 00000000 c157e2c0
c13a7000 c157e2c0 c016f2b0 c02708a0 cbc29240 c0152ed3 c157e2c0 cbc29240
Call Trace: [<c016f362>] [<c016f2b0>] [<c0152ed3>] [<c01505a7>] [<c01504dc>]
[<c013e0ee>] [<c013cbf1>] [<c011d5ad>] [<c011ddbe>] [<c01146ff>] [<c0108afb>]
Code: 0f 0b 03 02 15 20 24 c0 8b 86 1c 01 00 00 a9 10 00 00 00 75
>>EIP; c015241a <clear_inode+1a/100> <=====
>>eax; c157e2c0 <_end+1251b34/c585874>
>>ebx; ffffffff <END_OF_CODE+335dd3e0/????>
>>ecx; c157e2e0 <_end+1251b54/c585874>
>>edx; c157e2e0 <_end+1251b54/c585874>
>>esi; c157e2c0 <_end+1251b34/c585874>
>>edi; c13a7000 <_end+107a874/c585874>
>>ebp; c157e2c0 <_end+1251b34/c585874>
>>esp; c405be88 <_end+3d2f6fc/c585874>
Trace; c016f362 <reiserfs_delete_inode+b2/f0>
Trace; c016f2b0 <reiserfs_delete_inode+0/f0>
Trace; c0152ed3 <iput+143/240>
Trace; c01505a7 <dput+e7/150>
Trace; c01504dc <dput+1c/150>
Trace; c013e0ee <fput+ce/f0>
Trace; c013cbf1 <filp_close+91/a0>
Trace; c011d5ad <put_files_struct+4d/d0>
Trace; c011ddbe <do_exit+11e/250>
Trace; c01146ff <smp_apic_timer_interrupt+ef/120>
Trace; c0108afb <system_call+33/38>
Code; c015241a <clear_inode+1a/100>
00000000 <_EIP>:
Code; c015241a <clear_inode+1a/100> <=====
0: 0f 0b ud2a <=====
Code; c015241c <clear_inode+1c/100>
2: 03 02 add (%edx),%eax
Code; c015241e <clear_inode+1e/100>
4: 15 20 24 c0 8b adc $0x8bc02420,%eax
Code; c0152423 <clear_inode+23/100>
9: 86 1c 01 xchg %bl,(%ecx,%eax,1)
Code; c0152426 <clear_inode+26/100>
c: 00 00 add %al,(%eax)
Code; c0152428 <clear_inode+28/100>
e: a9 10 00 00 00 test $0x10,%eax
Code; c015242d <clear_inode+2d/100>
13: 75 00 jne 15 <_EIP+0x15> c015242f <clear_inode+2f/100>
1 warning issued. Results may not be reliable.
--
Paul P 'Stingray' Komkoff 'Greatest' Jr // (icq)23200764 // (irc)Spacebar
PPKJ1-RIPE // (smtp)i@stingr.net // (http)stingr.net // (pgp)0xA4B4ECA4
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] radix-tree pagecache for 2.4.19-pre5-ac3
2002-04-07 16:44 [PATCH] radix-tree pagecache for 2.4.19-pre5-ac3 Art Haas
@ 2002-04-10 20:59 ` William Lee Irwin III
2002-04-10 20:59 ` William Lee Irwin III
1 sibling, 0 replies; 9+ messages in thread
From: William Lee Irwin III @ 2002-04-10 20:59 UTC (permalink / raw)
To: Art Haas; +Cc: linux-kernel, linux-mm
On Sun, Apr 07, 2002 at 11:44:39AM -0500, Art Haas wrote:
> Once again the patch has been re-diffed for the latest -ac
> kernel. It's running on my machine now. Enjoy!
> I'm interested in hearing back from anyone using this
> patch - I'd like to be sure that it applies cleanly (I
> believe it does), and that the kernel built with the
> patch runs well. The -ac kernels with rmap and the O(1)
> scheduler are working well for me, and I'm hoping that
> this patch adds to those kernels. At some point I'm hoping
> the patch is included in to the -ac patchset, and the
> eventual inclusion into the standard kernel release.
> My thanks to everyone working on the kernel.
Thank you! This has saved me some effort.
Burning question:
What are the hunks changing arch/i386/kernel/setup.c there for?
Also, there appears to be a livelock in add_to_swap(), (yes, this
has killed my boxen dead) something to help with this follows.
(It at least turned up a different problem I'm still working on.)
Cheers,
Bill
diff -urN linux-virgin/mm/swap_state.c linux/mm/swap_state.c
--- linux-virgin/mm/swap_state.c Tue Apr 9 18:50:48 2002
+++ linux/mm/swap_state.c Tue Apr 9 21:28:15 2002
@@ -104,6 +104,7 @@
*/
int add_to_swap(struct page * page)
{
+ int error;
swp_entry_t entry;
if (!PageLocked(page))
@@ -118,11 +119,15 @@
* (adding to the page cache will clear the dirty
* and uptodate bits, so we need to do it again)
*/
- if (add_to_swap_cache(page, entry) == 0) {
+ error = add_to_swap_cache(page, entry);
+ if (!error) {
SetPageUptodate(page);
set_page_dirty(page);
swap_free(entry);
return 1;
+ } else if (error = -ENOMEM) {
+ swap_free(entry);
+ return 0;
}
/* Raced with "speculative" read_swap_cache_async */
swap_free(entry);
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] radix-tree pagecache for 2.4.19-pre5-ac3
@ 2002-04-10 20:59 ` William Lee Irwin III
0 siblings, 0 replies; 9+ messages in thread
From: William Lee Irwin III @ 2002-04-10 20:59 UTC (permalink / raw)
To: Art Haas; +Cc: linux-kernel, linux-mm
On Sun, Apr 07, 2002 at 11:44:39AM -0500, Art Haas wrote:
> Once again the patch has been re-diffed for the latest -ac
> kernel. It's running on my machine now. Enjoy!
> I'm interested in hearing back from anyone using this
> patch - I'd like to be sure that it applies cleanly (I
> believe it does), and that the kernel built with the
> patch runs well. The -ac kernels with rmap and the O(1)
> scheduler are working well for me, and I'm hoping that
> this patch adds to those kernels. At some point I'm hoping
> the patch is included in to the -ac patchset, and the
> eventual inclusion into the standard kernel release.
> My thanks to everyone working on the kernel.
Thank you! This has saved me some effort.
Burning question:
What are the hunks changing arch/i386/kernel/setup.c there for?
Also, there appears to be a livelock in add_to_swap(), (yes, this
has killed my boxen dead) something to help with this follows.
(It at least turned up a different problem I'm still working on.)
Cheers,
Bill
diff -urN linux-virgin/mm/swap_state.c linux/mm/swap_state.c
--- linux-virgin/mm/swap_state.c Tue Apr 9 18:50:48 2002
+++ linux/mm/swap_state.c Tue Apr 9 21:28:15 2002
@@ -104,6 +104,7 @@
*/
int add_to_swap(struct page * page)
{
+ int error;
swp_entry_t entry;
if (!PageLocked(page))
@@ -118,11 +119,15 @@
* (adding to the page cache will clear the dirty
* and uptodate bits, so we need to do it again)
*/
- if (add_to_swap_cache(page, entry) == 0) {
+ error = add_to_swap_cache(page, entry);
+ if (!error) {
SetPageUptodate(page);
set_page_dirty(page);
swap_free(entry);
return 1;
+ } else if (error = -ENOMEM) {
+ swap_free(entry);
+ return 0;
}
/* Raced with "speculative" read_swap_cache_async */
swap_free(entry);
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] radix-tree pagecache for 2.4.19-pre5-ac3
2002-04-10 20:59 ` William Lee Irwin III
(?)
@ 2002-04-10 22:08 ` Art Haas
2002-04-10 22:16 ` William Lee Irwin III
` (2 more replies)
-1 siblings, 3 replies; 9+ messages in thread
From: Art Haas @ 2002-04-10 22:08 UTC (permalink / raw)
To: William Lee Irwin III; +Cc: linux-mm
On Wed, Apr 10, 2002 at 01:59:47PM -0700, William Lee Irwin III wrote:
> On Sun, Apr 07, 2002 at 11:44:39AM -0500, Art Haas wrote:
> [ ... snip ... ]
>
> Thank you! This has saved me some effort.
>
> Burning question:
> What are the hunks changing arch/i386/kernel/setup.c there for?
The initial patch I downloaded had those changes in there. Looking
at them now there doesn't seem to be any reason to include them. Perhaps
they were inadvertently added originally, and I've been continuing
that tradition ...
> Also, there appears to be a livelock in add_to_swap(), (yes, this
> has killed my boxen dead) something to help with this follows.
> (It at least turned up a different problem I'm still working on.)
Sorry to hear that. I haven't had any trouble on my machine, but
it's an old machine (200MHz Pentium), and I run desktop stuff, so
the load the patch is exposed to on this machine must not be enough
to trip things up.
Thanks for the feedback and your additional patch! I have
one question about it though ...
> diff -urN linux-virgin/mm/swap_state.c linux/mm/swap_state.c
> --- linux-virgin/mm/swap_state.c Tue Apr 9 18:50:48 2002
> +++ linux/mm/swap_state.c Tue Apr 9 21:28:15 2002
> @@ -104,6 +104,7 @@
> */
> int add_to_swap(struct page * page)
> {
> + int error;
> swp_entry_t entry;
>
> if (!PageLocked(page))
> @@ -118,11 +119,15 @@
> * (adding to the page cache will clear the dirty
> * and uptodate bits, so we need to do it again)
> */
> - if (add_to_swap_cache(page, entry) == 0) {
> + error = add_to_swap_cache(page, entry);
> + if (!error) {
> SetPageUptodate(page);
> set_page_dirty(page);
> swap_free(entry);
> return 1;
> + } else if (error = -ENOMEM) {
> + swap_free(entry);
> + return 0;
> }
> /* Raced with "speculative" read_swap_cache_async */
> swap_free(entry);
>
Should the new "else" clause be ...
} else if (error == -ENOMEM) {
I think you've dropped an "=". Maybe this is the cause of the
other trouble you were seeing?
I hadn't posted it yet, but I've made a newer version of the
patch that incorporates the latest changes from Christoph Hellwig
and Andrew Morton - the changes of spin_lock() and spin_unlock()
to (read|write)_lock() and (read|write)_unlock, plus a few cosmetic
changes. I'm running a kernel with those changes right now (and things
work for me, but we've seen how that goes ...) . I'll rebuild my kernel
with your fix to the swap_state.c file and see how that kernel
performs. I can cook up a script to repeatedly build something and
let things run for a while. If it works I'll post my modified patch tomorrow.
Thanks again for the feedback!
--
They that can give up essential liberty to obtain a little temporary
safety deserve neither liberty nor safety.
-- Benjamin Franklin, Historical Review of Pennsylvania, 1759
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] radix-tree pagecache for 2.4.19-pre5-ac3
2002-04-10 22:08 ` Art Haas
@ 2002-04-10 22:16 ` William Lee Irwin III
2002-04-10 23:48 ` William Lee Irwin III
2002-04-11 18:39 ` William Lee Irwin III
2 siblings, 0 replies; 9+ messages in thread
From: William Lee Irwin III @ 2002-04-10 22:16 UTC (permalink / raw)
To: Art Haas; +Cc: linux-mm
On Wed, Apr 10, 2002 at 05:08:42PM -0500, Art Haas wrote:
> I think you've dropped an "=". Maybe this is the cause of the
> other trouble you were seeing?
> I hadn't posted it yet, but I've made a newer version of the
> patch that incorporates the latest changes from Christoph Hellwig
> and Andrew Morton - the changes of spin_lock() and spin_unlock()
> to (read|write)_lock() and (read|write)_unlock, plus a few cosmetic
> changes. I'm running a kernel with those changes right now (and things
> work for me, but we've seen how that goes ...) . I'll rebuild my kernel
> with your fix to the swap_state.c file and see how that kernel
> performs. I can cook up a script to repeatedly build something and
> let things run for a while. If it works I'll post my modified patch tomorrow.
> Thanks again for the feedback!
I did, you will need the == sorry.
I've been running Cerberus with this on a logical 8-way machine
(physical 4-way), it seems to hit about 2-5 minutes into the tests.
I'll back out my own changes and see what I turn up.
Cheers,
Bill
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] radix-tree pagecache for 2.4.19-pre5-ac3
2002-04-10 22:08 ` Art Haas
2002-04-10 22:16 ` William Lee Irwin III
@ 2002-04-10 23:48 ` William Lee Irwin III
2002-04-11 18:39 ` William Lee Irwin III
2 siblings, 0 replies; 9+ messages in thread
From: William Lee Irwin III @ 2002-04-10 23:48 UTC (permalink / raw)
To: Art Haas; +Cc: linux-mm
On Wed, Apr 10, 2002 at 05:08:42PM -0500, Art Haas wrote:
> I think you've dropped an "=". Maybe this is the cause of the
> other trouble you were seeing?
I don't believe so. Just a vanilla 2.4.19-pre5-ac3 + your posted patch
+ corrected livelock fix (without it it livelocks instead) oopses at
fs/inode.c:515 within approximately 2 minutes:
510 void clear_inode(struct inode *inode)
511 {
512 invalidate_inode_buffers(inode);
513
514 if (inode->i_data.nrpages)
515 BUG();
516 if (!(inode->i_state & I_FREEING))
517 BUG();
518 if (inode->i_state & I_CLEAR)
519 BUG();
Cheers,
Bill
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] radix-tree pagecache for 2.4.19-pre5-ac3
2002-04-10 22:08 ` Art Haas
2002-04-10 22:16 ` William Lee Irwin III
2002-04-10 23:48 ` William Lee Irwin III
@ 2002-04-11 18:39 ` William Lee Irwin III
2002-04-11 21:47 ` Art Haas
2 siblings, 1 reply; 9+ messages in thread
From: William Lee Irwin III @ 2002-04-11 18:39 UTC (permalink / raw)
To: Art Haas; +Cc: linux-mm
On Wed, Apr 10, 2002 at 05:08:42PM -0500, Art Haas wrote:
> Sorry to hear that. I haven't had any trouble on my machine, but
> it's an old machine (200MHz Pentium), and I run desktop stuff, so
> the load the patch is exposed to on this machine must not be enough
> to trip things up.
> I think you've dropped an "=". Maybe this is the cause of the
> other trouble you were seeing?
No, it appears to be because all pagecache locking was removed from vmscan.c
Acquisitions and releases of pagecache_lock must be converted to the
analogous acquisitions and releases of the mapping->page_lock, with proper
movement of the points it's acquired and released for the per-mapping lock.
Testing with Cerberus on SMP machines helps find these issues.
The following hunks might need a bit more critical examination.
Cheers,
Bill
--- linux-2.4.19-pre5-ac3/mm/vmscan.c.ajh 2002-04-06 15:33:00.000000000 -0600
+++ linux-2.4.19-pre5-ac3/mm/vmscan.c 2002-04-06 15:33:45.000000000 -0600
@@ -84,11 +84,10 @@
int maxscan;
/*
- * We need to hold the pagecache_lock around all tests to make sure
- * reclaim_page() cannot race with find_get_page() and friends.
+ * The pagecache_lock was removed with the addition of
+ * the radix-tree patch.
*/
spin_lock(&pagemap_lru_lock);
- spin_lock(&pagecache_lock);
maxscan = zone->inactive_clean_pages;
while (maxscan-- && !list_empty(&zone->inactive_clean_list)) {
page_lru = zone->inactive_clean_list.prev;
@@ -136,13 +135,11 @@
zone->inactive_clean_pages--;
UnlockPage(page);
}
- spin_unlock(&pagecache_lock);
spin_unlock(&pagemap_lru_lock);
return NULL;
found_page:
del_page_from_inactive_clean_list(page);
- spin_unlock(&pagecache_lock);
spin_unlock(&pagemap_lru_lock);
if (entry.val)
swap_free(entry);
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] radix-tree pagecache for 2.4.19-pre5-ac3
2002-04-11 18:39 ` William Lee Irwin III
@ 2002-04-11 21:47 ` Art Haas
0 siblings, 0 replies; 9+ messages in thread
From: Art Haas @ 2002-04-11 21:47 UTC (permalink / raw)
To: William Lee Irwin III; +Cc: linux-mm
On Thu, Apr 11, 2002 at 11:39:59AM -0700, William Lee Irwin III wrote:
> On Wed, Apr 10, 2002 at 05:08:42PM -0500, Art Haas wrote:
> > Sorry to hear that. I haven't had any trouble on my machine, but
> > it's an old machine (200MHz Pentium), and I run desktop stuff, so
> > the load the patch is exposed to on this machine must not be enough
> > to trip things up.
> > I think you've dropped an "=". Maybe this is the cause of the
> > other trouble you were seeing?
>
> No, it appears to be because all pagecache locking was removed from vmscan.c
> Acquisitions and releases of pagecache_lock must be converted to the
> analogous acquisitions and releases of the mapping->page_lock, with proper
> movement of the points it's acquired and released for the per-mapping lock.
> Testing with Cerberus on SMP machines helps find these issues.
>
> The following hunks might need a bit more critical examination.
>
> [ ... snip part of patch ... ]
I'll take any and all blame for the changes in vmscan.c that cause
problems. I'm running on a machine with a single processor, and don't
have access to an SMP machine to test things on, so problems
arising on such machines would likely slip past me. :-(
I did go download Cerberus today, and started looking at what it
does, how to run it, etc.
I'll go dig into vmscan.c again. Thank you for your continued
efforts on reviewing and fixing the radix-tree patch.
--
They that can give up essential liberty to obtain a little temporary
safety deserve neither liberty nor safety.
-- Benjamin Franklin, Historical Review of Pennsylvania, 1759
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2002-04-11 21:47 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-04-07 16:44 [PATCH] radix-tree pagecache for 2.4.19-pre5-ac3 Art Haas
2002-04-09 16:29 ` Paul P Komkoff Jr
2002-04-10 20:59 ` William Lee Irwin III
2002-04-10 20:59 ` William Lee Irwin III
2002-04-10 22:08 ` Art Haas
2002-04-10 22:16 ` William Lee Irwin III
2002-04-10 23:48 ` William Lee Irwin III
2002-04-11 18:39 ` William Lee Irwin III
2002-04-11 21:47 ` Art Haas
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.