Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Official thread: "zen-sources" - Part IV
View unanswered posts
View posts from last 24 hours

Goto page Previous  1, 2, 3, 4, 5, 6 ... 15, 16, 17  Next  
Reply to topic    Gentoo Forums Forum Index Unsupported Software
View previous topic :: View next topic  
Author Message
rmh3093
Advocate
Advocate


Joined: 06 Aug 2003
Posts: 2138
Location: Albany, NY

PostPosted: Fri Jun 20, 2008 10:28 pm    Post subject: Reply with quote

2.6.26-rc6-zen2 is tagged in the repo now (it does not contain lockless) and has updated reiser4 patches the nr_tty patch (for configuring the number of pseudo ttys the kernel makes, its pretty much for cleaning up /dev)... a source snapshot and ebuild will be created when someone gets motivated to do so
_________________
Do not meddle in the affairs of wizards, for they are subtle and quick to anger.
Back to top
View user's profile Send private message
tranquilcool
Veteran
Veteran


Joined: 25 Mar 2005
Posts: 1159

PostPosted: Sat Jun 21, 2008 4:48 am    Post subject: Reply with quote

the mousepoll errors have come back.
i think you should revert the patch as you did in zen1


sysctl table check failed: /fs/hid_mousepoll_interval .5.77 Unknown sysctl binary path
Pid: 1, comm: swapper Not tainted 2.6.26-rc6-zen2 #42
[<80139007>] set_fail+0x45/0x47
[<80139363>] sysctl_check_table+0x35a/0x697
[<801291f2>] sysctl_head_finish+0x11/0x37
[<8013937f>] sysctl_check_table+0x376/0x697
[<8056716c>] sysctl_init+0x22/0x25
[<8055627a>] kernel_init+0x184/0x291
[<80185e7c>] sys_select+0xe4/0x1b8
[<8056714a>] sysctl_init+0x0/0x25
[<8011e942>] finish_task_switch+0x1f/0x7a
[<8011fc64>] schedule_tail+0x17/0x45
[<80102f56>] ret_from_fork+0x6/0x1c
[<805560f6>] kernel_init+0x0/0x291
[<805560f6>] kernel_init+0x0/0x291
[<80103c73>] kernel_thread_helper+0x7/0x14
=======================
_________________
this is a strange strange world.
Back to top
View user's profile Send private message
rmh3093
Advocate
Advocate


Joined: 06 Aug 2003
Posts: 2138
Location: Albany, NY

PostPosted: Sat Jun 21, 2008 1:20 pm    Post subject: Reply with quote

tranquilcool wrote:
the mousepoll errors have come back.
i think you should revert the patch as you did in zen1


sysctl table check failed: /fs/hid_mousepoll_interval .5.77 Unknown sysctl binary path
Pid: 1, comm: swapper Not tainted 2.6.26-rc6-zen2 #42
[<80139007>] set_fail+0x45/0x47
[<80139363>] sysctl_check_table+0x35a/0x697
[<801291f2>] sysctl_head_finish+0x11/0x37
[<8013937f>] sysctl_check_table+0x376/0x697
[<8056716c>] sysctl_init+0x22/0x25
[<8055627a>] kernel_init+0x184/0x291
[<80185e7c>] sys_select+0xe4/0x1b8
[<8056714a>] sysctl_init+0x0/0x25
[<8011e942>] finish_task_switch+0x1f/0x7a
[<8011fc64>] schedule_tail+0x17/0x45
[<80102f56>] ret_from_fork+0x6/0x1c
[<805560f6>] kernel_init+0x0/0x291
[<805560f6>] kernel_init+0x0/0x291
[<80103c73>] kernel_thread_helper+0x7/0x14
=======================


i dont think it was reverted, or it was and cheater's patch got applied and it has the same issue... it will be gone
_________________
Do not meddle in the affairs of wizards, for they are subtle and quick to anger.
Back to top
View user's profile Send private message
tranquilcool
Veteran
Veteran


Joined: 25 Mar 2005
Posts: 1159

PostPosted: Sat Jun 21, 2008 3:27 pm    Post subject: Reply with quote

CC fs/reiser4/jnode.o
fs/reiser4/jnode.c: In function ‘inode_attach_jnode’:
fs/reiser4/jnode.c:437: error: ‘struct address_space’ has no member named ‘tree_lock’
fs/reiser4/jnode.c:438: error: incompatible type for argument 1 of ‘mapping_nrpages_inc’
fs/reiser4/jnode.c:438: error: invalid use of void expression
fs/reiser4/jnode.c:439: error: ‘struct address_space’ has no member named ‘tree_lock’
fs/reiser4/jnode.c: In function ‘inode_detach_jnode’:
fs/reiser4/jnode.c:467: error: ‘struct address_space’ has no member named ‘tree_lock’
fs/reiser4/jnode.c:468: error: incompatible type for argument 1 of ‘mapping_nrpages_dec’
fs/reiser4/jnode.c:469: error: ‘struct address_space’ has no member named ‘tree_lock’
make[2]: *** [fs/reiser4/jnode.o] Error 1
make[1]: *** [fs/reiser4] Error 2
make: *** [fs] Error 2

CC [M] fs/btrfs/inode.o
fs/btrfs/inode.c: In function ‘btrfs_destroy_inode’:
fs/btrfs/inode.c:3353: error: ‘struct address_space’ has no member named ‘nrpages’
make[2]: *** [fs/btrfs/inode.o] Error 1
make[1]: *** [fs/btrfs] Error 2
make: *** [fs] Error 2


reiser4 and btrfs don't compile with latest git pull.
_________________
this is a strange strange world.
Back to top
View user's profile Send private message
rmh3093
Advocate
Advocate


Joined: 06 Aug 2003
Posts: 2138
Location: Albany, NY

PostPosted: Sat Jun 21, 2008 3:43 pm    Post subject: Reply with quote

