Jason Gunthorpe
c7d8b7824f
hmm: use mmu_notifier_get/put for 'struct hmm'
...
This is a significant simplification, it eliminates all the remaining
'hmm' stuff in mm_struct, eliminates krefing along the critical notifier
paths, and takes away all the ugly locking and abuse of page_table_lock.
mmu_notifier_get() provides the single struct hmm per struct mm which
eliminates mm->hmm.
It also directly guarantees that no mmu_notifier op callback is callable
while concurrent free is possible, this eliminates all the krefs inside
the mmu_notifier callbacks.
The remaining krefs in the range code were overly cautious, drivers are
already not permitted to free the mirror while a range exists.
Link: https://lore.kernel.org/r/20190806231548.25242-6-jgg@ziepe.ca
Reviewed-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Ralph Campbell <rcampbell@nvidia.com >
Tested-by: Ralph Campbell <rcampbell@nvidia.com >
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com >
2019-08-20 09:35:02 -03:00
..
2019-07-20 10:45:15 -07:00
2019-07-19 10:42:02 -07:00
2018-10-24 20:55:56 -04:00
2019-05-21 10:50:46 +02:00
2019-07-20 12:09:52 -07:00
2019-07-19 11:35:08 -07:00
2019-06-03 16:18:12 +02:00
2019-07-08 11:22:57 -07:00
2019-07-11 15:30:05 -07:00
2019-07-15 08:53:27 -03:00
2019-07-15 20:44:49 -07:00
2019-05-21 11:28:45 +02:00
2019-06-28 19:46:47 +02:00
2019-07-20 10:20:27 -07:00
2019-07-10 20:37:49 +02:00
2019-07-19 12:18:46 -07:00
2019-04-29 16:48:03 +02:00
2019-04-04 21:04:13 -04:00
2019-06-05 17:37:17 +02:00
2019-05-30 11:26:37 -07:00
2019-04-26 13:51:03 -04:00
2019-05-30 11:26:35 -07:00
2019-07-08 18:55:42 -07:00
2019-07-08 18:55:42 -07:00
2019-07-08 18:55:42 -07:00
2019-05-28 17:46:43 -04:00
2019-06-05 17:37:17 +02:00
2018-10-31 08:54:14 -07:00
2019-01-25 11:22:43 -08:00
2019-06-19 17:09:55 +02:00
2019-03-07 18:32:02 -08:00
2019-05-21 10:50:45 +02:00
2019-06-05 17:36:37 +02:00
2019-07-08 10:39:56 -07:00
2019-06-19 17:09:06 +02:00
2019-05-21 10:50:45 +02:00
2019-07-08 19:19:37 -07:00
2019-05-21 11:52:39 +02:00
2019-05-31 10:38:57 -07:00
2019-05-30 11:26:35 -07:00
2019-06-03 15:49:06 +02:00
2019-08-20 09:35:02 -03:00
2019-05-21 10:50:45 +02:00
2019-06-03 11:50:18 +02:00
2019-07-09 10:10:52 +09:00
2019-05-21 10:50:45 +02:00
2019-07-12 11:05:40 -07:00
2019-05-21 10:50:45 +02:00
2019-06-17 12:09:22 +02:00
2019-05-21 10:50:45 +02:00
2019-05-21 10:50:46 +02:00
2019-05-21 10:50:46 +02:00
2019-05-21 10:50:46 +02:00
2019-07-18 23:10:57 +02:00
2019-03-07 18:32:02 -08:00
2019-06-19 17:09:06 +02:00
2019-07-08 20:28:59 -07:00
2019-06-19 17:09:06 +02:00
2019-05-24 20:16:01 +02:00
2019-07-18 11:51:00 -07:00
2019-05-30 11:26:39 -07:00
2019-05-21 10:50:45 +02:00
2019-06-05 17:37:17 +02:00
2019-05-24 20:16:01 +02:00
2019-07-18 17:08:07 -07:00
2019-05-24 17:27:11 +02:00
2019-05-24 17:27:11 +02:00
2019-07-18 12:06:57 -07:00
2019-05-21 10:50:45 +02:00
2019-06-05 17:37:17 +02:00
2019-07-18 13:39:54 +08:00
2019-07-15 11:03:01 -03:00
2019-05-30 11:26:35 -07:00
2019-07-18 17:08:07 -07:00
2019-07-16 19:23:24 -07:00
2019-05-21 10:50:45 +02:00
2019-07-16 19:23:24 -07:00
2019-05-21 10:50:45 +02:00
2019-03-12 13:27:20 -07:00
2019-07-18 17:08:06 -07:00
2019-05-27 09:36:28 -05:00
2019-05-29 09:31:44 -05:00
2019-07-16 19:23:24 -07:00
2019-07-20 11:27:16 +02:00
2019-05-21 10:50:45 +02:00
2019-07-08 11:01:13 -07:00
2018-12-05 19:31:44 -08:00
2019-07-18 16:47:24 +02:00
2019-06-15 12:25:55 +02:00
2019-06-21 01:54:53 +02:00
2019-06-01 15:51:31 -07:00
2019-01-04 13:13:47 -08:00
2019-07-18 17:08:07 -07:00
2019-05-30 11:26:37 -07:00
2019-05-21 11:52:39 +02:00
2019-05-28 09:06:09 -07:00
2019-07-18 11:51:00 -07:00
2019-05-30 11:26:37 -07:00
2019-07-18 17:08:07 -07:00
2019-05-21 10:50:45 +02:00
2019-06-23 14:26:26 +02:00
2019-07-08 19:36:47 -07:00
2019-05-21 10:50:45 +02:00
2019-07-08 19:36:47 -07:00
2019-06-05 17:37:17 +02:00
2019-06-05 17:37:17 +02:00
2019-04-19 09:46:05 -07:00
2019-04-18 14:05:51 +02:00
2019-04-16 16:55:15 +02:00
2019-06-27 14:12:19 -07:00