Matthew Wilcox
4bcde29edc
BACKPORT: xarray: Replace exceptional entries
...
Introduce xarray value entries and tagged pointers to replace radix
tree exceptional entries. This is a slight change in encoding to allow
the use of an extra bit (we can now store BITS_PER_LONG - 1 bits in a
value entry). It is also a change in emphasis; exceptional entries are
intimidating and different. As the comment explains, you can choose
to store values or pointers in the xarray and they are both first-class
citizens.
Change-Id: I24a3019e30f4cfe176e5d750b3466317d62e60bc
Signed-off-by: Matthew Wilcox <willy@infradead.org >
Reviewed-by: Josef Bacik <jbacik@fb.com >
2026-05-31 11:15:37 +01:00
..
2023-01-19 21:49:59 +09:00
2025-11-21 22:57:50 +00:00
2026-04-09 14:44:43 +08:00
2025-07-17 10:07:57 +02:00
2026-04-22 07:08:43 +01:00
2025-08-31 10:10:00 +01:00
2026-05-12 18:00:02 +01:00
2026-02-06 18:23:19 +02:00
2023-05-30 12:42:14 +01:00
2026-02-02 18:01:34 -05:00
2025-09-02 08:35:50 +00:00
2025-08-28 03:24:29 +03:00
2026-02-06 18:23:19 +02:00
2025-10-16 21:01:06 +01:00
2025-09-30 21:35:03 +01:00
2025-08-20 17:19:08 +01:00
2025-12-22 04:34:10 +01:00
2025-09-22 10:17:52 +02:00
2025-06-11 10:19:25 +02:00
2024-09-04 13:12:59 +02:00
2023-06-14 09:45:37 +00:00
2025-01-10 13:09:21 +02:00
2025-08-28 03:27:41 +03:00
2025-08-28 03:27:45 +03:00
2026-02-02 18:01:33 -05:00
2026-02-02 18:01:35 -05:00
2025-08-28 03:28:38 +03:00
2025-08-28 03:27:13 +03:00
2026-02-02 18:01:34 -05:00
2026-02-02 18:01:35 -05:00
2025-08-28 03:27:57 +03:00
2025-08-28 03:28:11 +03:00
2025-09-08 01:34:41 -04:00
2024-01-06 18:53:38 +02:00
2025-09-08 01:35:16 -04:00
2025-03-31 10:08:57 -04:00
2025-08-28 03:24:31 +03:00
2025-08-28 03:29:06 +03:00
2025-08-28 03:26:25 +03:00
2024-12-16 01:21:42 +02:00
2025-08-28 03:26:34 +03:00
2025-12-31 12:15:33 +02:00
2025-08-28 03:26:52 +03:00
2025-08-28 03:26:52 +03:00
2026-02-06 18:23:19 +02:00
2026-02-06 18:23:19 +02:00
2025-08-28 03:26:52 +03:00
2026-01-23 15:34:20 +00:00
2025-08-28 03:28:07 +03:00
2026-04-12 13:56:45 +08:00
2023-09-19 18:11:03 +03:00
2023-12-19 09:45:25 +00:00
2024-10-01 11:50:22 +03:00
2023-04-05 11:15:42 +02:00
2025-09-30 21:35:04 +01:00
2025-08-28 03:29:12 +03:00
2025-08-28 03:26:37 +03:00
2025-10-16 21:01:10 +01:00
2025-04-14 14:16:37 +03:00
2023-05-17 11:13:06 +02:00
2025-09-02 08:35:50 +00:00
2026-05-31 11:15:37 +01:00
2026-05-31 11:15:34 +01:00
2026-05-31 11:15:35 +01:00
2026-05-31 11:15:36 +01:00
2025-10-05 09:11:31 +00:00
2024-02-23 08:12:53 +01:00
2025-02-07 03:34:24 +01:00
2023-03-07 19:31:08 +02:00
2025-08-31 10:09:52 +01:00
2024-05-17 11:42:37 +02:00
2023-09-23 10:47:59 +02:00
2025-08-28 03:25:36 +03:00
2024-09-04 13:13:08 +02:00
2025-12-31 12:15:33 +02:00
2026-01-21 21:23:37 +00:00
2025-10-16 21:01:10 +01:00
2025-08-31 10:09:52 +01:00
2026-03-20 17:35:06 +00:00
2025-04-14 14:16:37 +03:00
2024-07-19 13:17:59 +00:00
2025-04-14 14:16:37 +03:00
2025-09-30 21:35:03 +01:00
2026-01-29 12:09:34 +08:00
2023-12-11 15:30:00 +05:30
2024-05-07 22:02:57 +03:00
2025-07-17 10:08:05 +02:00
2025-10-17 15:32:06 +01:00
2024-03-26 18:22:37 -04:00
2024-05-07 22:02:57 +03:00
2025-08-20 17:09:44 +01:00
2025-08-10 15:22:49 +03:00
2025-09-30 21:35:04 +01:00
2024-08-19 05:31:56 +02:00
2025-02-07 03:34:27 +01:00
2026-03-20 13:38:05 -04:00
2026-03-20 13:38:05 -04:00
2023-09-23 10:48:11 +02:00
2023-10-10 21:44:57 +02:00
2026-02-02 18:01:36 -05:00
2023-03-11 16:31:51 +01:00
2026-03-20 13:38:05 -04:00
2026-02-02 18:01:37 -05:00
2025-10-17 18:58:06 +01:00
2025-09-02 08:35:50 +00:00
2025-09-30 21:35:04 +01:00
2025-10-16 21:01:06 +01:00
2024-06-09 02:32:30 +03:00
2023-06-28 10:15:27 +02:00
2025-08-28 03:25:44 +03:00
2025-09-30 21:35:04 +01:00
2024-12-05 11:21:28 +00:00
2026-03-20 13:40:21 -04:00
2026-05-13 00:48:26 +00:00
2026-04-28 18:54:34 +00:00
2026-04-28 18:54:34 +00:00
2024-08-19 07:25:59 +00:00
2023-03-11 16:31:35 +01:00
2025-09-30 21:35:03 +01:00
2025-10-16 21:01:06 +01:00
2026-05-04 17:32:39 +03:00
2026-05-31 11:15:36 +01:00
2025-08-28 03:26:34 +03:00
2025-10-16 21:01:06 +01:00
2025-09-30 21:35:04 +01:00
2025-08-28 03:26:34 +03:00
2025-09-02 08:35:50 +00:00
2023-10-10 21:45:00 +02:00
2025-10-16 21:01:10 +01:00
2025-08-28 03:26:29 +03:00
2025-08-28 03:28:51 +03:00
2025-09-30 21:35:04 +01:00
2025-09-08 01:35:15 -04:00
2025-09-08 01:35:15 -04:00
2025-09-02 08:35:50 +00:00
2023-01-18 11:30:49 +01:00
2023-10-25 11:16:31 +02:00
2025-09-08 01:35:14 -04:00
2025-09-30 21:35:04 +01:00
2025-08-10 15:24:11 +03:00
2025-09-08 01:34:41 -04:00
2026-04-21 04:58:22 +00:00
2025-09-30 21:35:04 +01:00
2025-10-17 15:32:07 +01:00
2025-08-28 03:26:34 +03:00
2024-10-31 21:43:13 +00:00
2025-08-28 03:27:42 +03:00
2024-06-16 13:23:35 +02:00
2025-08-31 23:56:41 +08:00
2023-10-16 15:01:41 +03:00
2025-08-28 03:24:29 +03:00
2026-03-20 13:38:05 -04:00
2023-06-21 15:39:57 +02:00
2023-06-21 15:39:57 +02:00
2026-03-20 13:38:02 -04:00
2025-05-05 15:34:17 +02:00
2025-09-30 21:35:02 +01:00
2026-01-29 12:09:30 +08:00
2025-06-11 10:19:26 +02:00
2023-09-23 10:47:58 +02:00
2025-08-28 03:26:34 +03:00
2023-02-25 11:51:51 +01:00
2024-07-05 09:00:32 +02:00
2025-09-30 21:35:03 +01:00
2025-10-16 21:01:06 +01:00
2025-10-16 21:01:06 +01:00
2025-04-03 10:09:42 +02:00
2025-08-10 15:22:49 +03:00
2025-04-04 11:11:27 +02:00
2023-09-23 10:48:11 +02:00
2025-10-05 09:11:31 +00:00
2025-09-30 21:35:04 +01:00
2025-08-28 03:27:08 +03:00
2025-10-17 15:32:06 +01:00
2025-09-30 21:35:04 +01:00
2023-02-22 12:28:07 +00:00
2025-10-16 21:01:06 +01:00
2025-10-16 21:01:06 +01:00
2025-10-16 21:01:06 +01:00
2025-10-16 21:01:06 +01:00
2023-08-11 11:45:40 +02:00
2025-03-11 08:34:59 +01:00
2023-07-11 15:03:00 +03:00
2025-09-16 13:55:10 +02:00
2023-11-20 10:29:18 +01:00
2025-08-28 03:26:34 +03:00
2025-08-28 03:27:16 +03:00
2025-08-28 03:26:18 +03:00
2025-09-02 08:35:50 +00:00
2025-08-31 10:09:54 +01:00
2025-08-28 03:26:25 +03:00
2023-12-14 13:13:51 +02:00
2024-03-26 18:22:40 -04:00
2023-10-25 11:43:43 +00:00
2023-10-25 11:16:20 +02:00
2026-05-31 11:15:37 +01:00
2023-08-30 16:31:56 +02:00
2025-10-17 19:01:57 +01:00
2026-04-28 18:54:34 +00:00
2026-01-26 16:51:55 +08:00
2025-08-28 03:28:51 +03:00
2025-08-28 03:27:50 +03:00
2025-09-30 21:35:04 +01:00
2025-08-28 03:24:59 +03:00
2025-08-28 03:24:59 +03:00
2026-05-31 11:15:34 +01:00
2024-09-12 11:02:55 +02:00
2025-08-10 15:23:28 +03:00
2023-12-14 13:13:51 +02:00
2025-09-30 21:35:04 +01:00
2025-10-16 21:01:12 +01:00
2026-02-02 18:01:34 -05:00
2025-09-30 21:35:04 +01:00
2023-08-11 11:45:22 +02:00
2024-05-02 16:17:14 +02:00
2025-08-28 03:24:22 +03:00
2023-03-22 13:27:11 +01:00
2025-10-17 19:01:57 +01:00
2026-05-04 17:32:39 +03:00
2026-02-02 18:01:33 -05:00
2026-04-28 18:54:34 +00:00
2025-08-28 03:28:07 +03:00
2025-08-28 03:28:08 +03:00
2025-08-28 03:28:56 +03:00
2025-09-30 21:35:04 +01:00
2025-08-28 03:27:09 +03:00
2025-10-16 21:01:06 +01:00
2023-05-30 12:42:13 +01:00
2024-06-01 07:55:42 +00:00
2025-08-10 15:24:00 +03:00
2026-05-31 11:15:37 +01:00
2025-12-31 12:15:33 +02:00
2025-10-16 21:01:06 +01:00
2025-08-28 03:26:34 +03:00
2025-08-28 03:27:39 +03:00
2026-02-20 13:22:28 +08:00
2023-03-07 19:31:08 +02:00
2023-05-18 15:51:07 +00:00
2025-08-28 03:24:32 +03:00
2025-08-28 03:26:34 +03:00
2023-01-18 11:30:05 +01:00
2025-08-28 03:26:29 +03:00
2025-09-02 08:35:50 +00:00
2025-08-28 03:24:22 +03:00
2023-03-22 13:27:11 +01:00
2023-07-11 15:03:00 +03:00
2025-09-02 08:35:50 +00:00
2025-10-17 17:31:44 +01:00
2025-08-28 03:28:09 +03:00
2025-08-28 03:27:30 +03:00
2024-02-23 08:12:39 +01:00
2026-05-12 18:00:02 +01:00
2025-08-20 17:19:10 +01:00
2025-08-28 03:28:30 +03:00
2025-02-07 03:34:21 +01:00
2026-02-06 18:23:19 +02:00
2025-08-28 03:25:30 +03:00
2025-08-10 15:21:53 +03:00
2025-08-31 10:10:02 +01:00
2025-08-28 03:26:34 +03:00
2023-05-17 11:13:15 +02:00
2026-04-09 14:44:46 +08:00
2023-08-25 11:24:56 +00:00
2025-08-28 03:26:34 +03:00
2025-09-30 21:35:04 +01:00
2026-05-31 11:15:37 +01:00
2025-08-28 03:29:03 +03:00