Sfoglia il codice sorgente

qcacmn: Reduce WMI max message size on low mem profile

Current max message size of 2048 will result in a 4K slab allocation due
to padding and shinfo additions. We observed that most of the WMI
allocations are within 1600 and there is no need to set max bu size as
2048. Hence reduce max buf size to 1700 for low memory profile so that
allocation on host result in a 2K skbs.

Change-Id: Icb25be0f4ce60112ef6293f39f9dcc57ebc0288c
CRs-Fixed: 2394768
Kiran Venkatappa 6 anni fa
parent
commit
e9f72e08e2
1 ha cambiato i file con 16 aggiunte e 10 eliminazioni
  1. 16 10
      hif/src/ce/ce_assignment.h

+ 16 - 10
hif/src/ce/ce_assignment.h

@@ -624,15 +624,21 @@ static struct CE_pipe_config target_ce_config_wlan_ar900b[] = {
 #endif
 };
 
+#ifdef QCA_LOWMEM_CONFIG
+#define WMI_MAX_BUF_SIZE 1700
+#else
+#define WMI_MAX_BUF_SIZE 2048
+#endif
+
 static struct CE_attr host_ce_config_wlan_qca8074[] = {
 	/* host->target HTC control and raw streams */
 	{ /* CE0 */ CE_ATTR_FLAGS, 0, 16, 2048, 0, NULL,},
 	/* target->host HTT + HTC control */
 	{ /* CE1 */ CE_ATTR_FLAGS, 0, 0,  2048, 512, NULL,},
 	/* target->host WMI */
-	{ /* CE2 */ CE_ATTR_FLAGS, 0, 0,  2048, 512, NULL,},
+	{ /* CE2 */ CE_ATTR_FLAGS, 0, 0,  WMI_MAX_BUF_SIZE, 512, NULL,},
 	/* host->target WMI (mac0) */
-	{ /* CE3 */ CE_ATTR_FLAGS, 0, 32, 2048, 0, NULL,},
+	{ /* CE3 */ CE_ATTR_FLAGS, 0, 32, WMI_MAX_BUF_SIZE, 0, NULL,},
 	/* host->target HTT */
 	{ /* CE4 */ (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,
 		CE_HTT_H2T_MSG_SRC_NENTRIES, 256, 0, NULL,},
@@ -642,11 +648,11 @@ static struct CE_attr host_ce_config_wlan_qca8074[] = {
 	{ /* CE6 */ CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR, 0, 0,
 		0, 0, NULL,},
 	/* host->target WMI (mac1) */
-	{ /* CE7 */ CE_ATTR_FLAGS, 0, 32, 2048, 0, NULL,},
+	{ /* CE7 */ CE_ATTR_FLAGS, 0, 32, WMI_MAX_BUF_SIZE, 0, NULL,},
 	/* Target to uMC */
 	{ /* CE8 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,},
 	/* host->target WMI (mac2) */
-	{ /* CE9 */ CE_ATTR_FLAGS, 0, 32,  2048, 0, NULL,},
+	{ /* CE9 */ CE_ATTR_FLAGS, 0, 32,  WMI_MAX_BUF_SIZE, 0, NULL,},
 	/* target->host HTT */
 	{ /* CE10 */ CE_ATTR_FLAGS, 0, 0,  2048, 512, NULL,},
 	{ /* CE11 unused */ 0, 0, 0, 0, 0, NULL,},
@@ -658,9 +664,9 @@ static struct CE_pipe_config target_ce_config_wlan_qca8074[] = {
 	/* target->host HTT */
 	{ /* CE1 */ 1, PIPEDIR_IN,  32, 2048, CE_ATTR_FLAGS, 0,},
 	/* target->host WMI  + HTC control */
-	{ /* CE2 */ 2, PIPEDIR_IN,  32, 2048, CE_ATTR_FLAGS, 0,},
+	{ /* CE2 */ 2, PIPEDIR_IN,  32, WMI_MAX_BUF_SIZE, CE_ATTR_FLAGS, 0,},
 	/* host->target WMI */
-	{ /* CE3 */ 3, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0,},
+	{ /* CE3 */ 3, PIPEDIR_OUT, 32, WMI_MAX_BUF_SIZE, CE_ATTR_FLAGS, 0,},
 	/* host->target HTT */
 	{ /* CE4 */ 4, PIPEDIR_OUT, 256, 256,
 		(CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,},
@@ -669,13 +675,13 @@ static struct CE_pipe_config target_ce_config_wlan_qca8074[] = {
 	{ /* CE5 */ 5, PIPEDIR_IN,  32, 2048, 0, 0,},
 	/* Reserved for target autonomous HIF_memcpy */
 	{ /* CE6 */ 6, PIPEDIR_INOUT, 32, 65535, 64, 0,},
-	/* CE7 used only by Host */
-	{ /* CE7 */ 7, PIPEDIR_OUT, 32, 2048,
+	/* CE7 host->target WMI (mac1) */
+	{ /* CE7 */ 7, PIPEDIR_OUT, 32, WMI_MAX_BUF_SIZE,
 		8192, 0,},
 	/* CE8 used only by IPA */
 	{ /* CE8 */ 8, PIPEDIR_INOUT, 32, 65535, 112, 0,},
-	/* CE9 target->host HTT */
-	{ /* CE9 */ 9, PIPEDIR_OUT,  32, 2048, 8192, 0,},
+	/* CE9 host->target WMI (mac2) */
+	{ /* CE9 */ 9, PIPEDIR_OUT,  32, WMI_MAX_BUF_SIZE, 8192, 0,},
 	/* CE10 target->host HTT */
 	{ /* CE10 */ 10, PIPEDIR_INOUT_H2H,  0, 0, 0, 0,},
 	{/* CE11 unused */11, PIPEDIR_NONE, 0, 0, 0, 0,},