Re: more tcpdumpinfo for nfs3 problem: aix-server --- linux 2.4.15pre5 client

From: Trond Myklebust (trond.myklebust@fys.uio.no)
Date: Tue Nov 20 2001 - 14:39:23 EST


>>>>> " " == kuznet <kuznet@ms2.inr.ac.ru> writes:

> Hello!
>> I forgot to add: The socket fasync lists use spinlocking in the
>> same was as RPC does, with sock_fasync() setting
>> write_lock_bh(&sk->callback_lock), and sock_def_write_space()
>> doing read_lock(&sk->callback_lock).
>>
>> So that would deadlock with the QDIO driver in the exact same
>> manner as the RPC stuff (albeit probably a lot less
>> frequently).

> Please, elaborate. I do not see any way.

Processor 1 Processor 2

(Call QDIO bottom half code)
spin_lock(&QDIO_lock);
                                                write_lock_bh(&sk->callback_lock)
dev_kfree_skb_any()
   -> kfree_skb()
                                                 <QDIO hard interrupt>
     -> write_space()
                                                       ->spin_lock(&QDIO_lock)
                                                              (spins...)
        ->read_lock(&sk->callback_lock);
               (spins)

Deadlock - in exactly the same way as with the xprt code...

Cheers,
   Trond
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri Nov 23 2001 - 21:00:24 EST