tranquilcool wrote:
CC fs/reiser4/jnode.o
fs/reiser4/jnode.c: In function ‘inode_attach_jnode’:
fs/reiser4/jnode.c:437: error: ‘struct address_space’ has no member named ‘tree_lock’
fs/reiser4/jnode.c:438: error: incompatible type for argument 1 of ‘mapping_nrpages_inc’
fs/reiser4/jnode.c:438: error: invalid use of void expression
fs/reiser4/jnode.c:439: error: ‘struct address_space’ has no member named ‘tree_lock’
fs/reiser4/jnode.c: In function ‘inode_detach_jnode’:
fs/reiser4/jnode.c:467: error: ‘struct address_space’ has no member named ‘tree_lock’
fs/reiser4/jnode.c:468: error: incompatible type for argument 1 of ‘mapping_nrpages_dec’
fs/reiser4/jnode.c:469: error: ‘struct address_space’ has no member named ‘tree_lock’
make[2]: *** [fs/reiser4/jnode.o] Error 1
make[1]: *** [fs/reiser4] Error 2
make: *** [fs] Error 2

CC [M] fs/btrfs/inode.o
fs/btrfs/inode.c: In function ‘btrfs_destroy_inode’:
fs/btrfs/inode.c:3353: error: ‘struct address_space’ has no member named ‘nrpages’
make[2]: *** [fs/btrfs/inode.o] Error 1
make[1]: *** [fs/btrfs] Error 2
make: *** [fs] Error 2


reiser4 and btrfs don't compile with latest git pull.


People should look at gitweb before pulling ;).... testing out lockless/concurrent pagecache shit right now
_________________
Do not meddle in the affairs of wizards, for they are subtle and quick to anger.
Back to top
View user's profile Send private message
kernelOfTruth
Watchman
Watchman


Joined: 20 Dec 2005
Posts: 6108
Location: Vienna, Austria; Germany; hello world :)

PostPosted: Sat Jun 21, 2008 4:38 pm    Post subject: Reply with quote

reiser4 + concurrent pagecache ?

thanks :D

I'm going to test this after openoffice has finished compiling successfully ...
_________________
https://github.com/kernelOfTruth/ZFS-for-SystemRescueCD/tree/ZFS-for-SysRescCD-4.9.0
https://github.com/kernelOfTruth/pulseaudio-equalizer-ladspa

Hardcore Gentoo Linux user since 2004 :D
Back to top
View user's profile Send private message
dodo1122
Guru
Guru


Joined: 02 Sep 2006
Posts: 347
Location: York, England

PostPosted: Sat Jun 21, 2008 8:15 pm    Post subject: Reply with quote

KernelOfTruth, could you please test latest zen? I fixed reiser4 ( and btrfs btw) to work with lockless and concurrent pagecache, and it works here, but we need more testing...

dodo
_________________
#zen-sources on irc.rizon.net
Back to top
View user's profile Send private message
rmh3093
Advocate
Advocate


Joined: 06 Aug 2003
Posts: 2138
Location: Albany, NY

PostPosted: Sat Jun 21, 2008 8:32 pm    Post subject: Reply with quote

dodo1122 wrote:
KernelOfTruth, could you please test latest zen? I fixed reiser4 ( and btrfs btw) to work with lockless and concurrent pagecache, and it works here, but we need more testing...

dodo


FYI, before when I asked you all to test lockless, I failed to mention that it was not pure lockless, it was lockless + speculative-page-references..... I removed speculative-page-references since I thought that is what was causing the problems and since removing that there have been no hardlocks
_________________
Do not meddle in the affairs of wizards, for they are subtle and quick to anger.
Back to top
View user's profile Send private message
kernelOfTruth
Watchman
Watchman


Joined: 20 Dec 2005
Posts: 6108
Location: Vienna, Austria; Germany; hello world :)

PostPosted: Sat Jun 21, 2008 8:43 pm    Post subject: Reply with quote

dodo1122 wrote:
KernelOfTruth, could you please test latest zen? I fixed reiser4 ( and btrfs btw) to work with lockless and concurrent pagecache, and it works here, but we need more testing...

dodo


sure, I'll safe my system (upgrade to gcc-4.3.1 has finally finished ! :P ), then I'll give it a test-run :idea:

rmh3093 wrote:
dodo1122 wrote:
KernelOfTruth, could you please test latest zen? I fixed reiser4 ( and btrfs btw) to work with lockless and concurrent pagecache, and it works here, but we need more testing...

dodo


FYI, before when I asked you all to test lockless, I failed to mention that it was not pure lockless, it was lockless + speculative-page-references..... I removed speculative-page-references since I thought that is what was causing the problems and since removing that there have been no hardlocks


so that's the reason it was working fine for me on the .25-zen* kernels :o

what does speculative-page-references actually do ? some kind of "prefetch" mechanism ?

thanks
_________________
https://github.com/kernelOfTruth/ZFS-for-SystemRescueCD/tree/ZFS-for-SysRescCD-4.9.0
https://github.com/kernelOfTruth/pulseaudio-equalizer-ladspa

Hardcore Gentoo Linux user since 2004 :D
Back to top
View user's profile Send private message
kernelOfTruth
Watchman
Watchman


Joined: 20 Dec 2005
Posts: 6108
Location: Vienna, Austria; Germany; hello world :)

PostPosted: Sat Jun 21, 2008 9:54 pm    Post subject: Reply with quote

you guys know why there's no /proc/slabinfo when using SLUB ?

it used to be there in earlier releases :?

or do I simply need to enable: CONFIG_SLUB_DEBUG

thanks
_________________
https://github.com/kernelOfTruth/ZFS-for-SystemRescueCD/tree/ZFS-for-SysRescCD-4.9.0
https://github.com/kernelOfTruth/pulseaudio-equalizer-ladspa

Hardcore Gentoo Linux user since 2004 :D
Back to top
View user's profile Send private message
kernelOfTruth
Watchman
Watchman


