Alexey Kardashevskiy
7f1fa82d79
powerpc/iommu: Allocate it_map by vmalloc
...
The IOMMU table uses the it_map bitmap to keep track of allocated DMA
pages. This has always been a contiguous array allocated at either
the boot time or when a passed through device is returned to the host OS.
The it_map memory is allocated by alloc_pages() which allocates
contiguous physical memory.
Such allocation method occasionally creates a problem when there is
no big chunk of memory available (no free memory or too fragmented).
On powernv/ioda2 the default DMA window requires 16MB for it_map.
This replaces alloc_pages_node() with vzalloc_node() which allocates
contiguous block but in virtual memory. This should reduce changes of
failure but should not cause other behavioral changes as it_map is only
used by the kernel's DMA hooks/api when MMU is on.
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru >
Reviewed-by: David Gibson <david@gibson.dropbear.id.au >
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au >
Link: https://lore.kernel.org/r/20210216033307.69863-2-aik@ozlabs.ru
2021-04-23 01:38:04 +10:00
..
2021-04-14 23:04:44 +10:00
2021-04-14 23:04:16 +10:00
2021-04-21 22:52:33 +10:00
2021-04-14 23:04:44 +10:00
2021-04-14 23:04:44 +10:00
2020-03-25 11:50:48 +01:00
2021-04-21 22:52:33 +10:00
2021-04-14 23:04:20 +10:00
2020-10-25 14:51:49 -07:00
2020-12-11 00:10:25 +11:00
2019-06-15 16:52:06 +10:00
2020-06-02 20:59:11 +10:00
2019-05-30 11:26:32 -07:00
2020-12-05 21:49:18 +11:00
2019-06-05 17:37:06 +02:00
2020-12-04 01:01:29 +11:00
2019-05-30 11:26:32 -07:00
2021-01-29 10:05:51 +05:30
2020-05-19 00:10:39 +10:00
2020-07-26 23:34:19 +10:00
2021-02-09 00:10:49 +11:00
2020-11-27 10:33:42 +01:00
2019-05-30 11:26:32 -07:00
2021-01-29 10:05:51 +05:30
2019-11-13 19:27:40 +11:00
2020-11-02 12:54:20 +11:00
2020-08-07 18:48:15 -07:00
2019-09-14 00:01:14 +10:00
2020-10-07 22:34:47 +11:00
2020-07-26 23:34:20 +10:00
2021-04-23 01:38:04 +10:00
2021-03-29 13:22:11 +11:00
2021-04-14 23:04:43 +10:00
2019-05-30 11:26:32 -07:00
2020-05-19 00:10:37 +10:00
2021-04-14 23:04:43 +10:00
2021-04-18 23:55:12 +10:00
2021-04-22 20:59:04 +10:00
2020-12-04 01:01:22 +11:00
2021-03-29 13:22:05 +11:00
2019-11-13 19:27:40 +11:00
2021-04-21 22:52:31 +10:00
2021-03-29 13:22:10 +11:00
2021-03-29 13:22:10 +11:00
2021-03-29 13:22:09 +11:00
2020-12-09 23:48:14 +11:00
2021-04-21 22:52:31 +10:00
2021-03-29 13:22:10 +11:00
2021-03-29 13:22:12 +11:00
2021-04-03 21:21:41 +11:00
2020-12-11 00:09:10 +11:00
2021-03-29 13:22:10 +11:00
2019-05-30 11:26:32 -07:00
2021-04-08 21:17:45 +10:00
2021-03-29 13:22:10 +11:00
2020-11-24 16:47:35 +01:00
2020-05-07 17:25:54 +10:00
2021-04-17 22:20:19 +10:00
2020-06-09 09:39:13 -07:00
2019-05-30 11:26:32 -07:00
2020-12-04 01:01:09 +11:00
2021-04-23 01:38:04 +10:00
2021-04-21 22:52:32 +10:00
2020-06-02 10:59:10 -07:00
2021-04-03 21:22:21 +11:00
2021-03-29 13:22:15 +11:00
2020-11-13 12:14:55 -05:00
2020-09-08 11:52:34 +02:00
2019-09-14 00:04:40 +10:00
2019-09-14 00:04:40 +10:00
2020-10-08 21:17:13 +11:00
2021-04-22 20:59:15 +10:00
2021-02-22 14:34:00 -08:00
2020-12-04 01:01:23 +11:00
2021-04-21 22:52:32 +10:00
2021-03-29 13:22:17 +11:00
2021-03-29 13:22:17 +11:00
2020-06-02 20:59:11 +10:00
2020-05-11 23:15:14 +10:00
2020-06-17 10:57:41 -07:00
2021-04-14 23:04:13 +10:00
2019-05-30 11:26:32 -07:00
2019-08-30 09:40:15 +10:00
2020-06-05 12:39:30 -07:00
2020-07-26 23:34:19 +10:00
2021-04-21 22:52:32 +10:00
2021-04-21 22:52:32 +10:00
2020-11-19 14:50:14 +11:00
2019-08-22 23:11:48 +10:00
2020-06-05 12:39:30 -07:00
2021-02-09 00:01:05 +11:00
2020-01-06 16:25:29 +11:00
2021-02-03 09:46:36 +11:00
2020-05-18 21:58:44 +10:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2020-04-04 21:40:57 +11:00
2020-02-04 03:05:26 +00:00
2021-04-17 22:20:19 +10:00
2019-10-29 15:12:17 +11:00
2021-03-24 14:09:29 +11:00
2021-04-17 10:40:51 +10:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2020-02-04 03:05:26 +00:00
2020-06-09 09:39:13 -07:00
2021-04-14 23:04:16 +10:00
2021-04-14 23:04:16 +10:00
2020-07-16 13:12:38 +10:00
2020-07-16 14:49:53 +10:00
2021-04-14 23:04:13 +10:00
2019-11-13 00:33:22 +11:00
2019-11-13 00:33:22 +11:00
2021-03-29 13:22:06 +11:00
2021-04-18 23:19:29 +10:00
2021-03-29 13:22:14 +11:00
2021-02-09 00:10:50 +11:00
2021-04-14 23:04:44 +10:00
2021-04-14 23:04:44 +10:00
2021-02-09 00:02:12 +11:00
2021-04-03 21:22:19 +11:00
2021-04-17 22:46:31 +10:00
2021-03-29 13:22:16 +11:00
2019-06-14 10:48:56 +02:00
2020-06-02 20:59:11 +10:00
2019-06-19 17:11:22 +02:00
2019-06-19 17:11:22 +02:00
2019-05-30 11:26:32 -07:00
2021-02-11 23:35:07 +11:00
2021-03-26 23:19:42 +11:00
2020-09-18 20:05:24 +10:00
2019-05-30 11:26:32 -07:00
2021-04-14 23:04:16 +10:00
2021-02-09 00:10:49 +11:00
2021-02-09 00:10:49 +11:00
2020-10-06 23:22:25 +11:00
2021-04-17 22:20:19 +10:00
2019-08-30 09:40:15 +10:00
2019-05-30 11:26:32 -07:00
2019-10-11 19:33:25 +11:00
2021-03-29 12:52:24 +11:00
2021-01-30 22:23:42 +11:00
2021-01-30 22:23:42 +11:00
2021-04-14 23:04:44 +10:00
2020-05-19 00:10:37 +10:00
2021-03-29 13:22:05 +11:00
2021-01-20 15:58:19 +11:00
2021-02-09 00:10:50 +11:00