#
36ec807b |
| 20-Sep-2024 |
Dmitry Torokhov <dmitry.torokhov@gmail.com> |
Merge branch 'next' into for-linus
Prepare input updates for 6.12 merge window.
|
Revision tags: v6.11, v6.11-rc7 |
|
#
f057b572 |
| 06-Sep-2024 |
Dmitry Torokhov <dmitry.torokhov@gmail.com> |
Merge branch 'ib/6.11-rc6-matrix-keypad-spitz' into next
Bring in changes removing support for platform data from matrix-keypad driver.
|
Revision tags: v6.11-rc6, v6.11-rc5, v6.11-rc4, v6.11-rc3, v6.11-rc2 |
|
#
66e72a01 |
| 29-Jul-2024 |
Jerome Brunet <jbrunet@baylibre.com> |
Merge tag 'v6.11-rc1' into clk-meson-next
Linux 6.11-rc1
|
#
ee057c8c |
| 14-Aug-2024 |
Steven Rostedt <rostedt@goodmis.org> |
Merge tag 'v6.11-rc3' into trace/ring-buffer/core
The "reserve_mem" kernel command line parameter has been pulled into v6.11. Merge the latest -rc3 to allow the persistent ring buffer memory to be a
Merge tag 'v6.11-rc3' into trace/ring-buffer/core
The "reserve_mem" kernel command line parameter has been pulled into v6.11. Merge the latest -rc3 to allow the persistent ring buffer memory to be able to be mapped at the address specified by the "reserve_mem" command line parameter.
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
show more ...
|
#
c8faf11c |
| 30-Jul-2024 |
Tejun Heo <tj@kernel.org> |
Merge tag 'v6.11-rc1' into for-6.12
Linux 6.11-rc1
|
#
ed7171ff |
| 16-Aug-2024 |
Lucas De Marchi <lucas.demarchi@intel.com> |
Merge drm/drm-next into drm-xe-next
Get drm-xe-next on v6.11-rc2 and synchronized with drm-intel-next for the display side. This resolves the current conflict for the enable_display module parameter
Merge drm/drm-next into drm-xe-next
Get drm-xe-next on v6.11-rc2 and synchronized with drm-intel-next for the display side. This resolves the current conflict for the enable_display module parameter and allows further pending refactors.
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
show more ...
|
#
5c61f598 |
| 12-Aug-2024 |
Thomas Zimmermann <tzimmermann@suse.de> |
Merge drm/drm-next into drm-misc-next
Get drm-misc-next to the state of v6.11-rc2.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
|
#
3663e2c4 |
| 01-Aug-2024 |
Jani Nikula <jani.nikula@intel.com> |
Merge drm/drm-next into drm-intel-next
Sync with v6.11-rc1 in general, and specifically get the new BACKLIGHT_POWER_ constants for power states.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
#
4436e6da |
| 02-Aug-2024 |
Thomas Gleixner <tglx@linutronix.de> |
Merge branch 'linus' into x86/mm
Bring x86 and selftests up to date
|
#
3352633c |
| 16-Sep-2024 |
Linus Torvalds <torvalds@linux-foundation.org> |
Merge tag 'vfs-6.12.file' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs
Pull vfs file updates from Christian Brauner: "This is the work to cleanup and shrink struct file significantly.
Merge tag 'vfs-6.12.file' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs
Pull vfs file updates from Christian Brauner: "This is the work to cleanup and shrink struct file significantly.
Right now, (focusing on x86) struct file is 232 bytes. After this series struct file will be 184 bytes aka 3 cacheline and a spare 8 bytes for future extensions at the end of the struct.
With struct file being as ubiquitous as it is this should make a difference for file heavy workloads and allow further optimizations in the future.
- struct fown_struct was embedded into struct file letting it take up 32 bytes in total when really it shouldn't even be embedded in struct file in the first place. Instead, actual users of struct fown_struct now allocate the struct on demand. This frees up 24 bytes.
- Move struct file_ra_state into the union containg the cleanup hooks and move f_iocb_flags out of the union. This closes a 4 byte hole we created earlier and brings struct file to 192 bytes. Which means struct file is 3 cachelines and we managed to shrink it by 40 bytes.
- Reorder struct file so that nothing crosses a cacheline.
I suspect that in the future we will end up reordering some members to mitigate false sharing issues or just because someone does actually provide really good perf data.
- Shrinking struct file to 192 bytes is only part of the work.
Files use a slab that is SLAB_TYPESAFE_BY_RCU and when a kmem cache is created with SLAB_TYPESAFE_BY_RCU the free pointer must be located outside of the object because the cache doesn't know what part of the memory can safely be overwritten as it may be needed to prevent object recycling.
That has the consequence that SLAB_TYPESAFE_BY_RCU may end up adding a new cacheline.
So this also contains work to add a new kmem_cache_create_rcu() function that allows the caller to specify an offset where the freelist pointer is supposed to be placed. Thus avoiding the implicit addition of a fourth cacheline.
- And finally this removes the f_version member in struct file.
The f_version member isn't particularly well-defined. It is mainly used as a cookie to detect concurrent seeks when iterating directories. But it is also abused by some subsystems for completely unrelated things.
It is mostly a directory and filesystem specific thing that doesn't really need to live in struct file and with its wonky semantics it really lacks a specific function.
For pipes, f_version is (ab)used to defer poll notifications until a write has happened. And struct pipe_inode_info is used by multiple struct files in their ->private_data so there's no chance of pushing that down into file->private_data without introducing another pointer indirection.
But pipes don't rely on f_pos_lock so this adds a union into struct file encompassing f_pos_lock and a pipe specific f_pipe member that pipes can use. This union of course can be extended to other file types and is similar to what we do in struct inode already"
* tag 'vfs-6.12.file' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs: (26 commits) fs: remove f_version pipe: use f_pipe fs: add f_pipe ubifs: store cookie in private data ufs: store cookie in private data udf: store cookie in private data proc: store cookie in private data ocfs2: store cookie in private data input: remove f_version abuse ext4: store cookie in private data ext2: store cookie in private data affs: store cookie in private data fs: add generic_llseek_cookie() fs: use must_set_pos() fs: add must_set_pos() fs: add vfs_setpos_cookie() s390: remove unused f_version ceph: remove unused f_version adi: remove unused f_version mm: Removed @freeptr_offset to prevent doc warning ...
show more ...
|
#
2775df6e |
| 16-Sep-2024 |
Linus Torvalds <torvalds@linux-foundation.org> |
Merge tag 'vfs-6.12.folio' of gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs
Pull vfs folio updates from Christian Brauner: "This contains work to port write_begin and write_end to rely on fo
Merge tag 'vfs-6.12.folio' of gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs
Pull vfs folio updates from Christian Brauner: "This contains work to port write_begin and write_end to rely on folios for various filesystems.
This converts ocfs2, vboxfs, orangefs, jffs2, hostfs, fuse, f2fs, ecryptfs, ntfs3, nilfs2, reiserfs, minixfs, qnx6, sysv, ufs, and squashfs.
After this series lands a bunch of the filesystems in this list do not mention struct page anymore"
* tag 'vfs-6.12.folio' of gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs: (61 commits) Squashfs: Ensure all readahead pages have been used Squashfs: Rewrite and update squashfs_readahead_fragment() to not use page->index Squashfs: Update squashfs_readpage_block() to not use page->index Squashfs: Update squashfs_readahead() to not use page->index Squashfs: Update page_actor to not use page->index jffs2: Use a folio in jffs2_garbage_collect_dnode() jffs2: Convert jffs2_do_readpage_nolock to take a folio buffer: Convert __block_write_begin() to take a folio ocfs2: Convert ocfs2_write_zero_page to use a folio fs: Convert aops->write_begin to take a folio fs: Convert aops->write_end to take a folio vboxsf: Use a folio in vboxsf_write_end() orangefs: Convert orangefs_write_begin() to use a folio orangefs: Convert orangefs_write_end() to use a folio jffs2: Convert jffs2_write_begin() to use a folio jffs2: Convert jffs2_write_end() to use a folio hostfs: Convert hostfs_write_end() to use a folio fuse: Convert fuse_write_begin() to use a folio fuse: Convert fuse_write_end() to use a folio f2fs: Convert f2fs_write_begin() to use a folio ...
show more ...
|
#
24a988f7 |
| 08-Sep-2024 |
Christian Brauner <brauner@kernel.org> |
Merge patch series "file: remove f_version"
Christian Brauner <brauner@kernel.org> says:
The f_version member in struct file isn't particularly well-defined. It is mainly used as a cookie to detect
Merge patch series "file: remove f_version"
Christian Brauner <brauner@kernel.org> says:
The f_version member in struct file isn't particularly well-defined. It is mainly used as a cookie to detect concurrent seeks when iterating directories. But it is also abused by some subsystems for completely unrelated things.
It is mostly a directory specific thing that doesn't really need to live in struct file and with its wonky semantics it really lacks a specific function.
For pipes, f_version is (ab)used to defer poll notifications until a write has happened. And struct pipe_inode_info is used by multiple struct files in their ->private_data so there's no chance of pushing that down into file->private_data without introducing another pointer indirection.
But this should be a solvable problem. Only regular files with FMODE_ATOMIC_POS and directories require f_pos_lock. Pipes and other files don't. So this adds a union into struct file encompassing f_pos_lock and a pipe specific f_pipe member that pipes can use. This union of course can be extended to other file types and is similar to what we do in struct inode already.
* patches from https://lore.kernel.org/r/20240830-vfs-file-f_version-v1-0-6d3e4816aa7b@kernel.org: fs: remove f_version pipe: use f_pipe fs: add f_pipe ubifs: store cookie in private data ufs: store cookie in private data udf: store cookie in private data proc: store cookie in private data ocfs2: store cookie in private data input: remove f_version abuse ext4: store cookie in private data ext2: store cookie in private data affs: store cookie in private data fs: add generic_llseek_cookie() fs: use must_set_pos() fs: add must_set_pos() fs: add vfs_setpos_cookie() s390: remove unused f_version ceph: remove unused f_version adi: remove unused f_version file: remove pointless comment
Link: https://lore.kernel.org/r/20240830-vfs-file-f_version-v1-0-6d3e4816aa7b@kernel.org Signed-off-by: Christian Brauner <brauner@kernel.org>
show more ...
|
#
0bea8287 |
| 30-Aug-2024 |
Christian Brauner <brauner@kernel.org> |
ufs: store cookie in private data
Store the cookie to detect concurrent seeks on directories in file->private_data.
Link: https://lore.kernel.org/r/20240830-vfs-file-f_version-v1-16-6d3e4816aa7b@ke
ufs: store cookie in private data
Store the cookie to detect concurrent seeks on directories in file->private_data.
Link: https://lore.kernel.org/r/20240830-vfs-file-f_version-v1-16-6d3e4816aa7b@kernel.org Reviewed-by: Jan Kara <jack@suse.cz> Reviewed-by: Jeff Layton <jlayton@kernel.org> Signed-off-by: Christian Brauner <brauner@kernel.org>
show more ...
|
#
3e673d65 |
| 07-Aug-2024 |
Christian Brauner <brauner@kernel.org> |
Merge branch 'work.write.end'
Matthew Wilcox (Oracle) <willy@infradead.org> says:
On top of the ufs, minix, sysv and qnx6 directory handling patches, this patch series converts us to using folios f
Merge branch 'work.write.end'
Matthew Wilcox (Oracle) <willy@infradead.org> says:
On top of the ufs, minix, sysv and qnx6 directory handling patches, this patch series converts us to using folios for write_begin and write_end. That's the last mention of 'struct page' in several filesystems.
* work.write.end: (54 commits) buffer: Convert __block_write_begin() to take a folio ocfs2: Convert ocfs2_write_zero_page to use a folio fs: Convert aops->write_begin to take a folio fs: Convert aops->write_end to take a folio vboxsf: Use a folio in vboxsf_write_end() orangefs: Convert orangefs_write_begin() to use a folio orangefs: Convert orangefs_write_end() to use a folio jffs2: Convert jffs2_write_begin() to use a folio jffs2: Convert jffs2_write_end() to use a folio hostfs: Convert hostfs_write_end() to use a folio fuse: Convert fuse_write_begin() to use a folio fuse: Convert fuse_write_end() to use a folio f2fs: Convert f2fs_write_begin() to use a folio f2fs: Convert f2fs_write_end() to use a folio ecryptfs: Use a folio in ecryptfs_write_begin() ecryptfs: Convert ecryptfs_write_end() to use a folio buffer: Convert block_write_end() to take a folio ntfs3: Remove reset_log_file() nilfs2: Use a folio in nilfs_recover_dsync_blocks() buffer: Use a folio in generic_write_end() ...
Link: https://lore.kernel.org/r/20240717154716.237943-1-willy@infradead.org Signed-off-by: Christian Brauner <brauner@kernel.org>
show more ...
|
Revision tags: v6.11-rc1, v6.10 |
|
#
97edbc02 |
| 10-Jul-2024 |
Matthew Wilcox (Oracle) <willy@infradead.org> |
buffer: Convert block_write_end() to take a folio
All callers now have a folio, so pass it in instead of converting from a folio to a page and back to a folio again. Saves a call to compound_head()
buffer: Convert block_write_end() to take a folio
All callers now have a folio, so pass it in instead of converting from a folio to a page and back to a folio again. Saves a call to compound_head().
Reviewed-by: Josef Bacik <josef@toxicpanda.com> Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Signed-off-by: Christian Brauner <brauner@kernel.org>
show more ...
|
#
516b97cf |
| 09-Jul-2024 |
Matthew Wilcox (Oracle) <willy@infradead.org> |
ufs: Convert directory handling to kmap_local
Remove kmap use and use folio_release_kmap() instead of ufs_put_page().
Reviewed-by: Josef Bacik <josef@toxicpanda.com> Signed-off-by: Matthew Wilcox (
ufs: Convert directory handling to kmap_local
Remove kmap use and use folio_release_kmap() instead of ufs_put_page().
Reviewed-by: Josef Bacik <josef@toxicpanda.com> Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Signed-off-by: Christian Brauner <brauner@kernel.org>
show more ...
|
#
0f3e63f3 |
| 08-Jul-2024 |
Matthew Wilcox (Oracle) <willy@infradead.org> |
ufs; Convert ufs_commit_chunk() to take a folio
All callers now have a folio, so pass it in. Saves a call to compound_head().
Reviewed-by: Josef Bacik <josef@toxicpanda.com> Signed-off-by: Matthew
ufs; Convert ufs_commit_chunk() to take a folio
All callers now have a folio, so pass it in. Saves a call to compound_head().
Reviewed-by: Josef Bacik <josef@toxicpanda.com> Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Signed-off-by: Christian Brauner <brauner@kernel.org>
show more ...
|
#
128d1e89 |
| 08-Jul-2024 |
Matthew Wilcox (Oracle) <willy@infradead.org> |
ufs: Convert ufs_prepare_chunk() to take a folio
All callers now have a folio, so convert ufs_prepare_chunk() to take one.
Reviewed-by: Josef Bacik <josef@toxicpanda.com> Signed-off-by: Matthew Wil
ufs: Convert ufs_prepare_chunk() to take a folio
All callers now have a folio, so convert ufs_prepare_chunk() to take one.
Reviewed-by: Josef Bacik <josef@toxicpanda.com> Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Signed-off-by: Christian Brauner <brauner@kernel.org>
show more ...
|
#
f4a20e53 |
| 08-Jul-2024 |
Matthew Wilcox (Oracle) <willy@infradead.org> |
ufs: Convert ufs_make_empty() to use a folio
Removes a few hidden calls to compound_head() and uses kmap_local instead of kmap.
Reviewed-by: Josef Bacik <josef@toxicpanda.com> Signed-off-by: Matthe
ufs: Convert ufs_make_empty() to use a folio
Removes a few hidden calls to compound_head() and uses kmap_local instead of kmap.
Reviewed-by: Josef Bacik <josef@toxicpanda.com> Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Signed-off-by: Christian Brauner <brauner@kernel.org>
show more ...
|
#
767bd0af |
| 08-Jul-2024 |
Matthew Wilcox (Oracle) <willy@infradead.org> |
ufs: Convert ufs_delete_entry() to work on a folio
Match ext2 and remove a few hidden calls to compound_head().
Reviewed-by: Josef Bacik <josef@toxicpanda.com> Signed-off-by: Matthew Wilcox (Oracle
ufs: Convert ufs_delete_entry() to work on a folio
Match ext2 and remove a few hidden calls to compound_head().
Reviewed-by: Josef Bacik <josef@toxicpanda.com> Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Signed-off-by: Christian Brauner <brauner@kernel.org>
show more ...
|
#
597697c5 |
| 08-Jul-2024 |
Matthew Wilcox (Oracle) <willy@infradead.org> |
ufs: Convert ufs_set_link() and ufss_dotdot() to take a folio
This matches ext2 and removes a few hidden calls to compound_head().
Reviewed-by: Josef Bacik <josef@toxicpanda.com> Signed-off-by: Mat
ufs: Convert ufs_set_link() and ufss_dotdot() to take a folio
This matches ext2 and removes a few hidden calls to compound_head().
Reviewed-by: Josef Bacik <josef@toxicpanda.com> Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Signed-off-by: Christian Brauner <brauner@kernel.org>
show more ...
|
#
e95d2754 |
| 08-Jul-2024 |
Matthew Wilcox (Oracle) <willy@infradead.org> |
ufs: Convert ufs_find_entry() to take a folio
This matches ext2 and pushes the use of folios out by one layer.
Reviewed-by: Josef Bacik <josef@toxicpanda.com> Signed-off-by: Matthew Wilcox (Oracle)
ufs: Convert ufs_find_entry() to take a folio
This matches ext2 and pushes the use of folios out by one layer.
Reviewed-by: Josef Bacik <josef@toxicpanda.com> Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Signed-off-by: Christian Brauner <brauner@kernel.org>
show more ...
|
#
a60b0e8f |
| 08-Jul-2024 |
Matthew Wilcox (Oracle) <willy@infradead.org> |
ufs: Convert ufs_check_page() to ufs_check_folio()
Includes large folio support in case we decide to support block size > PAGE_SIZE (as with ext2, this support will be limited to machines without HI
ufs: Convert ufs_check_page() to ufs_check_folio()
Includes large folio support in case we decide to support block size > PAGE_SIZE (as with ext2, this support will be limited to machines without HIGHMEM).
Reviewed-by: Josef Bacik <josef@toxicpanda.com> Signed-off-by: Christian Brauner <brauner@kernel.org>
show more ...
|
#
5fe08b1d |
| 08-Jul-2024 |
Matthew Wilcox (Oracle) <willy@infradead.org> |
ufs: Convert ufs_get_page() to ufs_get_folio()
Use the same calling convention as ext2 (see commit 46022375abe8) so that we can transition to kmap_local in a future patch.
Reviewed-by: Josef Bacik
ufs: Convert ufs_get_page() to ufs_get_folio()
Use the same calling convention as ext2 (see commit 46022375abe8) so that we can transition to kmap_local in a future patch.
Reviewed-by: Josef Bacik <josef@toxicpanda.com> Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Signed-off-by: Christian Brauner <brauner@kernel.org>
show more ...
|
#
bf9883d5 |
| 08-Jul-2024 |
Matthew Wilcox (Oracle) <willy@infradead.org> |
ufs: Convert ufs_get_page() to use a folio
Remove a call to read_mapping_page().
Reviewed-by: Josef Bacik <josef@toxicpanda.com> Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Signed-
ufs: Convert ufs_get_page() to use a folio
Remove a call to read_mapping_page().
Reviewed-by: Josef Bacik <josef@toxicpanda.com> Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Signed-off-by: Christian Brauner <brauner@kernel.org>
show more ...
|