Joined: 20 Dec 2005
Posts: 6108
Location: Vienna, Austria; Germany; hello world :)

PostPosted: Sun Jun 22, 2008 12:12 am    Post subject: Reply with quote

I experienced nearly hardlocks & hardlocks (most probably on reiser4)

I see you reverted spinlock to writelock so it's currently @spin_lock and spin_unlock (ideally it should be fine but it's not)

so I don't know what's the cause for those lockups

they occured during rsync heavy i/o-operations, it seems like caches are overflowing (you still remember the problem with 2.6.25-zen0 to 2.6.25-zen1 upgrade it seems to be the exactly same behavior, don't know what happens "under the hood", though)

I'm back to 2.6.26-rc6-zen2,
I unfortunately don't have time to further investigate, leave lockless pagecache out if that's fine for you ...

dunno if it's lockless pagecache or concurrent pagecache causing those hardlocks

good night & thanks ;)

here the differences from 2.6.25-zen0_test (working) to 2.6.25-zen1_preview3 (non-working / hardlocking) [just for references]:

Code:
diff -Nrcpad linux-2.6.25-zen0_test/fs/reiser4/as_ops.c linux-2.6.25-zen1_preview3/fs/reiser4/as_ops.c
*** linux-2.6.25-zen0_test/fs/reiser4/as_ops.c   2008-05-03 00:30:00.382157467 +0200
--- linux-2.6.25-zen1_preview3/fs/reiser4/as_ops.c   2008-05-03 00:34:04.711363347 +0200
*************** int reiser4_set_page_dirty(struct page *
*** 77,83 ****
        struct address_space *mapping = page->mapping;
 
        if (mapping) {
!          spin_lock_irq(&mapping->tree_lock);
 
           /* check for race with truncate */
           if (page->mapping) {
--- 77,83 ----
        struct address_space *mapping = page->mapping;
 
        if (mapping) {
!          write_lock_irq(&mapping->tree_lock);
 
           /* check for race with truncate */
           if (page->mapping) {
*************** int reiser4_set_page_dirty(struct page *
*** 89,95 ****
                       page->index,
                       PAGECACHE_TAG_REISER4_MOVED);
           }
!          spin_unlock_irq(&mapping->tree_lock);
           __mark_inode_dirty(mapping->host, I_DIRTY_PAGES);
        }
     }
--- 89,95 ----
                       page->index,
                       PAGECACHE_TAG_REISER4_MOVED);
           }
!          write_unlock_irq(&mapping->tree_lock);
           __mark_inode_dirty(mapping->host, I_DIRTY_PAGES);
        }
     }
