summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-04-04bcachefs: Fixes for 4.19bcachefs-v4.19-backport-compatKent Overstreet
2021-04-04Merge with 8eb434efa5 bcachefs: Use x-macros for compat feature bitsKent Overstreet
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2020-12-14fixup! bcachefs: Always check if we need disk res in extent update pathKent Overstreet
2020-12-10bcachefs: Fixes for 4.19Kent Overstreet
2020-12-10Merge with 55e26c434e bcachefs: Always check if we need disk res in extent ↵Kent Overstreet
update path
2020-12-10srcu: Provide polling interfaces for Tree SRCU grace periodsPaul E. McKenney
There is a need for a polling interface for SRCU grace periods, so this commit supplies get_state_synchronize_srcu(), start_poll_synchronize_srcu(), and poll_state_synchronize_srcu() for this purpose. The first can be used if future grace periods are inevitable (perhaps due to a later call_srcu() invocation), the second if future grace periods might not otherwise happen, and the third to check if a grace period has elapsed since the corresponding call to either of the first two. As with get_state_synchronize_rcu() and cond_synchronize_rcu(), the return value from either get_state_synchronize_srcu() or start_poll_synchronize_srcu() must be passed in to a later call to poll_state_synchronize_srcu(). Link: https://lore.kernel.org/rcu/20201112201547.GF3365678@moria.home.lan/ Reported-by: Kent Overstreet <kent.overstreet@gmail.com> [ paulmck: Add EXPORT_SYMBOL_GPL() per kernel test robot feedback. ] [ paulmck: Apply feedback from Neeraj Upadhyay. ] Link: https://lore.kernel.org/lkml/20201117004017.GA7444@paulmck-ThinkPad-P72/ Reviewed-by: Neeraj Upadhyay <neeraju@codeaurora.org> Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
2020-12-10srcu: Provide internal interface to start a Tree SRCU grace periodPaul E. McKenney
There is a need for a polling interface for SRCU grace periods. This polling needs to initiate an SRCU grace period without having to queue (and manage) a callback. This commit therefore splits the Tree SRCU __call_srcu() function into callback-initialization and queuing/start-grace-period portions, with the latter in a new function named srcu_gp_start_if_needed(). This function may be passed a NULL callback pointer, in which case it will refrain from queuing anything. Why have the new function mess with queuing? Locking considerations, of course! Link: https://lore.kernel.org/rcu/20201112201547.GF3365678@moria.home.lan/ Reported-by: Kent Overstreet <kent.overstreet@gmail.com> Reviewed-by: Neeraj Upadhyay <neeraju@codeaurora.org> Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
2020-11-07bcachefs: Fixes for 4.19Kent Overstreet
2020-11-07Merge with 1d669389f7: bcachefs: use a radix tree for inum bitmap in fsckKent Overstreet
2020-09-10bcachefs: Fixes for 4.19Kent Overstreet
2020-09-07Merge with fb2821e726bcachefs: Don't fail mount if device has been removedKent Overstreet
2020-07-27bcachefs: Fixes for 4.19Kent Overstreet
2020-07-27Merge with 6288f1b609 bcachefs: Convert various code to printbufKent Overstreet
2020-06-29bcachefs: Fixes for 4.19Kent Overstreet
2020-06-29Merge with b7020ae929 bcachefs: Refactor dio write code to reinit bch_write_opKent Overstreet
2020-05-13bcachefs: Fixes for 4.19Kent Overstreet
2020-05-13Merge with 91fedfccb2 bcachefs: Fix setquotaKent Overstreet
2020-05-06bcachefs: Fixes for 4.19Kent Overstreet
2020-05-06Merge with d7dbd2ce12 bcachefs: Add some printks for error pathsKent Overstreet
2020-05-06bcachefs: Fixes for 4.19Kent Overstreet
2020-05-06Merge with e5ebdf1e41 bcachefs: Add a few tracepointsKent Overstreet
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2020-05-06bcachefs: Fixes for 4.19Kent Overstreet
2020-05-06Merge with e4871e8f27 bcachefs: Fix a deadlock on starting an interior btree ↵Kent Overstreet
update Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2020-05-06bcachefs: Fixes for 4.19Kent Overstreet
2020-05-06Merge with fe198a9f39) bcachefs: Improve tracepoints slightly in commit pathKent Overstreet
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2020-05-06bcachefs: Fixes for 4.19Kent Overstreet
2020-05-06mm: Add a mechanism to disable faults for a specific mappingKent Overstreet
This will be used to prevent a nasty cache coherency issue for O_DIRECT writes; O_DIRECT writes need to shoot down the range of the page cache corresponding to the part of the file being written to - but, if the file is mapped in, userspace can pass in an address in that mapping to pwrite(), causing those pages to be faulted back into the page cache in get_user_pages(). Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2020-05-06Revert "mm: pagecache add lock"Kent Overstreet
This reverts commit 8675f74ac343b24c14b3991dc6f999c138723eec.
2020-05-06Merge with 1a2bb21f21 bcachefs: Put inline data behind a mount option for nowKent Overstreet
2020-05-06Merge with 131853c881 bcachefs: Switch to macro for bkey_opsKent Overstreet
2020-05-06bcachefs: Fixes for 4.19Kent Overstreet
2020-05-06Merge with dd444a83ea bcachefs: Drop unused arg to bch2_open_buckets_stop_dev()Kent Overstreet
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2020-05-06bcachefs: Fixes for 4.19Kent Overstreet
2020-05-06Merge with ebc9749562 bcachefs: Fix for building with old gccKent Overstreet
2020-05-06Merge with 1f431b384d bcachefs: Refactor trans_(get|update)_keyKent Overstreet
2020-05-06bcachefs: Initial commitKent Overstreet
Fork of drivers/md/bcache Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2020-05-06Dynamic fault injectionKent Overstreet
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2020-05-06closures: closure_wait_event()Kent Overstreet
2020-05-06bcache: move closures to lib/Kent Overstreet
Prep work for bcachefs - being a fork of bcache it also uses closures Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2020-05-06bcache: optimize continue_at_nobarrier()Kent Overstreet
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2020-05-06block: optimize bvec_iter_advance()Kent Overstreet
This results in fewer branches/cmov instructions in the inner loop Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2020-05-06add_to_page_cache_lru_vec()Kent Overstreet
2020-05-06add_to_page_cache_vec()Kent Overstreet
2020-05-06page_cache_tree_insert_vec()Kent Overstreet
2020-05-06radix tree: __radix_tree_create2Kent Overstreet
2020-05-06fs: kill add_to_page_cache_locked()Kent Overstreet
No longer has any users, so remove it
2020-05-06cifs: convert to add_to_page_cache()Kent Overstreet
2020-05-06mm: optimize __do_page_cache_readahead()Kent Overstreet
2020-05-06fs: generic_file_buffered_read() now uses find_get_pages_contigKent Overstreet
Convert generic_file_buffered_read() to get pages to read from in batches, and then copy data to userspace from many pages at once - in particular, we now don't touch any cachelines that might be contended while we're in the loop to copy data to userspace. This is is a performance improvement on workloads that do buffered reads with large blocksizes, and a very large performance improvement if that file is also being accessed concurrently by different threads. On smaller reads (512 bytes), there's a very small performance improvement (1%, within the margin of error). Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2020-05-06fs: Break generic_file_buffered_read up into multiple functionsKent Overstreet
This is prep work for changing generic_file_buffered_read() to use find_get_pages_contig() to batch up all the pagecache lookups. This patch should be functionally identical to the existing code and changes as little as of the flow control as possible. More refactoring could be done, this patch is intended to be relatively minimal. Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>