NetBSD-Bugs archive

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

Re: kern/49305: deadlocks on sparc64 SMP



The following reply was made to PR kern/49305; it has been noted by GNATS.

From: Martin Husemann <martin%duskware.de@localhost>
To: matthew green <mrg%eterna.com.au@localhost>
Cc: gnats-bugs%NetBSD.org@localhost
Subject: Re: kern/49305: deadlocks on sparc64 SMP
Date: Wed, 22 Oct 2014 14:28:15 +0200

 On Wed, Oct 22, 2014 at 11:12:04PM +1100, matthew green wrote:
 > interesting.
 > 
 >  bool
 >  pktq_enqueue(pktqueue_t *pq, struct mbuf *m, const u_int hash __unused)
 >  {
 > -       const unsigned cpuid = curcpu()->ci_index /* hash % ncpu */;
 [..]
 > +       const unsigned cpuid = hash % ncpu;
 > +#endif
 >  
 >         KASSERT(kpreempt_disabled());
 
 Note that only ether_input() passes a real hash value here (all other
 callers hard code it to 0), and also that the only way to get to this
 function is typically in the RX interrupt of a network driver, which
 will very likely always happen on cpu0 on sparc64 (currently).
 
 Martin
 


Home | Main Index | Thread Index | Old Index