Konsta Hölttä
3a64fdefc4
gpu: nvgpu: domains as files for access control
...
Create device nodes for user-created scheduling domains. This helps
leverage filesystem based access control: domains can be chosen to be
available for a limited set of users on a system.
The device nodes are dynamic: they can be removed while the driver is
running normally. This is a bit different from the nodes that exist
until the driver is unloaded, so the devno/domain mapping is stored in a
separate list. The usual container_of pattern would suffer from an
unavoidable race condition if a domain file was opened while the same
domain would get removed.
As usual, domain refcounting prevents a domain from being removed. Now
the open device files hold refs and thus any open domain files prevent a
domain from getting removed, in addition to the userspace-invisible ref
that is taken when a TSG is bound to a domain.
While at it, make the query ioctl guarded by the sched domain mutex, as
domains might technically get added or removed during the querying code.
Jira NVGPU-6788
Change-Id: Ief2a09a442c4e70f1f2be8a32359341071d74659
Signed-off-by: Konsta Hölttä <kholtta@nvidia.com >
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2651164
Reviewed-by: Alex Waterman <alexw@nvidia.com >
GVS: Gerrit_Virtual_Submit
2022-03-01 00:08:49 -08:00
..
2022-02-14 22:00:33 -08:00
2022-02-17 04:58:32 -08:00
2020-12-15 14:10:29 -06:00
2020-12-15 14:10:29 -06:00
2020-12-15 14:10:29 -06:00
2020-12-15 14:10:29 -06:00
2020-12-15 14:10:29 -06:00
2022-02-04 22:02:33 -08:00
2020-12-15 14:13:28 -06:00
2020-12-15 14:13:48 -06:00
2021-11-25 08:16:31 -08:00
2021-11-25 08:16:31 -08:00
2021-11-25 08:16:31 -08:00
2018-06-15 17:47:31 -07:00
2021-09-02 11:42:08 -07:00
2019-01-31 12:04:10 -08:00
2022-02-09 20:50:21 -08:00
2022-02-09 20:50:21 -08:00
2022-02-09 20:50:21 -08:00
2022-02-09 20:50:21 -08:00
2022-02-09 20:50:21 -08:00
2022-02-09 20:50:21 -08:00
2022-02-09 20:50:21 -08:00
2022-02-09 20:50:21 -08:00
2022-02-09 20:50:21 -08:00
2018-09-05 04:51:40 -07:00
2020-12-15 14:13:28 -06:00
2019-07-26 04:07:01 -07:00
2020-12-15 14:13:28 -06:00
2019-06-11 09:46:24 -07:00
2022-02-09 20:50:21 -08:00
2022-02-09 20:50:21 -08:00
2022-02-09 20:50:21 -08:00
2022-02-09 20:50:21 -08:00
2021-12-10 13:25:05 -08:00
2021-09-10 16:02:43 -07:00
2022-02-11 18:27:39 -08:00
2022-02-09 20:50:21 -08:00
2022-02-09 20:50:21 -08:00
2022-02-09 20:50:21 -08:00
2022-02-09 20:50:21 -08:00
2022-02-09 20:50:21 -08:00
2019-01-10 20:09:38 -08:00
2018-09-05 04:51:50 -07:00
2022-02-09 20:50:21 -08:00
2022-02-09 20:50:21 -08:00
2020-12-15 14:13:28 -06:00
2019-02-11 20:55:07 -08:00
2022-02-09 20:50:21 -08:00
2022-02-09 20:50:21 -08:00
2021-08-28 06:56:24 -07:00
2019-06-13 23:05:43 -07:00
2020-12-15 14:13:28 -06:00
2019-02-01 09:45:57 -08:00
2022-02-09 20:50:21 -08:00
2022-02-09 20:50:21 -08:00
2021-09-10 16:02:43 -07:00
2021-11-27 10:08:14 -08:00
2021-09-02 11:42:08 -07:00
2020-12-15 14:13:28 -06:00
2020-12-15 14:13:28 -06:00
2022-02-17 04:58:32 -08:00
2021-11-18 03:57:18 -08:00
2018-06-15 17:47:31 -07:00
2021-08-11 01:55:08 -07:00
2020-12-15 14:13:28 -06:00
2020-12-15 14:13:28 -06:00
2019-02-20 23:05:04 -08:00
2021-10-27 21:18:19 -07:00
2021-05-10 02:53:39 -07:00
2021-04-19 19:45:24 -07:00
2021-06-28 22:39:06 -07:00
2018-06-15 17:47:31 -07:00
2021-05-18 18:18:25 -07:00
2020-12-15 14:13:28 -06:00
2022-02-09 20:50:21 -08:00
2022-02-27 18:10:41 -08:00
2018-10-29 08:04:25 -07:00
2022-01-28 04:50:12 -08:00
2020-12-15 14:13:28 -06:00
2022-03-01 00:08:49 -08:00
2022-03-01 00:08:49 -08:00
2022-02-02 21:47:33 -08:00
2021-06-27 05:02:58 -07:00
2021-12-15 06:05:25 -08:00
2020-12-15 14:13:48 -06:00
2022-03-01 00:08:43 -08:00
2022-03-01 00:08:43 -08:00
2021-05-10 10:08:13 -07:00
2022-02-11 18:27:39 -08:00
2021-11-08 15:08:32 -08:00
2020-12-15 14:13:28 -06:00
2021-11-12 07:31:15 -08:00
2021-04-28 11:19:19 -07:00
2021-04-19 19:45:24 -07:00
2018-06-15 17:47:31 -07:00
2022-02-09 00:38:21 -08:00
2021-08-23 05:27:50 -07:00
2022-02-01 09:50:45 -08:00
2020-12-15 14:13:28 -06:00
2021-06-28 18:09:14 -07:00
2021-10-11 12:29:09 -07:00
2020-12-15 14:13:48 -06:00
2021-10-11 12:29:09 -07:00
2020-12-15 14:13:28 -06:00
2020-12-15 14:13:28 -06:00
2018-07-26 00:06:07 -07:00
2020-12-15 14:13:28 -06:00
2020-12-15 14:13:28 -06:00
2020-12-15 14:13:28 -06:00
2020-12-15 14:13:28 -06:00
2020-12-15 14:13:28 -06:00
2020-12-15 14:13:48 -06:00
2022-03-01 00:08:31 -08:00
2019-04-22 05:25:48 -07:00
2018-08-29 20:34:34 -07:00
2018-09-09 17:22:24 -07:00
2018-08-29 20:34:34 -07:00
2018-09-09 17:22:24 -07:00
2018-09-09 17:22:24 -07:00
2019-07-26 04:07:01 -07:00
2018-09-05 04:51:36 -07:00
2019-07-26 04:07:01 -07:00
2018-11-08 19:35:09 -08:00
2020-12-15 14:13:28 -06:00
2018-08-29 20:34:34 -07:00
2019-05-15 22:29:40 -07:00
2020-12-15 14:13:28 -06:00
2018-10-12 17:35:10 +05:30
2021-09-16 21:45:43 -07:00
2020-12-15 14:13:28 -06:00
2021-12-18 02:50:42 -08:00
2022-01-05 20:57:40 -08:00
2018-06-15 17:47:31 -07:00
2021-12-03 08:43:52 -08:00
2022-01-12 07:40:37 -08:00
2021-06-08 21:54:23 -07:00
2021-09-25 15:47:25 -07:00
2021-10-07 17:53:30 -07:00
2021-04-21 10:15:20 -07:00
2018-06-15 17:47:31 -07:00
2021-11-26 08:46:00 -08:00
2018-06-15 17:47:31 -07:00
2021-05-25 14:30:30 -07:00
2020-12-15 14:13:28 -06:00
2021-04-28 19:15:31 -07:00
2021-04-28 19:15:31 -07:00
2022-02-27 18:10:41 -08:00
2021-11-19 08:08:11 -08:00
2020-12-15 14:13:28 -06:00
2019-05-06 02:56:53 -07:00
2020-12-15 14:13:28 -06:00
2020-12-15 14:13:28 -06:00
2020-12-15 14:13:28 -06:00
2022-02-22 05:57:37 -08:00
2018-06-15 17:47:31 -07:00
2020-12-15 14:10:29 -06:00
2022-02-11 18:27:39 -08:00
2022-02-09 20:50:21 -08:00
2022-01-13 12:35:36 -08:00
2022-01-05 20:57:32 -08:00