On 5/17/2018 2:14 PM, Eric Dumazet wrote:
On 05/17/2018 01:53 PM, Qing Huang wrote:
When a system is under memory presure (high usage with fragments),NACK on this patch.
the original 256KB ICM chunk allocations will likely trigger kernel
memory management to enter slow path doing memory compact/migration
ops in order to complete high order memory allocations.
When that happens, user processes calling uverb APIs may get stuck
for more than 120s easily even though there are a lot of free pages
in smaller chunks available in the system.
Syslog:
...
Dec 10 09:04:51 slcc03db02 kernel: [397078.572732] INFO: task
oracle_205573_e:205573 blocked for more than 120 seconds.
...
You have been asked repeatedly to use kvmalloc()
This is not a minor suggestion.
Take a look athttps://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d8c13f2271ec5178c52fbde072ec7b562651ed9d
Would you please take a look at how table->icm is being used in the mlx4 driver? It's a meta data used for individual pointer variable referencing,
not as data frag or in/out buffer. It has no need for contiguous phy. memory.
Thanks.
And you'll understand some people care about this.
Strongly.
Thanks.