Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: psshfs atf regression tests are broken?



On Sun, 22 Jul 2012, Emmanuel Dreyfus wrote:

Paul Goyette <paul%whooppee.com@localhost> wrote:

Seems that something has recently caused some breakage in the psshfs.
The test case itself seems to be succeeding (?) but post-test clean-up
fails?

Here is a patch that should fix it. I cannot test right now because my
testbed is already running another long test. I am rebuilding the world
in another VM to check it fixes the test, but anyone feel free to beat
 me at it.

I have run the t_psshfs tests with this patch, and the tests now run cleanly, and run to completion.

# atf-run | atf-report
Tests root: /usr/tests/fs/psshfs

t_psshfs (1/1): 3 test cases
    inode_nos: [6.503491s] Passed.
    ls: [5.819438s] Passed.
    pwd: [5.056055s] Passed.
[17.472663s]

Summary for 1 test programs:
    3 passed test cases.
    0 failed test cases.
    0 expected failed test cases.
    0 skipped test cases.
#




Index: sys/fs/puffs/puffs_msgif.c
===================================================================
RCS file: /cvsroot/src/sys/fs/puffs/puffs_msgif.c,v
retrieving revision 1.90
diff -U4 -r1.90 puffs_msgif.c
--- sys/fs/puffs/puffs_msgif.c  21 Jul 2012 05:17:10 -0000      1.90
+++ sys/fs/puffs/puffs_msgif.c  22 Jul 2012 07:25:20 -0000
@@ -985,9 +985,8 @@
               KASSERT(curlwp != uvm.pagedaemon_lwp);
               psopr = kmem_alloc(sizeof(*psopr), KM_SLEEP);
               memcpy(&psopr->psopr_pf, pf, sizeof(*pf));
               psopr->psopr_sopreq = PUFFS_SOPREQ_FLUSH;
-               psopr->psopr_at = hardclock_ticks;

               mutex_enter(&pmp->pmp_sopmtx);
               if (pmp->pmp_sopthrcount == 0) {
                       mutex_exit(&pmp->pmp_sopmtx);
@@ -1010,9 +1009,8 @@
               KASSERT(curlwp != uvm.pagedaemon_lwp);
               psopr = kmem_alloc(sizeof(*psopr), KM_SLEEP);
               psopr->psopr_preq = *preq;
               psopr->psopr_sopreq = PUFFS_SOPREQ_UNMOUNT;
-               psopr->psopr_at = hardclock_ticks;

               mutex_enter(&pmp->pmp_sopmtx);
               if (pmp->pmp_sopthrcount == 0) {
                       mutex_exit(&pmp->pmp_sopmtx);
@@ -1060,15 +1058,16 @@
       mutex_enter(&pmp->pmp_sopmtx);
       for (keeprunning = true; keeprunning; ) {
               /*
                * We have a higher priority queue for flush and umount
-                * and a lower priority queue for reclaims. Request are
-                * not honoured before clock reaches psopr_at. This code
-                * assumes that requests are ordered by psopr_at in queues.
+                * and a lower priority queue for reclaims. Request on
+                * slower queue are not honoured before clock reaches
+                * psopr_at. This code assumes that requests are ordered
+                * by psopr_at in queues.
                */
               do {
                       psopr = TAILQ_FIRST(&pmp->pmp_sopfastreqs);
-                       if ((psopr != NULL) && TIMED_OUT(psopr->psopr_at)) {
+                       if (psopr != NULL) {
                               TAILQ_REMOVE(&pmp->pmp_sopfastreqs,
                                            psopr, psopr_entries);
                               break;
                       }
Index: sys/fs/puffs/puffs_vfsops.c
===================================================================
RCS file: /cvsroot/src/sys/fs/puffs/puffs_vfsops.c,v
retrieving revision 1.102
diff -U4 -r1.102 puffs_vfsops.c
--- sys/fs/puffs/puffs_vfsops.c 21 Jul 2012 05:17:11 -0000      1.102
+++ sys/fs/puffs/puffs_vfsops.c 22 Jul 2012 07:25:20 -0000
@@ -421,9 +421,8 @@
                */
               KASSERT(curlwp != uvm.pagedaemon_lwp);
               psopr = kmem_alloc(sizeof(*psopr), KM_SLEEP);
               psopr->psopr_sopreq = PUFFS_SOPREQSYS_EXIT;
-               psopr->psopr_at = hardclock_ticks;
               mutex_enter(&pmp->pmp_sopmtx);
               if (pmp->pmp_sopthrcount == 0) {
                       mutex_exit(&pmp->pmp_sopmtx);
                       kmem_free(psopr, sizeof(*psopr));

--
Emmanuel Dreyfus
http://hcpnet.free.fr/pubz
manu%netbsd.org@localhost

!DSPAM:500bab41250031234514069!



-------------------------------------------------------------------------
| Paul Goyette     | PGP Key fingerprint:     | E-mail addresses:       |
| Customer Service | FA29 0E3B 35AF E8AE 6651 | paul at whooppee.com    |
| Network Engineer | 0786 F758 55DE 53BA 7731 | pgoyette at juniper.net |
| Kernel Developer |                          | pgoyette at netbsd.org  |
-------------------------------------------------------------------------


Home | Main Index | Thread Index | Old Index