2009-07-02 09:01:59

by Vikram

[permalink] [raw]
Subject: [PATCH] Bluetooth: Improve the throughput by increasing the frame size

Subject: [PATCH] Bluetooth: Improve the throughput by increasing the frame size

This patch increases the receive buffer size to HCI_MAX_FRAME_SIZE
which improves the Rx throughput considerably.

Tested against BRM/Atheros/CSR USB Dongles with PAN profile using
iperf and chariot. This gave significant (around 40%) increase
in performance (increased from 0.8 to 1.5 Mb/s in Sheld room)

Signed-off-by: Vikram Kandukuri <[email protected]>
---
drivers/bluetooth/btusb.c | 4 +---
1 files changed, 1 insertions(+), 3 deletions(-)

diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index e70c57e..124db8c 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -301,7 +301,7 @@ static int btusb_submit_bulk_urb(struct hci_dev *hdev, gfp_t mem_flags)
struct urb *urb;
unsigned char *buf;
unsigned int pipe;
- int err, size;
+ int err, size = HCI_MAX_FRAME_SIZE;

BT_DBG("%s", hdev->name);

@@ -312,8 +312,6 @@ static int btusb_submit_bulk_urb(struct hci_dev *hdev, gfp_t mem_flags)
if (!urb)
return -ENOMEM;

- size = le16_to_cpu(data->bulk_rx_ep->wMaxPacketSize);
-
buf = kmalloc(size, mem_flags);
if (!buf) {
usb_free_urb(urb);
--
1.6.0.4


2009-07-04 18:43:02

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH] Bluetooth: Improve the throughput by increasing the frame size

Hi Vikram,

> Subject: [PATCH] Bluetooth: Improve the throughput by increasing the frame size
>
> This patch increases the receive buffer size to HCI_MAX_FRAME_SIZE
> which improves the Rx throughput considerably.
>
> Tested against BRM/Atheros/CSR USB Dongles with PAN profile using
> iperf and chariot. This gave significant (around 40%) increase
> in performance (increased from 0.8 to 1.5 Mb/s in Sheld room)

patch has been applied. Thanks.

Regards

Marcel