tech-kern archive

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

Re: [PATCH] Re: zero-filed page on VOP_PUTPAGES



Emmanuel Dreyfus <manu%netbsd.org@localhost> wrote:

> > That code passes my test case for data corruption, and it does not hang
> > the kernel. 
> I spoke too fast, it is still able to deadlock.

I identified simple situations where the ioflush thread would enter 
puffs_vnop_strategy and fail to request asynchrnous usage (because 
pn->pn_stat has no PNODE_SUSPEND). However there seems to be 
more subtle case. For instance here is ddb's ps output for a hang system. 
I have trouble to way where the deadlock here. Any hint?

PID    LID S CPU     FLAGS       STRUCT LWP *               NAME WAIT
18340    1 3   0         4           cb309040               cron flt_pmfail1
1875     1 3   0         4           cb21c780                sed flt_noram5
11514    1 3   0        84           cb309540                 sh piperd
7210     1 3   0        84           cb3d0800                 sh wait
25483    1 3   0         4           cb3097c0             nbmake flt_noram5
23798    1 3   0        84           cb5ced20                 sh wait
508      1 3   0        84           cb3d0300             nbmake wait
11536    1 3   0        84           cb362a60                 sh wait
5332     1 3   0        84           cb309a40             nbmake wait
6669     1 3   0        80           cb3092c0                 sh wait
7186     1 3   0        80           cb309cc0             nbmake wait
7641     1 3   0        80           cb259520                 sh wait
5598     1 3   0        80           cb2597a0             nbmake wait
3377     1 3   0        80           cb259020                 sh wait
96       1 3   0        80           cb2592a0                ksh pause
538      1 3   0        84           cb21c000                 sh wait
559      1 3   0        80           cb21c280                ksh pause
372      1 3   0        84           cb21c500       screen-4.0.3 select
555      1 3   0        80           cb21ca00                ksh ttyraw
563      1 2   0         0           cb21cc80               sshd
535      1 3   0        80           cb0760e0               sshd netio
547      1 3   0        80           cb076360              httpd semwait
539      1 3   0        80           cb0765e0              httpd semwait
541      1 3   0        80           cb076860              httpd semwait
540      1 3   0        84           cb076ae0              httpd kqueue
529      1 3   0        80           c9d71cc0              httpd semwait
536      1 3   0         4           c9d71a40              getty km_getwait2
524      1 3   0        84           cb076d60              httpd select
521      1 3   0         4           cafe80c0               cron flt_noram5
510      1 3   0        80           caebd0a0              inetd kqueue
437      1 2   0         0           cafe8340               sshd
334      1 3   0        80           cac4fa80             powerd kqueue
240      1 3   0        84           cafe8ac0               ntpd pause
326      4 3   0        84           cac4f800         glusterfsd netio
           >   3 7   0     40004           cafe85c0         glusterfsd
               2 3   0        80           cafe8840         glusterfsd sigwait
               1 3   0        84           caebd320         glusterfsd select
328      1 3   0        84           caebdaa0           perfused kqueue
199      4 3   0        84           c9d722e0         glusterfsd netio
               3 2   0         4           caebd5a0         glusterfsd
               2 3   0        80           caebdd20         glusterfsd sigwait
               1 3   0        84           cac4f300         glusterfsd select
229      1 3   0        84           cac4f580           perfused kqueue
109      1 2   0         4           c9d72060            syslogd
1        1 3   0        84           c9d71040               init wait
0       33 2   0       204           cac4f080            swapiod
              32 3   0       204           cafe8d40            puffsop puffsop
              31 3   0       204           caebd820            puffsop puffsop
              30 3   0       204           cac4fd00            physiod physiod
              29 3   0       204           c9d717c0           aiodoned aiodoned
              28 3   0       204           c9d71540            ioflush syncer
              27 3   0       204           c9d712c0           pgdaemon pgdaemon
              26 3   0       204           c9d6a020        cryptoret crypto_wait
              25 3   0       204           c9d72ce0              unpgc unpgc
              24 3   0       204           c9d72a60      vmem_rehash vmem_rehash
              23 3   0       204           c9d72560             xenbus rdst
              22 3   0       204           c9d727e0           xenwatch evtsq
              12 3   0       204           c9d6a2a0           pmfevent pmfevent
              11 3   0       204           c9d6a520         sopendfree sopendfr
              10 3   0       204           c9d6a7a0           nfssilly nfssilly
               9 3   0       204           c9d6aa20            cachegc cachegc
               8 3   0       204           c9d6aca0              vrele vrele
               7 3   0       204           c9d67000            xcall/0 xcall
               6 1   0       204           c9d67280          softser/0
               5 1   0       204           c9d67500          softclk/0
               4 1   0       204           c9d67780          softbio/0
               3 1   0       204           c9d67a00          softnet/0
               2 1   0       205           c9d67c80             idle/0
               1 3   0       204           c046d2e0          swapper schedpwait


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


Home | Main Index | Thread Index | Old Index