mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: David Sterba <dsterba@suse.cz>
To: torvalds@linux-foundation.org
Cc: linux-kernel@vger.kernel.org, dsterba@suse.cz, jkosina@suse.cz
Subject: [PATCH 10/12] ipwireless: Increase PPP outgoing queue size
Date: Sat, 19 Jul 2008 00:11:45 +0200	[thread overview]
Message-ID: <20080718221145.19195.81885.stgit@ds.suse.cz> (raw)
In-Reply-To: <20080718220840.19195.4140.stgit@ds.suse.cz>

Increase default size of PPP outgoing queue. Currently set to 1, which
means that a packet quickly following another pushed by PPP must wait
until hardware actually sends the previous and PPP has to be waken up
by ppp_wakeup(). This slows down upstream.

Now PPP can push more packets at once which get buffered inside driver
and pushed immediatelly to hardware when previous packet is out.

Experiments show that size = 10 is quite good for all connection types
(GPRS/EDGE/UMTS) and gains 4 KB/sec of upload for UMTS for batch uploads.
Need for higher queue size than 10 occures in only < 0.1 % of cases.

Signed-off-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
---

 drivers/char/pcmcia/ipwireless/main.c    |    4 ++--
 drivers/char/pcmcia/ipwireless/network.c |    4 +++-
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/char/pcmcia/ipwireless/main.c b/drivers/char/pcmcia/ipwireless/main.c
index 7169a0d..5eca7a9 100644
--- a/drivers/char/pcmcia/ipwireless/main.c
+++ b/drivers/char/pcmcia/ipwireless/main.c
@@ -49,7 +49,7 @@ static void ipwireless_detach(struct pcmcia_device *link);
 /* Debug mode: more verbose, print sent/recv bytes */
 int ipwireless_debug;
 int ipwireless_loopback;
-int ipwireless_out_queue = 1;
+int ipwireless_out_queue = 10;
 
 module_param_named(debug, ipwireless_debug, int, 0);
 module_param_named(loopback, ipwireless_loopback, int, 0);
@@ -57,7 +57,7 @@ module_param_named(out_queue, ipwireless_out_queue, int, 0);
 MODULE_PARM_DESC(debug, "switch on debug messages [0]");
 MODULE_PARM_DESC(loopback,
 		"debug: enable ras_raw channel [0]");
-MODULE_PARM_DESC(out_queue, "debug: set size of outgoing queue [1]");
+MODULE_PARM_DESC(out_queue, "debug: set size of outgoing PPP queue [10]");
 
 /* Executes in process context. */
 static void signalled_reboot_work(struct work_struct *work_reboot)
diff --git a/drivers/char/pcmcia/ipwireless/network.c b/drivers/char/pcmcia/ipwireless/network.c
index 28d9fd7..2b07af0 100644
--- a/drivers/char/pcmcia/ipwireless/network.c
+++ b/drivers/char/pcmcia/ipwireless/network.c
@@ -75,7 +75,7 @@ static void notify_packet_sent(void *callback_data, unsigned int packet_length)
 			spin_unlock_irqrestore(&network->lock, flags);
 			ppp_output_wakeup(network->ppp_channel);
 			if (ipwireless_debug)
-				printk(KERN_INFO IPWIRELESS_PCCARD_NAME
+				printk(KERN_DEBUG IPWIRELESS_PCCARD_NAME
 				       ": ppp unblocked\n");
 		} else
 			spin_unlock_irqrestore(&network->lock, flags);
@@ -144,6 +144,8 @@ static int ipwireless_ppp_start_xmit(struct ppp_channel *ppp_channel,
 		 */
 		network->ppp_blocked = 1;
 		spin_unlock_irqrestore(&network->lock, flags);
+		if (ipwireless_debug)
+			printk(KERN_DEBUG IPWIRELESS_PCCARD_NAME ": ppp blocked\n");
 		return 0;
 	}
 }


  parent reply	other threads:[~2008-07-18 22:14 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-07-18 22:10 [PATCH 00/12] ipwireless: driver updates David Sterba
2008-07-18 22:10 ` [PATCH 01/12] ipwireless: Misc cleanups David Sterba
2008-07-18 22:11 ` [PATCH 02/12] ipwireless: Remove unused defines David Sterba
2008-07-18 22:11 ` [PATCH 03/12] ipwireless: Rename spinlock variables to lock David Sterba
2008-07-18 22:11 ` [PATCH 04/12] ipwireless: Remove pt_regs from interrupt handler David Sterba
2008-07-18 22:11 ` [PATCH 05/12] ipwireless: Glue splitted printk strings back David Sterba
2008-07-18 22:11 ` [PATCH 06/12] ipwireless: Remove endian-dependent bitfields David Sterba
2008-07-18 22:11 ` [PATCH 07/12] ipwireless: Do not return value from sending funcs David Sterba
2008-07-18 22:11 ` [PATCH 08/12] ipwireless: Constify buffer variables David Sterba
2008-07-18 22:11 ` [PATCH 09/12] ipwireless: Explicitly request io and mem regions David Sterba
2008-07-18 22:11 ` David Sterba [this message]
2008-07-18 22:11 ` [PATCH 11/12] ipwireless: Put packets to pool start David Sterba
2008-07-18 22:11 ` [PATCH 12/12] ipwireless: Preallocate received packet buffers with MRU size David Sterba
2008-07-28 14:52 [RESEND][PATCH 00/12] ipwireless: driver updates David Sterba
2008-07-28 14:53 ` [PATCH 10/12] ipwireless: Increase PPP outgoing queue size David Sterba

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080718221145.19195.81885.stgit@ds.suse.cz \
    --to=dsterba@suse.cz \
    --cc=jkosina@suse.cz \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome