Files
linux/fs
Kent Overstreet 182c7bbfbf bcachefs: DIO write path optimization
- With BCH_WRITE_SYNC, we no longer need the completion in struct
   dio_write
 - Pull out bch2_dio_write_copy_iov() into a separate non-inline
   function, it's code that doesn't run in the common case
 - Copy mapping and inode pointers into dio_write, avoiding pointer
   chasing at the start of bch2_dio_write_loop()
 - kthread_use_mm() is not needed in the common case; move it into
   bch2_dio_write_loop_async()
 - factor out various helpers from bch2_dio_write_loop() and rework
   control flow for better icache utilization

Other small optimizations:

 - bch2_keylist_free() is only used in one place, at the end of the
   bch2_write() path - drop the reinit
 - in bch2_disk_reservation_put(), check if res->sectors is nonzero
   before touching c->online_reserved, since that will likely be a cache
   miss

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>

bcachefs: More DIO write path optimization

Better code prefetching (?)

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-10-22 17:09:45 -04:00
..
2023-08-29 17:45:22 -04:00
2023-08-31 12:07:34 -05:00
2023-06-15 13:37:53 +02:00
2023-06-28 20:35:21 -07:00
2023-08-24 16:20:30 -07:00
2023-09-11 23:59:47 -04:00
2023-07-26 14:56:07 +02:00
2023-08-08 19:36:51 +02:00
2023-08-21 13:46:25 -07:00
2023-08-14 18:48:02 +02:00
2023-10-22 17:08:07 -04:00
2023-08-19 12:12:12 +02:00
2023-10-22 17:08:07 -04:00
2023-08-19 12:12:12 +02:00
2023-07-13 10:28:04 +02:00
2023-08-15 08:32:45 +02:00
2023-08-31 12:47:15 +02:00