ehea: Reduce memory usage in buffer pools
Subsystems (2)
PATCH 1/2 ehea: Reduce memory usage in buffer pools
Now that we enable multiqueue by default the ehea driver is using quite a lot of memory for its buffer pools. With 4 queues we consume 64MB in the jumbo packet ring, 16MB in the medium packet ring and 16MB in the tiny packet ring.
We should only fill the jumbo ring once the MTU is increased but for now halve it's size so it consumes 32MB. Also reduce the tiny packet ring, with 4 queues we had 16k entries which is overkill.
---
drivers/net/ethernet/ibm/ehea/ehea.h +2 -2
@@ -61,9 +61,9 @@#ifdef EHEA_SMALL_QUEUES #define EHEA_MAX_CQE_COUNT 1023#define EHEA_DEF_ENTRIES_SQ 1023 -#define EHEA_DEF_ENTRIES_RQ1 4095 +#define EHEA_DEF_ENTRIES_RQ1 1023#define EHEA_DEF_ENTRIES_RQ2 1023 -#define EHEA_DEF_ENTRIES_RQ3 1023 +#define EHEA_DEF_ENTRIES_RQ3 511#else #define EHEA_MAX_CQE_COUNT 4080#define EHEA_DEF_ENTRIES_SQ 4080
PATCH 2/2 ehea: Use round_jiffies_relative to align workqueue
Use round_jiffies_relative to align the ehea workqueue and avoid extra wakeups.
---
drivers/net/ethernet/ibm/ehea/ehea_main.c +4 -2
@@ -371,7 +371,8 @@ static void ehea_update_stats(struct wor out_herr:free_page ((unsigned long )cb2); resched: -schedule_delayed_work (&port->stats_work,msecs_to_jiffies (1000 )); +schedule_delayed_work (&port->stats_work, +round_jiffies_relative (msecs_to_jiffies (1000 ))); }static void ehea_refill_rq1 (struct ehea_port_res *pr,int index,int nr_of_wqes)
@@ -2434,7 +2435,8 @@ static int ehea_open(struct net_device * }mutex_unlock (&port->port_lock); -schedule_delayed_work (&port->stats_work,msecs_to_jiffies (1000 )); +schedule_delayed_work (&port->stats_work, +round_jiffies_relative (msecs_to_jiffies (1000 )));return ret; }
Re: [PATCH 2/2] ehea: Use round_jiffies_relative to align workqueue
From: Anton Blanchard <[email protected]>
Date: Wed, 23 Nov 2011 21:13:54 +1100
Quoted 5 lines
Use
round_jiffies_relativeto align the ehea workqueue and avoid extra wakeups.Signed-off-by Anton Blanchard <[email protected]>
Applied.
From: Anton Blanchard <[email protected]>
Date: Wed, 23 Nov 2011 21:13:02 +1100
Quoted 11 lines
Now that we enable multiqueue by default the ehea driver is using quite a lot of memory for its buffer pools. With 4 queues we consume 64MB in the jumbo packet ring, 16MB in the medium packet ring and 16MB in the tiny packet ring.
We should only fill the jumbo ring once the MTU is increased but for now halve it's size so it consumes 32MB. Also reduce the tiny packet ring, with 4 queues we had 16k entries which is overkill.
Signed-off-by Anton Blanchard <[email protected]>
Applied.