Re: [PATCH v4 0/10] bql: Byte Queue Limits
From: Kirill Smelkov <hidden>
Date: 2011-12-02 11:24:38
On Thu, Dec 01, 2011 at 01:00:45PM -0500, David Miller wrote:
From: Kirill Smelkov <redacted> Date: Thu, 1 Dec 2011 20:50:18 +0400quoted
One "regression" is it is now not possible to disable BQL at compile time, because CONFIG_BQL can't be set to "n" via usual ways. Description and patch below. Thanks.It's intentional, and your patch will not be applied. The Kconfig entry and option is merely for expressing internal dependencies, not for providing a way to disable the code.
I'm maybe wrong somewhere - sorry then, but why there is e.g.
static inline void netdev_tx_sent_queue(struct netdev_queue *dev_queue,
unsigned int bytes)
{
+#ifdef CONFIG_BQL
+ dql_queued(&dev_queue->dql, bytes);
+ if (unlikely(dql_avail(&dev_queue->dql) < 0)) {
+ set_bit(__QUEUE_STATE_STACK_XOFF, &dev_queue->state);
+ if (unlikely(dql_avail(&dev_queue->dql) >= 0))
+ clear_bit(__QUEUE_STATE_STACK_XOFF,
+ &dev_queue->state);
+ }
+#endif
}
and that netdev_tx_sent_queue() is called on every xmit.
I wanted to save cycles on my small/slow hardware and compile BQL out in
case I know the system is not going to use it. I'm netdev newcomer, so
sorry if I ask naive questions, but what's wrong it?
Thanks,
Kirill