diff -Nrcpad linux-2.6.25-zen0_test/fs/reiser4/plugin/file/cryptcompress.c linux-2.6.25-zen1_preview3/fs/reiser4/plugin/file/cryptcompress.c
*** linux-2.6.25-zen0_test/fs/reiser4/plugin/file/cryptcompress.c   2008-05-03 00:30:00.284965444 +0200
--- linux-2.6.25-zen1_preview3/fs/reiser4/plugin/file/cryptcompress.c   2008-05-03 00:34:04.615866844 +0200
*************** static int find_anon_page_cluster(struct
*** 3438,3444 ****
  {
     int i = 0;
     int found;
!    spin_lock_irq(&mapping->tree_lock);
     do {
        /* looking for one page */
        found = radix_tree_gang_lookup_tag(&mapping->page_tree,
--- 3438,3444 ----
  {
     int i = 0;
     int found;
!    write_lock_irq(&mapping->tree_lock);
     do {
        /* looking for one page */
        found = radix_tree_gang_lookup_tag(&mapping->page_tree,
*************** static int find_anon_page_cluster(struct
*** 3460,3466 ****
        if (last_page_in_cluster(pages[i++]))
           break;
     } while (1);
!    spin_unlock_irq(&mapping->tree_lock);
     return i;
  }
 
--- 3460,3466 ----
        if (last_page_in_cluster(pages[i++]))
           break;
     } while (1);
!    write_unlock_irq(&mapping->tree_lock);
     return i;
  }
 
*************** static int capture_anon_pages(struct add
*** 3535,3544 ****
  static int cryptcompress_inode_has_anon_pages(struct inode *inode)
  {
     int result;
!    spin_lock_irq(&inode->i_mapping->tree_lock);
     result = radix_tree_tagged(&inode->i_mapping->page_tree,
                 PAGECACHE_TAG_REISER4_MOVED);
!    spin_unlock_irq(&inode->i_mapping->tree_lock);
     return result;
  }
 
--- 3535,3544 ----
  static int cryptcompress_inode_has_anon_pages(struct inode *inode)
  {
     int result;
!    read_lock_irq(&inode->i_mapping->tree_lock);
     result = radix_tree_tagged(&inode->i_mapping->page_tree,
                 PAGECACHE_TAG_REISER4_MOVED);
!    read_unlock_irq(&inode->i_mapping->tree_lock);
     return result;
  }
 
diff -Nrcpad linux-2.6.25-zen0_test/fs/reiser4/plugin/file/file.c linux-2.6.25-zen1_preview3/fs/reiser4/plugin/file/file.c
*** linux-2.6.25-zen0_test/fs/reiser4/plugin/file/file.c   2008-05-03 00:30:00.287219501 +0200
--- linux-2.6.25-zen1_preview3/fs/reiser4/plugin/file/file.c   2008-05-03 00:34:04.620516798 +0200
*************** static int has_anonymous_pages(struct in
*** 848,856 ****
  {
     int result;
 
!    spin_lock_irq(&inode->i_mapping->tree_lock);
     result = radix_tree_tagged(&inode->i_mapping->page_tree, PAGECACHE_TAG_REISER4_MOVED);
!    spin_unlock_irq(&inode->i_mapping->tree_lock);
     return result;
  }
 
--- 848,856 ----
  {
     int result;
 
!    read_lock_irq(&inode->i_mapping->tree_lock);
     result = radix_tree_tagged(&inode->i_mapping->page_tree, PAGECACHE_TAG_REISER4_MOVED);
!    read_unlock_irq(&inode->i_mapping->tree_lock);
     return result;
  }
 
*************** capture_anonymous_pages(struct address_s
*** 994,1000 ****
     nr = 0;
 
     /* find pages tagged MOVED */
!    spin_lock_irq(&mapping->tree_lock);
     pvec.nr = radix_tree_gang_lookup_tag(&mapping->page_tree,
                      (void **)pvec.pages, *index, count,
                      PAGECACHE_TAG_REISER4_MOVED);
--- 994,1000 ----
     nr = 0;
 
     /* find pages tagged MOVED */
!    write_lock_irq(&mapping->tree_lock);
     pvec.nr = radix_tree_gang_lookup_tag(&mapping->page_tree,
                      (void **)pvec.pages, *index, count,
                      PAGECACHE_TAG_REISER4_MOVED);
*************** capture_anonymous_pages(struct address_s
*** 1003,1009 ****
         * there are no pages tagged MOVED in mapping->page_tree
         * starting from *index
         */
!       spin_unlock_irq(&mapping->tree_lock);
        *index = (pgoff_t)-1;
        return 0;
     }
--- 1003,1009 ----
         * there are no pages tagged MOVED in mapping->page_tree
         * starting from *index
         */
!       write_unlock_irq(&mapping->tree_lock);
        *index = (pgoff_t)-1;
        return 0;
     }
*************** capture_anonymous_pages(struct address_s
*** 1014,1020 ****
        radix_tree_tag_clear(&mapping->page_tree, pvec.pages[i]->index,
                   PAGECACHE_TAG_REISER4_MOVED);
     }
!    spin_unlock_irq(&mapping->tree_lock);
 
 
     *index = pvec.pages[i - 1]->index + 1;
--- 1014,1020 ----
        radix_tree_tag_clear(&mapping->page_tree, pvec.pages[i]->index,
                   PAGECACHE_TAG_REISER4_MOVED);
     }
!    write_unlock_irq(&mapping->tree_lock);
 
 
     *index = pvec.pages[i - 1]->index + 1;
*************** capture_anonymous_pages(struct address_s
*** 1039,1051 ****
               * set MOVED tag to all pages which left not
               * captured
               */
!             spin_lock_irq(&mapping->tree_lock);
              for (; i < pagevec_count(&pvec); i ++) {
                 radix_tree_tag_set(&mapping->page_tree,
                          pvec.pages[i]->index,
                          PAGECACHE_TAG_REISER4_MOVED);
              }
!             spin_unlock_irq(&mapping->tree_lock);
 
              pagevec_release(&pvec);
              return result;
--- 1039,1051 ----
               * set MOVED tag to all pages which left not
               * captured
               */
!             write_lock_irq(&mapping->tree_lock);
              for (; i < pagevec_count(&pvec); i ++) {
                 radix_tree_tag_set(&mapping->page_tree,
                          pvec.pages[i]->index,
                          PAGECACHE_TAG_REISER4_MOVED);
              }
!             write_unlock_irq(&mapping->tree_lock);
 
              pagevec_release(&pvec);
              return result;
*************** capture_anonymous_pages(struct address_s
*** 1055,1065 ****
               * 0 for Writeback-ed page. Set MOVED tag on
               * that page
               */
!             spin_lock_irq(&mapping->tree_lock);
              radix_tree_tag_set(&mapping->page_tree,
                       pvec.pages[i]->index,
                       PAGECACHE_TAG_REISER4_MOVED);
!             spin_unlock_irq(&mapping->tree_lock);
              if (i == 0)
                 *index = pvec.pages[0]->index;
              else
--- 1055,1065 ----
               * 0 for Writeback-ed page. Set MOVED tag on
               * that page
               */
!             write_lock_irq(&mapping->tree_lock);
              radix_tree_tag_set(&mapping->page_tree,
                       pvec.pages[i]->index,
                       PAGECACHE_TAG_REISER4_MOVED);
!             write_unlock_irq(&mapping->tree_lock);
              if (i == 0)
                 *index = pvec.pages[0]->index;
              else
*************** static int sync_page_list(struct inode *
*** 1135,1141 ****
     mapping = inode->i_mapping;
     from = 0;
     result = 0;
!    spin_lock_irq(&mapping->tree_lock);
     while (result == 0) {
        struct page *page;
 
--- 1135,1141 ----
     mapping = inode->i_mapping;
     from = 0;
     result = 0;
!    read_lock_irq(&mapping->tree_lock);
     while (result == 0) {
        struct page *page;
 
*************** static int sync_page_list(struct inode *
*** 1150,1166 ****
         * truncating by inode->i_mutex locked by sys_fsync
         */
        page_cache_get(page);
!       spin_unlock_irq(&mapping->tree_lock);
 
        from = page->index + 1;
 
        result = sync_page(page);
 
        page_cache_release(page);
!       spin_lock_irq(&mapping->tree_lock);
     }
 
!    spin_unlock_irq(&mapping->tree_lock);
     return result;
  }
 
--- 1150,1166 ----
         * truncating by inode->i_mutex locked by sys_fsync
         */
        page_cache_get(page);
!       read_unlock_irq(&mapping->tree_lock);
 
        from = page->index + 1;
 
        result = sync_page(page);
 
        page_cache_release(page);
!       read_lock_irq(&mapping->tree_lock);
     }
 
!    read_unlock_irq(&mapping->tree_lock);
     return result;
  }
 

_________________
https://github.com/kernelOfTruth/ZFS-for-SystemRescueCD/tree/ZFS-for-SysRescCD-4.9.0
https://github.com/kernelOfTruth/pulseaudio-equalizer-ladspa

Hardcore Gentoo Linux user since 2004 :D
Back to top
View user's profile Send private message
rmh3093
Advocate
Advocate


Joined: 06 Aug 2003
Posts: 2138
Location: Albany, NY

PostPosted: Sun Jun 22, 2008 12:44 am    Post subject: Reply with quote

kernelOfTruth wrote:
I experienced nearly hardlocks & hardlocks (most probably on reiser4)

I see you reverted spinlock to writelock so it's currently @spin_lock and spin_unlock (ideally it should be fine but it's not)

so I don't know what's the cause for those lockups

they occured during rsync heavy i/o-operations, it seems like caches are overflowing (you still remember the problem with 2.6.25-zen0 to 2.6.25-zen1 upgrade it seems to be the exactly same behavior, don't know what happens "under the hood", though)

I'm back to 2.6.26-rc6-zen2,
I unfortunately don't have time to further investigate, leave lockless pagecache out if that's fine for you ...

dunno if it's lockless pagecache or concurrent pagecache causing those hardlocks

good night & thanks ;)

here the differences from 2.6.25-zen0_test (working) to 2.6.25-zen1_preview3 (non-working / hardlocking) [just for references]:

Code:
diff -Nrcpad linux-2.6.25-zen0_test/fs/reiser4/as_ops.c linux-2.6.25-zen1_preview3/fs/reiser4/as_ops.c
*** linux-2.6.25-zen0_test/fs/reiser4/as_ops.c   2008-05-03 00:30:00.382157467 +0200
--- linux-2.6.25-zen1_preview3/fs/reiser4/as_ops.c   2008-05-03 00:34:04.711363347 +0200
*************** int reiser4_set_page_dirty(struct page *
*** 77,83 ****
        struct address_space *mapping = page->mapping;
 
        if (mapping) {
!          spin_lock_irq(&mapping->tree_lock);
 
           /* check for race with truncate */
           if (page->mapping) {
--- 77,83 ----
        struct address_space *mapping = page->mapping;
 
        if (mapping) {
!          write_lock_irq(&mapping->tree_lock);
 
           /* check for race with truncate */
           if (page->mapping) {
*************** int reiser4_set_page_dirty(struct page *
*** 89,95 ****
                       page->index,
                       PAGECACHE_TAG_REISER4_MOVED);
           }
!          spin_unlock_irq(&mapping->tree_lock);
           __mark_inode_dirty(mapping->host, I_DIRTY_PAGES);
        }
     }
--- 89,95 ----
                       page->index,
                       PAGECACHE_TAG_REISER4_MOVED);
           }
!          write_unlock_irq(&mapping->tree_lock);
           __mark_inode_dirty(mapping->host, I_DIRTY_PAGES);
        }
     }
diff -Nrcpad linux-2.6.25-zen0_test/fs/reiser4/plugin/file/cryptcompress.c linux-2.6.25-zen1_preview3/fs/reiser4/plugin/file/cryptcompress.c
*** linux-2.6.25-zen0_test/fs/reiser4/plugin/file/cryptcompress.c   2008-05-03 00:30:00.284965444 +0200
--- linux-2.6.25-zen1_preview3/fs/reiser4/plugin/file/cryptcompress.c   2008-05-03 00:34:04.615866844 +0200
*************** static int find_anon_page_cluster(struct
*** 3438,3444 ****
  {
     int i = 0;
     int found;
!    spin_lock_irq(&mapping->tree_lock);
     do {
        /* looking for one page */
        found = radix_tree_gang_lookup_tag(&mapping->page_tree,
--- 3438,3444 ----
  {
     int i = 0;
     int found;
!    write_lock_irq(&mapping->tree_lock);
     do {
        /* looking for one page */
        found = radix_tree_gang_lookup_tag(&mapping->page_tree,
*************** static int find_anon_page_cluster(struct
*** 3460,3466 ****
        if (last_page_in_cluster(pages[i++]))
           break;
     } while (1);
!    spin_unlock_irq(&mapping->tree_lock);
     return i;
  }
 
--- 3460,3466 ----
        if (last_page_in_cluster(pages[i++]))
           break;
     } while (1);
!    write_unlock_irq(&mapping->tree_lock);
     return i;
  }
 
*************** static int capture_anon_pages(struct add
*** 3535,3544 ****
  static int cryptcompress_inode_has_anon_pages(struct inode *inode)
  {
     int result;
!    spin_lock_irq(&inode->i_mapping->tree_lock);
     result = radix_tree_tagged(&inode->i_mapping->page_tree,
                 PAGECACHE_TAG_REISER4_MOVED);
!    spin_unlock_irq(&inode->i_mapping->tree_lock);
     return result;
  }
 
--- 3535,3544 ----
  static int cryptcompress_inode_has_anon_pages(struct inode *inode)
  {
     int result;
!    read_lock_irq(&inode->i_mapping->tree_lock);
     result = radix_tree_tagged(&inode->i_mapping->page_tree,
                 PAGECACHE_TAG_REISER4_MOVED);
!    read_unlock_irq(&inode->i_mapping->tree_lock);
     return result;
  }
 
diff -Nrcpad linux-2.6.25-zen0_test/fs/reiser4/plugin/file/file.c linux-2.6.25-zen1_preview3/fs/reiser4/plugin/file/file.c
*** linux-2.6.25-zen0_test/fs/reiser4/plugin/file/file.c   2008-05-03 00:30:00.287219501 +0200
--- linux-2.6.25-zen1_preview3/fs/reiser4/plugin/file/file.c   2008-05-03 00:34:04.620516798 +0200
*************** static int has_anonymous_pages(struct in
*** 848,856 ****
  {
     int result;
 
!    spin_lock_irq(&inode->i_mapping->tree_lock);
     result = radix_tree_tagged(&inode->i_mapping->page_tree, PAGECACHE_TAG_REISER4_MOVED);
!    spin_unlock_irq(&inode->i_mapping->tree_lock);
     return result;
  }
 
--- 848,856 ----
  {
     int result;
 
!    read_lock_irq(&inode->i_mapping->tree_lock);
     result = radix_tree_tagged(&inode->i_mapping->page_tree, PAGECACHE_TAG_REISER4_MOVED);
!    read_unlock_irq(&inode->i_mapping->tree_lock);
     return result;
  }
 
*************** capture_anonymous_pages(struct address_s
*** 994,1000 ****
     nr = 0;
 
     /* find pages tagged MOVED */
!    spin_lock_irq(&mapping->tree_lock);
     pvec.nr = radix_tree_gang_lookup_tag(&mapping->page_tree,
                      (void **)pvec.pages, *index, count,
                      PAGECACHE_TAG_REISER4_MOVED);
--- 994,1000 ----
     nr = 0;
 
     /* find pages tagged MOVED */
!    write_lock_irq(&mapping->tree_lock);
     pvec.nr = radix_tree_gang_lookup_tag(&mapping->page_tree,
                      (void **)pvec.pages, *index, count,
                      PAGECACHE_TAG_REISER4_MOVED);
*************** capture_anonymous_pages(struct address_s
*** 1003,1009 ****
         * there are no pages tagged MOVED in mapping->page_tree
         * starting from *index
         */
!       spin_unlock_irq(&mapping->tree_lock);
        *index = (pgoff_t)-1;
        return 0;
     }
--- 1003,1009 ----
         * there are no pages tagged MOVED in mapping->page_tree
         * starting from *index
         */
!       write_unlock_irq(&mapping->tree_lock);
        *index = (pgoff_t)-1;
        return 0;
     }
*************** capture_anonymous_pages(struct address_s
*** 1014,1020 ****
        radix_tree_tag_clear(&mapping->page_tree, pvec.pages[i]->index,
                   PAGECACHE_TAG_REISER4_MOVED);
     }
!    spin_unlock_irq(&mapping->tree_lock);
 
 
     *index = pvec.pages[i - 1]->index + 1;
--- 1014,1020 ----
        radix_tree_tag_clear(&mapping->page_tree, pvec.pages[i]->index,
                   PAGECACHE_TAG_REISER4_MOVED);
     }
!    write_unlock_irq(&mapping->tree_lock);
 
 
     *index = pvec.pages[i - 1]->index + 1;
*************** capture_anonymous_pages(struct address_s
*** 1039,1051 ****
               * set MOVED tag to all pages which left not
               * captured
               */
!             spin_lock_irq(&mapping->tree_lock);
              for (; i < pagevec_count(&pvec); i ++) {
                 radix_tree_tag_set(&mapping->page_tree,
                          pvec.pages[i]->index,
                          PAGECACHE_TAG_REISER4_MOVED);
              }
!             spin_unlock_irq(&mapping->tree_lock);
 
              pagevec_release(&pvec);
              return result;
--- 1039,1051 ----
               * set MOVED tag to all pages which left not
               * captured
               */
!             write_lock_irq(&mapping->tree_lock);
              for (; i < pagevec_count(&pvec); i ++) {
                 radix_tree_tag_set(&mapping->page_tree,
                          pvec.pages[i]->index,
                          PAGECACHE_TAG_REISER4_MOVED);
              }
!             write_unlock_irq(&mapping->tree_lock);
 
              pagevec_release(&pvec);
              return result;
*************** capture_anonymous_pages(struct address_s
*** 1055,1065 ****
               * 0 for Writeback-ed page. Set MOVED tag on
               * that page
               */
!             spin_lock_irq(&mapping->tree_lock);
              radix_tree_tag_set(&mapping->page_tree,
                       pvec.pages[i]->index,
                       PAGECACHE_TAG_REISER4_MOVED);
!             spin_unlock_irq(&mapping->tree_lock);
              if (i == 0)
                 *index = pvec.pages[0]->index;
              else
--- 1055,1065 ----
               * 0 for Writeback-ed page. Set MOVED tag on
               * that page
               */
!             write_lock_irq(&mapping->tree_lock);
              radix_tree_tag_set(&mapping->page_tree,
                       pvec.pages[i]->index,
                       PAGECACHE_TAG_REISER4_MOVED);
!             write_unlock_irq(&mapping->tree_lock);
              if (i == 0)
                 *index = pvec.pages[0]->index;
              else
*************** static int sync_page_list(struct inode *
*** 1135,1141 ****
     mapping = inode->i_mapping;
     from = 0;
     result = 0;
!    spin_lock_irq(&mapping->tree_lock);
     while (result == 0) {
        struct page *page;
 
--- 1135,1141 ----
     mapping = inode->i_mapping;
     from = 0;
     result = 0;
!    read_lock_irq(&mapping->tree_lock);
     while (result == 0) {
        struct page *page;
 
*************** static int sync_page_list(struct inode *
*** 1150,1166 ****
         * truncating by inode->i_mutex locked by sys_fsync
         */
        page_cache_get(page);
!       spin_unlock_irq(&mapping->tree_lock);
 
        from = page->index + 1;
 
        result = sync_page(page);
 
        page_cache_release(page);
!       spin_lock_irq(&mapping->tree_lock);
     }
 
!    spin_unlock_irq(&mapping->tree_lock);
     return result;
  }
 
--- 1150,1166 ----
         * truncating by inode->i_mutex locked by sys_fsync
         */
        page_cache_get(page);
!       read_unlock_irq(&mapping->tree_lock);
 
        from = page->index + 1;
 
        result = sync_page(page);
 
        page_cache_release(page);
!       read_lock_irq(&mapping->tree_lock);
     }
 
!    read_unlock_irq(&mapping->tree_lock);
     return result;
  }
 


that does not look right, it should be (@mapping->priv_lock); if you are using lockless (dodo converted r4 to lockless not me, maybe i will have a chance to look at it later)

lockless is a mystery :/ sorry is causing you trouble, maybe you will have more luck when -zenmm is out

EDIT: wait why are you testing those old kernels, are u getting hardlocks with the latest git?
_________________
Do not meddle in the affairs of wizards, for they are subtle and quick to anger.
Back to top
View user's profile Send private message
dodo1122
Guru
Guru


Joined: 02 Sep 2006
Posts: 347
Location: York, England

PostPosted: Sun Jun 22, 2008 1:30 am    Post subject: Reply with quote

no, it shouldn't be priv_lock in .25 zen, as there is an older lockless patch there which does not remove tree_lock; only the new one does.
KernelOfTruth, that's not really it, because lockless is all about removing all read/write locks and either replacing them with spinlocks or removing them completely. In filestems locks are definitely needed, so changing from write to spinlocks is correct. I also tried using writelocks there with lockless, and it hardlocks with *any* io to the partition (like, extracting anything to the partition, or moving a file to it will get a hardlock).

It also works here, i extracted the whole linux-2.6.24.tar.bz2 onto my reiser4 partition, then removed it, and it works normally.

dodo
_________________
#zen-sources on irc.rizon.net
Back to top
View user's profile Send private message
rmh3093
Advocate
Advocate


Joined: 06 Aug 2003
Posts: 2138
Location: Albany, NY

PostPosted: Sun Jun 22, 2008 3:00 am    Post subject: Reply with quote

dodo1122 wrote:
no, it shouldn't be priv_lock in .25 zen, as there is an older lockless patch there which does not remove tree_lock; only the new one does.
KernelOfTruth, that's not really it, because lockless is all about removing all read/write locks and either replacing them with spinlocks or removing them completely. In filestems locks are definitely needed, so changing from write to spinlocks is correct. I also tried using writelocks there with lockless, and it hardlocks with *any* io to the partition (like, extracting anything to the partition, or moving a file to it will get a hardlock).

It also works here, i extracted the whole linux-2.6.24.tar.bz2 onto my reiser4 partition, then removed it, and it works normally.

dodo


i though that was from .26 not .25
_________________
Do not meddle in the affairs of wizards, for they are subtle and quick to anger.
Back to top
View user's profile Send private message
tranquilcool
Veteran
Veteran


Joined: 25 Mar 2005
Posts: 1159

PostPosted: Sun Jun 22, 2008 6:49 am    Post subject: Reply with quote

sysctl table check failed: /fs/hid_mousepoll_interval .5.77 Unknown sysctl binary path
Pid: 1, comm: swapper Not tainted 2.6.26-rc6-zen2 #43
[<80139337>] set_fail+0x45/0x47
[<80139693>] sysctl_check_table+0x35a/0x697
[<80129522>] sysctl_head_finish+0x11/0x37
[<801396af>] sysctl_check_table+0x376/0x697
[<8056916c>] sysctl_init+0x22/0x25
[<8055827a>] kernel_init+0x184/0x291
[<80185e7c>] sys_pselect7+0xfc/0x25a
[<8056914a>] sysctl_init+0x0/0x25
[<8011ec72>] finish_task_switch+0x1f/0x7a
[<8011ff94>] schedule_tail+0x17/0x45
[<80102f56>] ret_from_fork+0x6/0x1c
[<805580f6>] kernel_init+0x0/0x291
[<805580f6>] kernel_init+0x0/0x291
[<80103c73>] kernel_thread_helper+0x7/0x14
=======================

latest git pull still giving above errors.
and for some reasons uvesafb seg faults. dunno may not be related to zen-sources.
_________________
this is a strange strange world.
Back to top
View user's profile Send private message
kernelOfTruth
Watchman
Watchman


Joined: 20 Dec 2005
Posts: 6108
Location: Vienna, Austria; Germany; hello world :)

PostPosted: Sun Jun 22, 2008 10:14 am    Post subject: Reply with quote

I just posted the old diff snipped from the .25 kernel which made the change for me from working to slightly lock -> hardlock

I thought this might be related to the actual / new problem

but seemingly isn't - sorry for confusing you

I'm going to re-compile the kernel a last time with locking debug & the other stuff enabled so that I can (hopefully) immediately see what is causing this lock with a trace; if it doesn't help I'll go back to .26-rc6-zen2, since I need a working environment ...

there will be surely enough testing for lockless when it gets into mainline ...

thanks guys :)
_________________
https://github.com/kernelOfTruth/ZFS-for-SystemRescueCD/tree/ZFS-for-SysRescCD-4.9.0
https://github.com/kernelOfTruth/pulseaudio-equalizer-ladspa

Hardcore Gentoo Linux user since 2004 :D
Back to top
View user's profile Send private message
kernelOfTruth
Watchman
Watchman


Joined: 20 Dec 2005
Posts: 6108
Location: Vienna, Austria; Germany; hello world :)

PostPosted: Sun Jun 22, 2008 11:21 am    Post subject: Reply with quote

OMG 8O
I can't believe what I saw :lol:
I've never seen such a fast reiserfs & reiser4

I managed to hardlock it again:

this seemingly occurs mainly on writing TO reiserfs,
I'll try writing from reiserfs to reiser4 now & see if that triggers it, too

1. have a big reiser4 and a big reiserfs partition
2. copy over several gigabytes from the reiser4-partition to the reiserfs-partition via rsync (rsync -aq) (whether normal partition or dm-crypt/encrypted doesn't matter)
3. it'll hardlock after some time

the suspects right now are reiser4, reiserfs, swap

edit:

ok, just found out, that it also could be my RAM :lol:,
so please don't remove those patches too eary

thanks
_________________
https://github.com/kernelOfTruth/ZFS-for-SystemRescueCD/tree/ZFS-for-SysRescCD-4.9.0
https://github.com/kernelOfTruth/pulseaudio-equalizer-ladspa

Hardcore Gentoo Linux user since 2004 :D
Back to top
View user's profile Send private message
FallenWizard
n00b
n00b


Joined: 04 Sep 2007
Posts: 51
Location: Vienna / Austria

PostPosted: Sun Jun 22, 2008 12:46 pm    Post subject: Reply with quote

kernelOfTruth wrote:
OMG 8O
I can't believe what I saw :lol:
I've never seen such a fast reiserfs & reiser4

I managed to hardlock it again:

this seemingly occurs mainly on writing TO reiserfs,
I'll try writing from reiserfs to reiser4 now & see if that triggers it, too

1. have a big reiser4 and a big reiserfs partition
2. copy over several gigabytes from the reiser4-partition to the reiserfs-partition via rsync (rsync -aq) (whether normal partition or dm-crypt/encrypted doesn't matter)
3. it'll hardlock after some time

the suspects right now are reiser4, reiserfs, swap

edit:

ok, just found out, that it also could be my RAM :lol:,
so please don't remove those patches too eary

thanks


You can try to disable "disable heap randomization". It helped at me. My Zen kernel is rock stable now. (With exception of joydev, but it is a another story)
Back to top
View user's profile Send private message
kernelOfTruth
Watchman
Watchman


Joined: 20 Dec 2005
Posts: 6108
Location: Vienna, Austria; Germany; hello world :)

PostPosted: Sun Jun 22, 2008 12:53 pm    Post subject: Reply with quote

FallenWizard wrote:
kernelOfTruth wrote:

[cut]
...
[cut]


You can try to disable "disable heap randomization". It helped at me. My Zen kernel is rock stable now. (With exception of joydev, but it is a another story)


you mean: # CONFIG_COMPAT_BRK is not set
?

then it's not the trigger (at least not for me),

thanks

I've lowered memory-frequency & FSB a little && disabled swap for now, it's rock solid/stable :)

reiser4 to reiserfs, reiser4 to reiser4 and reiserfs to reiser4 syncing works fine so far ...

perhaps swap is the bad guy ?
_________________
https://github.com/kernelOfTruth/ZFS-for-SystemRescueCD/tree/ZFS-for-SysRescCD-4.9.0
https://github.com/kernelOfTruth/pulseaudio-equalizer-ladspa

Hardcore Gentoo Linux user since 2004 :D
Back to top
View user's profile Send private message
rmh3093
Advocate
Advocate


Joined: 06 Aug 2003
Posts: 2138
Location: Albany, NY

PostPosted: Sun Jun 22, 2008 2:32 pm    Post subject: Reply with quote

kernelOfTruth wrote:
FallenWizard wrote:
kernelOfTruth wrote:

[cut]
...
[cut]


You can try to disable "disable heap randomization". It helped at me. My Zen kernel is rock stable now. (With exception of joydev, but it is a another story)


you mean: # CONFIG_COMPAT_BRK is not set
?

then it's not the trigger (at least not for me),

thanks

I've lowered memory-frequency & FSB a little && disabled swap for now, it's rock solid/stable :)

reiser4 to reiserfs, reiser4 to reiser4 and reiserfs to reiser4 syncing works fine so far ...

perhaps swap is the bad guy ?


I will look in to the mm/ patches then
_________________
Do not meddle in the affairs of wizards, for they are subtle and quick to anger.
Back to top
View user's profile Send private message
mroconnor
Guru
Guru


Joined: 24 Feb 2006
Posts: 402
Location: USA

PostPosted: Sun Jun 22, 2008 2:34 pm    Post subject: Reply with quote

So just catch up, lockless is back in 2.6.26-rc6-zen2? If so I will test w/ ~amd64, Core2 , 1GB RAM, reiserfs /usr/portage & / ext3.

Let's see.
Back to top
View user's profile Send private message
dodo1122
Guru
Guru


Joined: 02 Sep 2006
Posts: 347
Location: York, England

PostPosted: Sun Jun 22, 2008 2:42 pm    Post subject: Reply with quote

lockless is not in any release, only in git.

Also, is anyone using xorg-server 1.4.99.902 with radeonhd driver + lockless here? xorg does not want to start for me, i just get a black screen without any possibility to kill xorg (switching to another tty does not work, ctrl+alt+backspace does not work etc), but the kernel is not hardlocked as sysrq and LED's work.

dodo
_________________
#zen-sources on irc.rizon.net
Back to top
View user's profile Send private message
mroconnor
Guru
Guru


Joined: 24 Feb 2006
Posts: 402
Location: USA

PostPosted: Sun Jun 22, 2008 3:18 pm    Post subject: Reply with quote

I did a git-pull last evening about 10:30 EDT.

I am having issues w/ radeonhd and regular radeon driver. When I use it, make me xfce screen VERY VERY dark.

Anyway, if i pulled form git i should have lockless?
Back to top
View user's profile Send private message
dodo1122
Guru
Guru


Joined: 02 Sep 2006
Posts: 347
Location: York, England

PostPosted: Sun Jun 22, 2008 3:42 pm    Post subject: Reply with quote

yes, you will have lockless. also if you want to enable concurrent pagecache, go to General setup, and enable
Code:

  │ │    [*] Enable concurrent radix tree operations (EXPERIMENTAL)             │ │ 
  │ │    [*]   Enabled optimistic locking (EXPERIMENTAL)                        │ │

_________________
#zen-sources on irc.rizon.net
Back to top
View user's profile Send private message
mroconnor
Guru
Guru


Joined: 24 Feb 2006
Posts: 402
Location: USA

PostPosted: Sun Jun 22, 2008 4:05 pm    Post subject: Reply with quote

Well the first test failed.

I tried copying a directory(700mb)on an ext3 partition to my blackberries media card (FAT32). Everything started ok but then I opened a terminal and did 'make menuconfig' to look around and locked up completely.

I have
Code:

│ │    [*] Enable concurrent radix tree operations (EXPERIMENTAL)             │ │
  │ │    [*]   Enabled optimistic locking (EXPERIMENTAL)                        │ │



ugh!
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Unsupported Software All times are GMT
Goto page Previous  1, 2, 3, 4, 5, 6 ... 15, 16, 17  Next
Page 5 of 17

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum