maxv
b7edd3d132
Add Kernel Concurrency Sanitizer (kCSan) support. This sanitizer allows us
...
to detect race conditions at runtime. It is a variation of TSan that is
easy to implement and more suited to kernel internals, albeit theoretically
less precise than TSan's happens-before.
We do basically two things:
- On every KCSAN_NACCESSES (=2000) memory accesses, we create a cell
describing the access, and delay the calling CPU (10ms).
- On all memory accesses, we verify if the memory we're reading/writing
is referenced in a cell already.
The combination of the two means that, if for example cpu0 does a read that
is selected and cpu1 does a write at the same address, kCSan will fire,
because cpu1's write collides with cpu0's read cell.
The coverage of the instrumentation is the same as that of kASan. Also, the
code is organized in a way similar to kASan, so it is easy to add support
for more architectures than amd64. kCSan is compatible with KCOV.
Reviewed by Kamil.
2019-11-05 20:19:17 +00:00
..
2017-05-04 11:03:27 +00:00
2017-05-04 11:03:27 +00:00
2017-05-04 11:03:27 +00:00
2017-05-04 11:03:27 +00:00
2017-05-04 11:01:16 +00:00
2019-07-20 18:23:05 +00:00
2019-01-22 03:44:44 +00:00
2019-09-16 11:11:34 +00:00
2019-09-15 20:21:12 +00:00
2017-07-02 16:41:32 +00:00
2019-11-05 20:19:17 +00:00
2019-10-03 22:29:17 +00:00
2017-10-31 12:37:23 +00:00
2019-01-15 07:11:23 +00:00
2019-10-21 14:23:53 +00:00
2019-05-26 19:23:04 +00:00
2018-09-03 16:29:22 +00:00
2019-06-24 06:24:33 +00:00
2018-09-03 21:29:30 +00:00
2018-01-30 07:52:22 +00:00
2019-10-16 18:29:49 +00:00
2019-10-06 02:04:26 +00:00
2019-01-13 00:11:29 +00:00
2018-05-28 21:04:59 +00:00
2019-02-20 19:42:14 +00:00
2018-09-18 01:25:09 +00:00
2019-10-18 19:43:49 +00:00
2019-10-12 10:55:23 +00:00
2019-10-03 22:48:44 +00:00
2019-10-12 10:55:23 +00:00
2019-10-09 05:59:51 +00:00
2019-10-16 18:29:49 +00:00
2017-11-04 22:17:55 +00:00
2018-01-09 22:58:45 +00:00
2018-09-03 16:29:22 +00:00
2019-05-09 05:00:31 +00:00
2019-10-06 15:11:16 +00:00
2019-04-07 09:20:04 +00:00
2019-01-27 02:08:33 +00:00
2019-08-08 18:08:41 +00:00
2018-02-05 04:25:04 +00:00
2019-05-09 05:00:31 +00:00
2018-10-29 22:02:25 +00:00
2017-06-25 04:10:47 +00:00
2019-04-04 12:26:45 +00:00
2018-04-08 11:46:13 +00:00
2019-10-12 10:55:23 +00:00
2019-10-06 15:11:16 +00:00
2018-09-14 01:55:19 +00:00
2019-04-05 00:33:21 +00:00
2019-02-03 03:19:25 +00:00
2019-09-29 12:07:52 +00:00
2017-06-01 02:45:05 +00:00
2018-02-05 04:25:04 +00:00
2019-05-09 05:00:31 +00:00
2019-03-14 19:51:49 +00:00
2019-10-21 17:07:00 +00:00
2019-10-06 15:11:16 +00:00
2019-10-08 07:33:14 +00:00
2019-09-16 00:01:16 +00:00
2019-10-03 22:48:44 +00:00
2019-10-06 15:11:16 +00:00
2019-07-03 17:31:32 +00:00
2019-10-06 15:11:16 +00:00
2019-01-17 10:18:52 +00:00
2019-10-05 12:57:40 +00:00
2019-03-10 13:44:49 +00:00
2019-07-07 15:12:59 +00:00
2019-03-01 03:03:19 +00:00
2019-10-16 18:29:49 +00:00
2019-10-13 22:31:19 +00:00
2018-09-03 16:29:22 +00:00
2018-09-03 16:29:22 +00:00
2019-10-10 13:45:14 +00:00
2018-12-01 02:08:16 +00:00
2017-02-13 16:53:41 +00:00
2019-02-17 23:17:41 +00:00
2019-04-07 16:27:41 +00:00
2019-09-02 20:09:29 +00:00
2019-11-05 20:19:17 +00:00
2017-11-07 18:35:57 +00:00
2019-05-17 18:50:40 +00:00
2019-02-20 10:02:51 +00:00
2019-09-30 23:23:59 +00:00
2019-04-07 02:58:02 +00:00
2019-01-27 02:08:33 +00:00
2018-11-24 17:40:37 +00:00
2019-04-08 13:05:23 +00:00
2019-08-15 09:04:22 +00:00
2019-03-12 00:25:44 +00:00
2018-01-28 22:24:58 +00:00
2019-05-22 08:47:02 +00:00
2019-10-16 18:29:49 +00:00
2019-05-26 05:41:45 +00:00
2019-07-26 05:39:55 +00:00
2018-12-10 07:24:49 +00:00
2019-08-15 12:06:42 +00:00
2017-06-01 02:45:05 +00:00
2018-06-23 14:22:30 +00:00
2017-11-17 09:26:36 +00:00
2019-05-28 07:39:16 +00:00
2018-09-03 16:29:22 +00:00
2019-05-17 03:34:26 +00:00
2019-03-19 08:16:51 +00:00
2018-02-08 09:05:16 +00:00
2017-10-16 15:03:57 +00:00
2019-09-18 15:33:32 +00:00
2019-10-16 18:29:49 +00:00
2019-05-21 04:57:02 +00:00
2019-04-06 03:06:23 +00:00
2019-10-06 15:11:16 +00:00
2019-05-17 03:34:26 +00:00
2017-06-01 02:45:05 +00:00
2019-01-27 02:08:33 +00:00
2019-01-20 21:26:13 +00:00
2019-02-04 08:00:27 +00:00
2019-10-04 14:17:07 +00:00
2018-09-16 23:18:55 +00:00
2019-10-16 18:29:49 +00:00
2018-06-13 05:26:12 +00:00
2019-10-06 15:11:16 +00:00
2019-02-10 17:13:33 +00:00
2019-09-15 16:25:57 +00:00
2017-06-01 02:45:05 +00:00
2019-09-30 21:13:33 +00:00
2019-03-01 11:06:55 +00:00
2019-09-15 20:51:03 +00:00
2019-04-26 17:24:23 +00:00
2017-04-13 07:58:45 +00:00
2018-12-09 23:05:02 +00:00
2019-10-16 18:29:49 +00:00
2017-12-17 20:59:27 +00:00
2019-09-20 15:00:47 +00:00
2019-09-08 07:00:20 +00:00
2018-12-04 00:18:05 +00:00
2018-12-02 21:00:13 +00:00
2019-09-22 23:03:20 +00:00
2019-09-22 23:03:20 +00:00
2019-09-22 22:59:37 +00:00
2019-09-22 22:59:37 +00:00
2019-09-22 23:03:20 +00:00
2019-08-07 00:38:01 +00:00
2019-10-04 23:20:22 +00:00
2019-08-07 00:38:01 +00:00
2019-10-09 17:47:13 +00:00
2019-03-01 11:06:55 +00:00
2019-02-15 18:57:15 +00:00
2017-06-01 02:45:05 +00:00
2019-03-01 11:06:55 +00:00
2018-12-27 07:56:43 +00:00
2019-10-19 06:36:47 +00:00
2018-10-18 05:44:19 +00:00
2019-03-01 03:03:19 +00:00
2019-07-11 17:30:44 +00:00
2019-10-14 16:27:03 +00:00
2018-11-12 09:21:13 +00:00
2019-07-29 09:42:17 +00:00
2019-08-26 10:24:39 +00:00
2019-09-15 17:37:25 +00:00
2019-02-10 17:13:33 +00:00
2019-09-14 21:23:34 +00:00
2019-03-28 18:12:24 +00:00
2019-07-18 09:39:40 +00:00
2019-08-19 09:32:42 +00:00
2019-09-22 22:59:37 +00:00
2019-09-26 01:34:16 +00:00
2019-06-17 08:07:27 +00:00
2019-02-20 10:07:27 +00:00
2019-09-15 20:24:25 +00:00
2018-12-10 21:19:33 +00:00
2019-10-11 08:05:19 +00:00
2019-10-11 08:04:52 +00:00
2019-10-11 08:04:52 +00:00