[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <4634.1184900524@neuling.org>
Date: Thu, 19 Jul 2007 20:02:04 -0700
From: Michael Neuling <mikey@...ling.org>
To: Thomas Klein <tklein@...ibm.com>,
Jan-Bernd Themann <themann@...ibm.com>,
netdev <netdev@...r.kernel.org>,
Christoph Raisch <raisch@...ibm.com>,
Stefan Roscher <ossrosch@...ux.vnet.ibm.com>,
linux-ppc <linuxppc-dev@...abs.org>
cc: anton@...ba.org
Subject: Possible eHEA performance issue
>From ehea_start_xmit in ehea_main.c we have:
if (unlikely(atomic_read(&pr->swqe_avail) <= 1)) {
spin_lock_irqsave(&pr->netif_queue, flags);
if (unlikely(atomic_read(&pr->swqe_avail) <= 1)) {
pr->p_stats.queue_stopped++;
netif_stop_queue(dev);
pr->queue_stopped = 1;
}
spin_unlock_irqrestore(&pr->netif_queue, flags);
}
Since the conditions are the same, isn't it likely that the second 'if'
is going to be taken. Hence, shouldn't the second 'unlikely' hint be
removed or even changed to likely?
Either way, some documentation here as to why it's done this way would
be useful. I assume the atomic_read is cheap compared to the
spin_unlock_irqsave, so we quickly check swqe_avail before we check it
again properly with the lock on so we can change some stuff.
Mikey
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists