From: Wei-Ning Huang [mailto:wnhuang@google.com]
Sent: Tuesday, March 29, 2016 2:57 PM
To: Kalle Valo
Cc: Linux Wireless; LKML; Amitkumar Karwar; Nishant Sarmukadam; Sameer
Nanda; netdev@vger.kernel.org; Sonny Rao; Douglas Anderson
Subject: Re: [PATCH] mwifiex: add __GFP_REPEAT to skb allocation call
Adding some chromium devs to the thread.
In, http://lxr.free-electrons.com/source/mm/page_alloc.c#L3152
The default mm retry allocation when 'order <= PAGE_ALLOC_COSTLY_ORDER'
of gfp_mask contains __GFP_REPEAT.
PAGE_ALLOC_COSTLY_ORDER is defined to be 3. On systems with page size =
4K, this means memory compaction and retry is only done when the size of
allocation is <= 32K In mwifiex, the allocation size is 64K. When we
have system with memory fragmentation and allocation failed, there will
be no retry.
This is why we need to add __GFP_REPEAT here to allow the system to
perform memory compaction and retry allocation.
Maybe Amit@marvell can comment on if this is a good fix on this issue.
I'm also aware that marvell is the progress of implementing
scatter/gatter for mwifiex, which can also fix the issue.
Wei-Ning
This fix would be useful. We have a feature called single port aggregation in which sometimes data received from SDIO interface can be >32k (but less than 64k). This feature improves throughput performance. We are preparing patches for scatter/gather feature. but scatter/gather won't be supported by some platforms. Hence this fix would still be needed.
Regards,
Amitkumar
�{.n�+�������+%��lzwm��b�맲��r��zX��
"��^�ȧ���ܨ}���Ơz�&j:+v����n�r��6;靫3��\
nnX��f�z��2�ޙ���&�)ߡ�a����
�G���h��j:+v���w�٥