Re: [PATCH v2 00/15] ceph: add binary logging (BLOG) for CephFS
Viacheslav Dubeyko <[email protected]> Mon, 6 Jul 2026 19:16:48 +0000
| Newsgroups | org.kernel.vger.ceph-devel |
|---|---|
| Message-ID | <[email protected]> |
On Mon, 2026-07-06 at 14:38 +0000, Alex Markuze wrote: > Add a lightweight binary logging subsystem for CephFS that replaces the > existing dout/doutc text-based debug logging with a binary-serialized > format. Log entries are stored in per-task 128KB page-fragment buffers > and exposed through debugfs for offline analysis. > > Changes since v1 (based on review from Xiubo Li, thanks): > - 01/15: populate public headers with struct definitions and API > declarations; v1 shipped them as empty 0-byte files making the > series unbuildable at every commit boundary > - 02/15: blog_des.c: pr_err → pr_err_ratelimited (debugfs read path > is user-triggerable), -EFAULT → -EBADMSG for bad serialized data, > fix snprintf truncation off-by-one when ret >= remaining, extract > des_advance() helper to deduplicate the snprintf+advance pattern > - 07/15: linux/sched.h now included via the populated blog.h header > chain, fixing the implicit dependency on `current` > - 10/15: remove unnecessary IS_ENABLED(CONFIG_CEPH_FS) guards around > ceph_blog_debugfs_init/cleanup in debugfs.c — this is CephFS-only > code where CONFIG_CEPH_FS is always true > > Alex Markuze (15): > ceph: add BLOG public headers > ceph: add BLOG deserialization support > ceph: add BLOG page-fragment allocator > ceph: add BLOG magazine batch allocator > ceph: add BLOG logger core > ceph: add BLOG per-module context management > ceph: add Ceph BLOG scaffolding > ceph: add bout and boutc wrappers for BLOG > ceph: switch MDS request plumbing to struct ceph_journal_info > ceph: add BLOG debugfs interface > ceph: convert VFS inode and directory paths to bout > ceph: convert VFS data I/O paths to bout > ceph: convert capability and snapshot paths to bout > ceph: convert remaining helper paths to bout > selftests: add Ceph BLOG smoke test and collection helpers > > MAINTAINERS | 1 + > fs/ceph/Makefile | 6 + > fs/ceph/addr.c | 168 ++--- > fs/ceph/blog_batch.c | 312 ++++++++++ > fs/ceph/blog_client.c | 266 ++++++++ > fs/ceph/blog_core.c | 424 +++++++++++++ > fs/ceph/blog_debugfs.c | 434 +++++++++++++ > fs/ceph/blog_des.c | 332 ++++++++++ > fs/ceph/blog_module.c | 584 ++++++++++++++++++ > fs/ceph/blog_pagefrag.c | 95 +++ > fs/ceph/caps.c | 252 ++++---- > fs/ceph/crypto.c | 14 +- > fs/ceph/debugfs.c | 19 +- > fs/ceph/dir.c | 290 ++++++--- > fs/ceph/export.c | 83 ++- > fs/ceph/file.c | 274 +++++--- > fs/ceph/inode.c | 233 ++++--- > fs/ceph/ioctl.c | 6 +- > fs/ceph/locks.c | 66 +- > fs/ceph/mds_client.c | 293 ++++----- > fs/ceph/mdsmap.c | 8 +- > fs/ceph/quota.c | 2 +- > fs/ceph/snap.c | 66 +- > fs/ceph/super.c | 58 +- > fs/ceph/super.h | 5 + > fs/ceph/xattr.c | 88 ++- > include/linux/ceph/blog.h | 196 ++++++ > include/linux/ceph/blog_batch.h | 44 ++ > include/linux/ceph/blog_des.h | 16 + > include/linux/ceph/blog_module.h | 91 +++ > include/linux/ceph/blog_pagefrag.h | 32 + > include/linux/ceph/blog_ser.h | 270 ++++++++ > include/linux/ceph/ceph_blog.h | 284 +++++++++ > include/linux/ceph/ceph_debug.h | 44 +- > include/linux/ceph/libceph.h | 2 + > tools/testing/selftests/Makefile | 1 + > tools/testing/selftests/ceph_blog/Makefile | 7 + > .../selftests/ceph_blog/blog_analyze.sh | 124 ++++ > .../selftests/ceph_blog/blog_collect.sh | 116 ++++ > .../selftests/ceph_blog/blog_smoke_test.sh | 363 +++++++++++ > tools/testing/selftests/ceph_blog/config | 2 + > 41 files changed, 5218 insertions(+), 753 deletions(-) > create mode 100644 fs/ceph/blog_batch.c > create mode 100644 fs/ceph/blog_client.c > create mode 100644 fs/ceph/blog_core.c > create mode 100644 fs/ceph/blog_debugfs.c > create mode 100644 fs/ceph/blog_des.c > create mode 100644 fs/ceph/blog_module.c > create mode 100644 fs/ceph/blog_pagefrag.c > create mode 100644 include/linux/ceph/blog.h > create mode 100644 include/linux/ceph/blog_batch.h > create mode 100644 include/linux/ceph/blog_des.h > create mode 100644 include/linux/ceph/blog_module.h > create mode 100644 include/linux/ceph/blog_pagefrag.h > create mode 100644 include/linux/ceph/blog_ser.h > create mode 100644 include/linux/ceph/ceph_blog.h > create mode 100644 tools/testing/selftests/ceph_blog/Makefile > create mode 100644 tools/testing/selftests/ceph_blog/blog_analyze.sh > create mode 100644 tools/testing/selftests/ceph_blog/blog_collect.sh > create mode 100644 tools/testing/selftests/ceph_blog/blog_smoke_test.sh > create mode 100644 tools/testing/selftests/ceph_blog/config I have troubles to apply the patchset on 7.2-rc2 kernel version: b4 shazam https://lore.kernel.org/ceph-devel/[email protected]/T/#u Grabbing thread from lore.kernel.org/all/[email protected]/t.mbox.gz Checking for newer revisions Grabbing search results from lore.kernel.org Analyzing 16 messages in the thread Analyzing 16 code-review messages Checking attestation on all messages, may take a moment... --- ✓ [PATCH v2 1/15] ceph: add BLOG public headers ✓ [PATCH v2 2/15] ceph: add BLOG deserialization support ✓ [PATCH v2 3/15] ceph: add BLOG page-fragment allocator ✓ [PATCH v2 4/15] ceph: add BLOG magazine batch allocator ✓ [PATCH v2 5/15] ceph: add BLOG logger core ✓ [PATCH v2 6/15] ceph: add BLOG per-module context management ✓ [PATCH v2 7/15] ceph: add Ceph BLOG scaffolding ✓ [PATCH v2 8/15] ceph: add bout and boutc wrappers for BLOG ✓ [PATCH v2 9/15] ceph: switch MDS request plumbing to struct ceph_journal_info ✓ [PATCH v2 10/15] ceph: add BLOG debugfs interface ✓ [PATCH v2 11/15] ceph: convert VFS inode and directory paths to bout ✓ [PATCH v2 12/15] ceph: convert VFS data I/O paths to bout ✓ [PATCH v2 13/15] ceph: convert capability and snapshot paths to bout ✓ [PATCH v2 14/15] ceph: convert remaining helper paths to bout ✓ [PATCH v2 15/15] selftests: add Ceph BLOG smoke test and collection helpers --- ✓ Signed: DKIM/redhat.com --- Total patches: 15 --- Applying: ceph: add BLOG public headers Applying: ceph: add BLOG deserialization support Applying: ceph: add BLOG page-fragment allocator Applying: ceph: add BLOG magazine batch allocator Applying: ceph: add BLOG logger core Applying: ceph: add BLOG per-module context management Applying: ceph: add Ceph BLOG scaffolding Applying: ceph: add bout and boutc wrappers for BLOG Applying: ceph: switch MDS request plumbing to struct ceph_journal_info Patch failed at 0009 ceph: switch MDS request plumbing to struct ceph_journal_info error: patch failed: fs/ceph/mds_client.c:2272 error: fs/ceph/mds_client.c: patch does not apply hint: Use 'git am --show-current-patch=diff' to see the failed patch hint: When you have resolved this problem, run "git am --continue". hint: If you prefer to skip this patch, run "git am --skip" instead. hint: To restore the original branch and stop patching, run "git am --abort". hint: Disable this message with "git config set advice.mergeConflict false" Thanks, Slava.